【问题标题】:Sentiment Analysis using OpenNLP使用 OpenNLP 进行情绪分析
【发布时间】:2015-09-23 07:42:41
【问题描述】:

我正在使用 Apache OpenNLP 对 Yammer 对话进行情绪分析。这里的想法是将每个对话分为积极、消极或中性情绪。对话可以是单个句子或一组句子。

我有 2 个模型 - 一个短句分类模型和一个长句分类模型。短句分类模型用较短的句子(少于 10 个词)训练,截断为 2,长句分类模型用较长的句子训练,截断为 5。

这是我的方法

  1. 阅读每个对话。
  2. 清除它以删除 HTTP URL、特殊字符、在点后添加空格等。
  3. 使用 SentenceDetector 将对话拆分成句子。
  4. 对于每个句子调用分类。如果句子很短,则调用短句分类模型,否则调用长句分类模型。句子分类的输出是肯定的、否定的或中性的
  5. 总结句子分类的结果。即,如果发现更多积极的句子,则相应地将对话分类为积极的,否则为消极的或中性的。

我有几个与此方法相关的问题

  1. 我需要两个模型,一个短句模型和一个长句模型。我决定这样做的原因是因为较短句子和较长句子的截断是不同的。
  2. 是否可以按照一个基于句子的分类模型,然后将每个句子的结果相加得到对话的结果。
  3. 是否有解决此问题的标准/更好的方法

【问题讨论】:

    标签: text-mining sentiment-analysis opennlp


    【解决方案1】:

    我认为你的方法是有效的......尝试在大块文本上构建情感模型是有问题的,所以基于句子的方法对我来说似乎是个好主意。

    对于长句和短句模型,这似乎是个好主意,假设短句和长句的内容之间存在足够大的差异(“通常”)。您还可以考虑为较长的句子模型使用不同的特征生成器...有时 ngram(单词双语法)可以很好地帮助将内容上下文化,而不是普通的词袋方法。

    至于输出,汇总一个总和可能有点难以标准化,因为每个线程中的句子数量未知(也许......),所以我会考虑做基本统计(最小,最大, sum、avg、stdev、majority),这样您就可以对结果提出更好的问题(例如,您可以将结果写入索引以实现支持多个用例的模糊发现)

    HTH

    【讨论】:

      猜你喜欢
      • 2012-05-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-06
      • 2022-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多