【问题标题】:Finding sentiment of sentence containing not word查找不包含单词的句子的情感
【发布时间】:2019-02-08 14:26:14
【问题描述】:

我使用了一个代码,通过将形容词与我预定义的一组好、坏、平均词,坏词集,句子中的平均词集。但是对于否定(包含“not”的句子),我无法从我的代码中为包含 not 的句子分配确切的意义(无论是好是坏还是平均)。

例如:- 句子-“鲍勃是学校里最好的男孩。”因为在这句话中,有一个形容词“最佳”匹配到好的集合,而不是为这句话分配好的感觉。

但是,对于否定句-“鲍勃不是学校里最好的男孩”。因为在这个句子中只有一个形容词“best”匹配到好的集合,而不是Good sense被分配给这个句子。但是这里的“not”意义不大,但是我的代码无法处理句子中的 "not"

帮我解决否定问题

【问题讨论】:

  • 我想出的一件事是在你的情感词(直到前一个)前面搜索一些 not 词,并用 not 的数量否定你的原始词遇到的话。当然,这是一个非常简单的解决方案,但这可能已经满足您的需求。
  • 这和Java有什么关系?

标签: nlp sentiment-analysis


【解决方案1】:

“not”是一个否定语言表达的词。使用“否定”这个词会更好地解决这个问题。

要处理“否定”,可以在句子中使用否定触发器(例如 not、never)及其范围。在“Bob is not the best boy in the school”示例中,“best boy in the school”是“not”的范围。否定范围可以通过一些基本规则或通过使用句法分析树的启发式来检测。

对于情感分析,如果一个充满情感的词条在否定触发器的范围内通过,则可以反转或抑制触发器的情感值或标记该充满情感的词条。

但是,您提到的案件需要调查的内容有所不同。否定范围内的最高级形容词可以用形容词的反义词来考察:

worst - bad - neutral - good - best

所以这些术语是“缩放”的,否定以这种方式传达语义:

  • “不是最好”意味着“最差 - 坏 - 中性 - 好”之一,但一般来说,在坏和好之间,还必须检查句子的其他上下文
  • “不好”意味着“坏 - 中性”之一

这个概念是我从 Grace 的标量含义中得到的。您可以查看更多详细信息。

作为一个简单解决方案的总结,如果您对这类形容词使用情感关联分数(例如,最佳:+4),我建议不要直接通过乘以 来反转其分数- 1 当它在否定范围内时,但将它与 -0.5 相乘以在关联之间找到。

希望有帮助,干杯。

【讨论】:

    【解决方案2】:

    您用于“情绪分析”的方法非常基础。您需要使用一些好的算法进行情感分析,一个好的起点是支持向量机,随机森林可以在没有大量训练数据的情况下为您提供良好的结果。如果您关心非常好的准确性,请使用深度神经网络。下面提到了数据集的一些不错的选择。

    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。在应用这些算法之前还涉及其他几个步骤,例如句子标记化、单词标记化、词法分析等。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-21
      • 2021-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-08
      • 2020-07-06
      • 1970-01-01
      相关资源
      最近更新 更多