深度学习-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完成项目实战全流程。

相关推荐
硅谷秋水19 小时前
世界模型:架构、方法、推理与应用的综述(上)
人工智能·机器学习·计算机视觉·语言模型
隔窗听雨眠19 小时前
AI有没有自我意识
人工智能
JeJe同学19 小时前
LabelImg报错:IndexError: list index out of range 解决方法
深度学习·目标检测
春风野草19 小时前
第五章 记忆系统不是假装记住——3层记忆架构的坑与遗忘的艺术
人工智能·ai编程
ylscode19 小时前
谷歌发布 Gemma 4 12B:面向消费硬件的民主多模态人工智能
人工智能
人工智能培训19 小时前
打造行业知识图谱三步走
大数据·人工智能·机器学习·3d·知识图谱·agent
DolphinDB智臾科技19 小时前
Starfish 研报分析与因子衍生 | 上传一份研报,让 AI 跑完因子全流程
人工智能
zhangfeng113319 小时前
2021-2026 年全球 传统厂家AI 算力卡 GPU 前沿技术研究报告
人工智能·深度学习·语言模型·gpu算力·芯片
3DVisionary19 小时前
aero-engine-blade-thermal-fatigue-dic-inspection
人工智能·算法·机器学习·航空发动机·高温dic·涡轮叶片·热疲劳
飞翔中文网19 小时前
Java学习笔记之反射
java·笔记·学习