【问题标题】:How to asses sentiment on "double negative" sentences如何评估“双重否定”句子的情绪
【发布时间】:2014-05-11 12:01:16
【问题描述】:

这可能是一个非常琐碎的问题。但是,我无法通过 google 或 SO 搜索找到我正在寻找的答案。

我想构建一个简单的情感分析逻辑。

有两个负面和正面单词/短语列表,其中包含该单词/短语的负面或正面分数。

否定词组/词:

really hate         -2
hate         -1
dislike      -1

积极的短语/词:

like           1   
very much like 2

以下是相应的情绪分数

"I like to eat Apple"          => Sentiment Score = 1
"I really hate the college president"  => Sentiment Score = -2

以上情况都可以。但是,我想知道如何解决以下情况:

"Though I am an Android user, I hate to say I like iPhone 5s"

你看,“讨厌”和“喜欢”都会使情绪得分=0 但是,我希望它是 +1,因为它对 iPhone 5s 有积极的看法。

【问题讨论】:

  • 那个例子不是双重否定的非例子。
  • @farmerjoe,完全同意你的观点,但我不知道该怎样称呼这个例子。请随时为示例建议一个名称或适当地编辑标题。
  • 这不是一个简单的情感问题,而是完全的自然语言理解(否定、上下文等)。使用最先进的情感分类器并接受你会得到一些尴尬和不寻常的结构错误,但大多数都是正确的。
  • 同意@BenAllison ...这根本不是一个小问题。事实上,为了解决这个问题中的例子中的情绪,人​​们使用了所谓的“Deep Learning”。这是 NLP 研究中相当新的和活跃的领域。

标签: java machine-learning nlp sentiment-analysis


【解决方案1】:

正如我所说,这不是双重否定的例子。这是对 iPhone 感觉的厌恶表达,但听起来你只想计算所说的感觉:影响句子主语的单词。

您需要让您的算法考虑上下文:

  1. 确定句子的主语。 (Apple,president,iPhone等)
  2. 找到任何有效的关键字((really) hate/like/love 等)
  3. 根据适用于您所关注主题的有效词对句子进行评分。

您可以想象的这种算法很难实现,因为它倾向于对自然语言的一般理解。

至于双重否定,你可能想尝试一下,比如注意哪些词会导致情绪的布尔翻转,即notdon't 等(其中大部分是 not 的缩写),然后计数以确定它对形容词造成的翻转:即

I do not like green eggs and ham

识别绿色eggs and ham,回溯寻找关键字:not, like,也许找一个动词,得到一些类似句子的 regex?同样,这不是最简单的任务,而且可能总是只能在一定程度上准确。

计算nots,因为它是奇数,所以将您的情绪得分乘以-1

I do not not like green eggs and ham

现在我们有两个nots,它是偶数,所以我们不会改变情绪分数,也不会乘以+1

我的总体建议是要么接受误报并继续,要么查看Natural Language Processing

【讨论】:

    【解决方案2】:

    由于您的情绪词可以是短语,因此快速而肮脏的解决方案是将“讨厌说我喜欢”添加到积极情绪列表中:

    hate to say I like   +1
    

    这是一种极端的解决方案,它的问题是它只处理一种特殊情况,因此您需要添加数千(如果不是数百万)或此类条目。另一个极端是完全理解上下文和细微差别的超级智能人工智能。目前的问题是它超出了我们的范围。介于这两个极端之间的是 NLP 解决方案,它使用语法和模式来理解许多句子,而无需明确列出所有句子。


    关于分配权重的附注

    如果始终使用最大匹配项,则使用 +1,并停止匹配这些单词的其他单词/短语。否则调整重量。在这种情况下,您无需执行任何操作,好像“hate”也匹配为 -1,然后“like”将匹配为另一个“+1”。但是对于“真的很讨厌说我喜欢”,你需要给它一个基础值+2;那么“真的很讨厌”会加上-2,喜欢会加上+1,最终你会得到想要的+1情绪。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多