基于机器学习的文本情感识别代码
时间: 2024-05-11 08:19:50 浏览: 101
以下是一个基于机器学习的文本情感识别的示例代码,使用朴素贝叶斯分类器:
```
import nltk
import random
from nltk.corpus import movie_reviews
# 获取影评数据集
documents = [(list(movie_reviews.words(fileid)), category)
for category in movie_reviews.categories()
for fileid in movie_reviews.fileids(category)]
# 打乱数据集顺序
random.shuffle(documents)
# 提取文本特征
all_words = nltk.FreqDist(w.lower() for w in movie_reviews.words())
word_features = list(all_words.keys())[:2000]
def document_features(document):
document_words = set(document)
features = {}
for word in word_features:
features['contains({})'.format(word)] = (word in document_words)
return features
# 构建特征集
featuresets = [(document_features(d), c) for (d,c) in documents]
# 分割数据集
train_set, test_set = featuresets[100:], featuresets[:100]
# 训练模型
classifier = nltk.NaiveBayesClassifier.train(train_set)
# 测试模型
print(nltk.classify.accuracy(classifier, test_set))
# 对新文本进行情感识别
text = "This movie is terrible!"
print(classifier.classify(document_features(text.split())))
```
这段代码使用NLTK库中的朴素贝叶斯分类器进行情感识别。首先,从Movie Reviews数据集中提取文本特征,然后将特征集分为训练集和测试集。接下来,训练模型并测试模型的准确性。最后,我们可以使用训练好的模型对新的文本进行情感识别。
阅读全文