深度学习-04-NLP项目实战

🚀 Day04 - NLP项目实战

📖 导读

第四天,进入项目实战阶段。


🏗️ 项目流程

1. 数据加载

python 复制代码
import pandas as pd

train_df = pd.read_csv('train.tsv', sep='\t')
test_df = pd.read_csv('test.tsv', sep='\t')

2. 数据清洗

python 复制代码
import re

def clean_text(text):
    text = re.sub(r'[^\w\s]', '', text)
    text = text.lower()
    return text

🔧 特征工程

3.1 文本特征

python 复制代码
from sklearn.feature_extraction.text import TfidfVectorizer

tfidf = TfidfVectorizer(max_features=10000, ngram_range=(1, 2))
X_train = tfidf.fit_transform(train_df['text'])

3.2 长度特征

python 复制代码
train_df['length'] = train_df['text'].apply(len)
train_df['word_count'] = train_df['text'].apply(lambda x: len(x.split()))

🧠 模型构建

4.1 简单RNN

python 复制代码
class TextRNN(nn.Module):
    def __init__(self, vocab_size, embed_size, hidden_size):
        super().__init__()
        self.embedding = nn.Embedding(vocab_size, embed_size)
        self.rnn = nn.GRU(embed_size, hidden_size, batch_first=True)
        self.fc = nn.Linear(hidden_size, 1)
    
    def forward(self, x):
        embed = self.embedding(x)
        output, hidden = self.rnn(embed)
        return self.fc(hidden[-1])

4.2 Attention分类

python 复制代码
class AttentionClassifier(nn.Module):
    def __init__(self, vocab_size, embed_size, hidden_size):
        super().__init__()
        self.embedding = nn.Embedding(vocab_size, embed_size)
        self.lstm = nn.LSTM(embed_size, hidden_size, bidirectional=True)
        self.attention = Attention(hidden_size * 2)
        self.fc = nn.Linear(hidden_size * 2, 1)
    
    def forward(self, x):
        embed = self.embedding(x)
        output, _ = self.lstm(embed)
        context, _ = self.attention(output)
        return self.fc(context)

🚀 训练与评估

5.1 训练循环

python 复制代码
for epoch in range(10):
    model.train()
    for batch in dataloader:
        optimizer.zero_grad()
        output = model(batch.x)
        loss = criterion(output, batch.y)
        loss.backward()
        optimizer.step()

5.2 评估

python 复制代码
from sklearn.metrics import classification_report

model.eval()
preds = model(test_x)
print(classification_report(test_y, preds))

📝 总结

Day04完成项目实战全流程。

相关推荐
HDD9853 小时前
2026年录音转文字工具实测:免费且好用的选择有哪些?
人工智能·语音识别·效率工具·语音转文字
跨境卫士苏苏3 小时前
经营变量持续增加之下跨境团队如何减少月度计划偏差
大数据·人工智能·内容运营·亚马逊·跨境
m0_466525293 小时前
东软添翼医疗大模型领跑 医疗AI进入“可信时代”
人工智能
美团技术团队3 小时前
美团 LongCat 开源 General 365:树立推理评测新标尺
人工智能
eastyuxiao3 小时前
能源电力领域的数字孪生应用场景有哪些
大数据·人工智能·智慧城市·能源·数字孪生
Cat_Rocky3 小时前
K8S-Helm简单学习分享
学习·容器·kubernetes
张二娃同学3 小时前
第08篇_RNN_LSTM_GRU序列模型
人工智能·python·rnn·深度学习·神经网络·gru·lstm
NNYSJYKJ3 小时前
告别刷题无效与偏科:脑能模型解锁 K12 学习底层能力构建
学习
财经资讯数据_灵砚智能3 小时前
基于全球经济类多源新闻的NLP情感分析与数据可视化(夜间-次晨)2026年5月13日
大数据·人工智能·python·信息可视化·语言模型·自然语言处理
我的世界洛天依3 小时前
胡桃讲编程|公益开源模型「初音未来」R1 声库(RVCv2 第一代)开发日志:低配 1050Ti 也能训的经典国语声线
人工智能