玩吧
1
This commit is contained in:
53
src/test/emotion_cal_snownlp.py
Normal file
53
src/test/emotion_cal_snownlp.py
Normal file
@@ -0,0 +1,53 @@
|
||||
from snownlp import SnowNLP
|
||||
|
||||
def analyze_emotion_snownlp(text):
|
||||
"""
|
||||
使用SnowNLP进行中文情感分析
|
||||
:param text: 输入文本
|
||||
:return: 情感得分(0-1之间,越接近1越积极)
|
||||
"""
|
||||
try:
|
||||
s = SnowNLP(text)
|
||||
sentiment_score = s.sentiments
|
||||
|
||||
# 获取文本的关键词
|
||||
keywords = s.keywords(3)
|
||||
|
||||
return {
|
||||
'sentiment_score': sentiment_score,
|
||||
'keywords': keywords,
|
||||
'summary': s.summary(1) # 生成文本摘要
|
||||
}
|
||||
except Exception as e:
|
||||
print(f"分析过程中出现错误: {str(e)}")
|
||||
return None
|
||||
|
||||
def get_emotion_description_snownlp(score):
|
||||
"""
|
||||
将情感得分转换为描述性文字
|
||||
"""
|
||||
if score is None:
|
||||
return "无法分析情感"
|
||||
|
||||
if score > 0.8:
|
||||
return "非常积极"
|
||||
elif score > 0.6:
|
||||
return "较为积极"
|
||||
elif score > 0.4:
|
||||
return "中性偏积极"
|
||||
elif score > 0.2:
|
||||
return "中性偏消极"
|
||||
else:
|
||||
return "消极"
|
||||
|
||||
if __name__ == "__main__":
|
||||
# 测试样例
|
||||
test_text = "我们学校有免费的gpt4用"
|
||||
result = analyze_emotion_snownlp(test_text)
|
||||
|
||||
if result:
|
||||
print(f"测试文本: {test_text}")
|
||||
print(f"情感得分: {result['sentiment_score']:.2f}")
|
||||
print(f"情感倾向: {get_emotion_description_snownlp(result['sentiment_score'])}")
|
||||
print(f"关键词: {', '.join(result['keywords'])}")
|
||||
print(f"文本摘要: {result['summary'][0]}")
|
||||
Reference in New Issue
Block a user