赞
踩
一种情感分析的方法使用用户设计的规则(有时称为启发式规则)来度量文本的情感。一个常用的基于规则的方法是在文本中寻找关键词,并将每个关键词映射到某部字典或者映射上的数值得分或权重,例如这部字典可以是 Python 的 dict。
# VADER 的唯一不足在于,它只关注其词库中的 7500 个词条 from vaderSentiment.vaderSentiment import SentimentIntensityAnalyzer sa = SentimentIntensityAnalyzer() ''' SentimentIntensityAnalyzer.lexicon 包含了词条及其得分 这里的分词器最擅长处理标点符号和表情符号,这样 VADER 才能更好地工作。毕竟,设 计表情符号就是为了表达大量情感 如果在流水线中词干还原工具(或词形归并工具),需要将该词干还原工具 也用于 VADER 词库,使单个词干或词元中的所有词的得分组合起来 ''' print(sa.lexicon) ''' 在 VADER 定义的 7500 个词条中,只有 3 个包含空格,其中的两个实际上是 n-gram, 另一个是表达“kiss”的表情符号 ''' print([(tok, score) for tok, score in sa.lexicon.items() if " " in tok]) # VADER算法用3个不同的分数(正向、负向和中立)来表达情感极性的强度,然后将它们组合在一起得到一个复合的情感倾向性得分 print(sa.polarity_scores(text="Python is very readable and it's great for NLP.")) ''' 注意,VADER 对于否定处理得非常好,相比于 not bad, great 正向情感程度只是略微高一点。VADER 内置的分 词器忽略所有不在其词库中的词,也完全不考虑 n-gram ''' print(sa.polarity_scores(text="Python is not a bad choice for most applications.")) # 几个极端情感语句 corpus = ["Absolutely perfect! Love it! :-] :-] :-]", "Horrible! Completely useless. :(", "It was OK. Some good and some bad things."] for doc in corpus: scores = sa.polarity_scores(doc) print('{:+}: {}'.format(scores['compound'], doc))
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。