我使用了一个代码来获得(意为好的、坏的、平均的)任何句子的,方法是将形容词词与我预先定义的好、坏、普通词集、句子中的一组坏词、一组平均词相匹配。但是对于否定句(包含“not”的句子),我无法从代码中为包含不包含的句子指定确切的意义(无论是好的还是坏的)。
例句:“鲍勃是学校最好的男孩。”因为在这个句子中有一个形容词“最佳”匹配好的集合,而不是好的感觉分配给这个句子。
但是,对于否定句--“鲍勃不是学校里最好的男孩”。因为在这句话中只有一个形容词“最佳”与好集匹配,而不是给这个句子分配好的意义。但是在这里," not“是有意义的,但我的代码不能在句子中处理"not"。
帮我解决否定问题
发布于 2018-09-03 06:31:18
"not“是一个否定语言表达的词。用“否定”这个词来解决这个问题会更好。
要处理“否定”,可以在句子中使用否定句触发器(例如not,not)及其作用域。在“鲍勃不是学校里最好的男孩”的例子中,“学校里最好的男孩”是“不”的范围。可以通过一些基本规则或使用语法解析树的启发式方法来检测否定范围。
就情绪分析而言,如果一个情绪满载的术语通过了一个否定触发器的范围,人们就可以逆转或抑制该触发器的情绪值,或者标记该情绪-负载项。
然而,你所提到的情况是不同的。否定范围内的最高级形容词可以用形容词的反义词来考察:
worst - bad - neutral - good - best因此,这些术语是“缩放”的,否定以这种方式传达语义:
这个概念是我从格蕾丝的标量含义中得到的。你可以查到更多细节。
总之,对于一个简单的解决方案,如果你用情感联想分数来表示这类形容词(例如最好的:+4),我建议在否定范围内,不要将它的分数直接乘以-1,而是把它乘以-0.5,在联想之间找到。
希望这有帮助,干杯。
发布于 2018-09-03 15:22:40
你所采取的“情绪分析”的方法是非常基本的。你需要使用一些很好的算法来进行情感分析,一个很好的起点是支持向量机,随机林,它可以在没有大量训练数据的情况下给你带来好的结果。如果你关心的是非常好的准确性,然后使用深神经网络。下面提到了数据集的一些好选择。
Huge ngrams dataset from google storage.googleapis.com/books/ngrams/books/datasetsv2.html
http://www.sananalytics.com/lab/twitter-sentiment/
http://inclass.kaggle.com/c/si650winter11/data
http://nlp.stanford.edu/sentiment/treebank.html由于您所面临的问题,人们开始使用NLP的统计数据。在应用这些算法之前,还有其他几个步骤,如句子标记化、词标记化、词法分析等。
https://stackoverflow.com/questions/52089452
复制相似问题