文本预处理需清洗、分词、去停用词、词形还原;TF-IDF提取特征并控制维度与n-gram;LogisticRegression等轻量模型配合TF-IDF可达85%+准确率;TextBlob/VADER可快速规则打分。

文本预处理是情感分析的第一步
原始文本通常包含标点、大小写、停用词和特殊符号,直接输入模型会影响效果。需要先做清洗:转小写、去标点、分词、过滤停用词、词形还原(如“running”→“run”)。Python中可用nltk或spaCy完成。例如用nltk去除停用词时,记得加载英文停用词表:nltk.download('stopwords'),再用set(stopwords.words('english'))做集合过滤。
用TF-IDF提取有区分度的文本特征
把句子转为数字向量才能进机器学习模型。TF-IDF比简单词频更能体现词语在文档中的重要性——高频且在少数文档中出现的词权重更高。用sklearn.feature_extraction.text.TfidfVectorizer可一键实现:设定max_features=5000控制维度,ngram_range=(1, 2)加入二元词组提升表达力。注意要对训练集拟合(fit)后再对训练/测试集都转换(transform),避免数据泄露。
选一个轻量又靠谱的分类器快速验证
初学不必一上来就上BERT。从LogisticRegression或SVM开始,配合TF-IDF向量,往往在IMDb或Amazon评论数据上就能达到85%+准确率。代码只需几行:model = LogisticRegression(); model.fit(X_train, y_train); preds = model.predict(X_test)。预测后用classification_report看精确率、召回率和F1值,比单纯看准确率更有参考价值。
用TextBlob或VADER做规则式情感打分
如果想跳过训练过程、快速获得情感倾向(正面/负面/中性)和强度,规则方法很实用。TextBlob适合简单场景,调用TextBlob(text).sentiment.polarity返回-1到1之间的值;VADER专为社交媒体文本优化,对感叹号、大写字母、表情符号更敏感,适合微博、推特类短文本。它们不依赖训练数据,但泛化能力弱于模型方法,适合作为基线或辅助判断。
立即学习“Python免费学习笔记(深入)”;










