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

相关推荐
2601_955363152 小时前
技术赋能B端拓客:号码核验行业的革新与价值重构,氪迹科技法人,股东号码筛选系统,阶梯式价格
大数据·人工智能·重构
鱼鳞_2 小时前
Java学习笔记_Day17(集合)
笔记·学习
鱼鳞_2 小时前
Java学习笔记_Day15
java·笔记·学习·排序算法
gaozhiyong08132 小时前
2026 Mistral AI最新开源模型国内Gemini 3.1 Pro官网实战评测:技术架构、性能对比
人工智能
wuhen_n2 小时前
Function Calling解剖:从请求到响应的完整数据流
前端·人工智能·ai编程
假面骑士阿猫2 小时前
TRAE配置OpenSpec实现SDD规范驱动开发
前端·人工智能·代码规范
2401_876907522 小时前
《Python深度学习》
开发语言·python·深度学习
qq_335809522 小时前
小龙虾(openclaw)本地安装教程
openclaw
AI扑社2 小时前
AI+GEO 驱动的全新数字营销解决方案
大数据·人工智能·geo·ai搜索