python写一个情感分析算法用于评论情感分类
时间: 2023-11-30 07:03:16 浏览: 118
好的,我可以为您提供一个简单的情感分析算法示例,基于朴素贝叶斯算法和情感词典的方法。
首先,我们需要一个情感词典,包含积极、消极和中性的单词,它们被赋予了情感得分。您可以从网上下载一些公开的情感词典,例如中文情感词典或英文情感词典。
然后我们需要对评论进行分词,并将每个词与情感词典进行匹配,计算每个评论的情感得分。这里我们可以使用朴素贝叶斯算法来进行分类。
以下是一个简单的 Python 代码示例:
```python
import jieba
import numpy as np
# 加载情感词典
positive_words = []
negative_words = []
with open('positive.txt', 'r', encoding='utf-8') as f:
for line in f:
positive_words.append(line.strip())
with open('negative.txt', 'r', encoding='utf-8') as f:
for line in f:
negative_words.append(line.strip())
# 分词函数
def cut_words(text):
words = jieba.cut(text)
return [word for word in words]
# 计算情感得分
def sentiment_score(text):
words = cut_words(text)
pos_score = 0
neg_score = 0
for word in words:
if word in positive_words:
pos_score += 1
elif word in negative_words:
neg_score += 1
score = pos_score - neg_score
return score
# 朴素贝叶斯分类器
def naive_bayes_classifier(text):
score = sentiment_score(text)
if score > 0:
return 'positive'
elif score < 0:
return 'negative'
else:
return 'neutral'
# 测试
test_text = '这家餐厅的菜很好吃,服务也很好。'
print(naive_bayes_classifier(test_text))
```
在这个示例中,我们加载了两个情感词典文件 positive.txt 和 negative.txt,使用 jieba 分词对评论进行分词,并计算每个评论的情感得分。然后我们使用朴素贝叶斯算法进行分类,将得分大于 0 的评论标记为 positive,得分小于 0 的评论标记为 negative,得分为 0 的评论标记为 neutral。
当我们运行测试代码时,它会输出 'positive',表示这个评论是积极的。您可以将测试文本更改为其他评论进行测试。
阅读全文