我使用NodeJs
在sentiment lib
问题在于,当以积极的方式使用否定词时,它会给出错误的结果。
var sentiment = require('sentiment');
var result = sentiment('I am dying to eat a kitkat!');
console.dir(result);
{得分:-3,比较:-0.42857142857142855,代币:[' i', ' am',' dying',' to',' eat'' a',' kitkat& #39; ],话语:['死亡' ],
积极的:[],消极的:['死亡' ]}
///or
result = sentiment('your internet is not bad', knowladgeBase);
console.dir(result);
{得分:-3,比较:-0.6,代币:['您的','互联网', ''' not',' bad' ],文字:[' bad' ], 正负: ['坏' ]}
答案 0 :(得分:1)
如果您不想自己实施情绪分析系统,请尝试使用其他库。但如果您对实施一个感兴趣,这里有一个解决方案。 情绪分析系统以基本方式使用两种方法来解决问题。 - 基于词典的方法 - 基于语料库的方法
您正在使用的库使用简单的基于词典的算法。如果您想拥有更高级的系统,请使用情感词典,例如SentiWordNet或SenticNet以及词性(POS)标记。 你可以找到消极和积极的话。然后使用一些简单的规则。 - 如果否定词带有否定动词,则该陈述是正面的。 - 如果否定词带有正面动词,则该陈述为否定。 - 如果一个正面的词带有一个正面动词,则该陈述是正面的。 - 如果一个肯定的词带有否定动词,则该陈述是否定的。