首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >句子的情感分析--积极、消极和中性

句子的情感分析--积极、消极和中性
EN

Stack Overflow用户
提问于 2015-12-10 07:16:54
回答 2查看 7.7K关注 0票数 5

我正在使用NLTK在Python中设计一个文本分类器。每句话考虑的一个特征就是它的情感。我想要对具有积极或消极情绪的句子进行加权,而不是那些没有任何情绪的句子(中性句子)。使用电影评论语料库和朴素贝叶斯分类器只会产生正面和负面的标签。我尝试在nltk.sentiment.utils中使用demo_liu_hu_lexicon,但该函数不返回任何值,而是将其打印到输出,而且速度非常慢。有没有人知道有一个基于情感给句子赋予某种权重的库?

谢谢!

EN

回答 2

Stack Overflow用户

发布于 2016-02-11 06:33:06

试试textblob module

代码语言:javascript
复制
from textblob import TextBlob
text = '''
These laptops are horrible but I've seen worse. How about lunch today? The food was okay.
'''

blob = TextBlob(text)
for sentence in blob.sentences:
    print(sentence.sentiment.polarity)
# -0.7
# 0.0
# 0.5

它使用nltk库来确定极性-这是一个从-1到1的情绪浮动度量。中性句的极性为零。您应该能够直接从nltk获得相同的度量。

票数 6
EN

Stack Overflow用户

发布于 2018-07-13 00:08:44

Vader是一个基于规则的情感分析工具,可以很好地处理社交媒体文本和普通文本。

代码语言:javascript
复制
from vaderSentiment.vaderSentiment import SentimentIntensityAnalyzer
analyser = SentimentIntensityAnalyzer()

def print_sentiment_scores(tweets):
    vadersenti = analyser.polarity_scores(tweets)
    return pd.Series([vadersenti['pos'], vadersenti['neg'], vadersenti['neu'], vadersenti['compound']])

text = 'This goes beyond party lines.  Separating families betrays our values as Texans, Americans and fellow human beings'

print_sentiment_scores(text)

The results are:
0    0.2470
1    0.0000
2    0.7530
3    0.5067

复合分数是通过对词典中每个单词的价分数求和来计算的,根据规则进行调整,然后归一化为-1 (最极端负)到+1 (最极端正)之间。如果你想对给定的句子进行单一的一维情感测量,这是最有用的度量。称其为“标准化加权综合得分”是正确的。

虽然积极情绪是通过复合分数>= 0.05得出的,但我们始终可以通过更改这些分数来确定句子的积极、消极和中立

我个人认为维达的情绪能够很好地理解基于情绪,特殊字符,表情符号的情绪。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34190860

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档