一、环境准备
在开始之前,我们需要安装 NLP 相关的 Python 库:
pip install numpy pandas scikit-learn nltk spacy transformers torch tensorflow
numpy和pandas用于数据处理scikit-learn用于特征工程和评估nltk和spacy用于文本预处理transformers提供预训练的 NLP 模型torch和tensorflow用于深度学习建模
二、数据准备
我们以 IMDB 电影评论数据集为例,这是一个用于情感分析(情绪分类)的 NLP 任务。
import pandas as pd
from sklearn.model_selection import train_test_split
# 读取 IMDB 数据集
# url = "https://ai.stanford.edu/~amaas/data/sentiment/aclImdb_v1.tar.gz"
df = pd.read_csv("IMDB Dataset.csv") # 数据集需要提前下载并存储
# 划分数据集
train_texts, test_texts, train_labels, test_labels = train_test_split(
df['review'], df['sentiment'], test_size=0.2, random_state=42
)
# 转换标签为数值
train_labels = train_labels.map({'positive': 1, 'negative': 0})
test_labels = test_labels.map({'positive': 1, 'negative': 0})
三、文本预处理
1. 清理文本
在 NLP 任务中,我们通常需要去除 HTML 标签、标点符号、停用词等。
import re
import nltk
from nltk.corpus import stopwords
from nltk.tokenize word_tokenize
nltk.download()
nltk.download()
():
text = re.sub(, , text)
text = re.sub(, , text)
tokens = word_tokenize(text.lower())
tokens = [word word tokens word stopwords.words()]
.join(tokens)
train_texts = train_texts.apply(clean_text)
test_texts = test_texts.apply(clean_text)


