使用OpenNLP进行情感分析

时间:2015-07-06 08:32:40

标签: text-mining sentiment-analysis opennlp

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

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

这是我的方法

  1. 阅读每个对话。
  2. 清除它以删除HTTP URL,特殊字符,在点后添加空格等。
  3. 使用SentenceDetector将对话拆分为句子。
  4. 为每个句子分类。如果句子短,则调用短句分类模型或调用长句分类模型。句子分类的输出是正面的,负面的或中性的
  5. 总结句子分类的结果。即如果找到更多正面句子,则将对话分类为积极的,否则为负面或中立。
  6. 我有几个与此方法相关的问题

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

1 个答案:

答案 0 :(得分:0)

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

对于长句和短句模型,这似乎是一个好主意,假设短篇内容与长句之间存在足够大的差异(“通常”)。您也可以考虑使用不同的特征生成器来处理较长的句子模型...有时ngrams(单词bigrams)可以很好地帮助将内容的语境化比正常的单词方法更多。

至于输出,由于每个线程中的句子数量未知(可能......),因此汇总一个总和可能有点难以规范化,所以我会考虑做基本统计(min,max, sum,avg,stdev,majority)对于每个模型的每个类,因此您可以提出更好的结果问题(例如,您可以将结果写入模糊发现的索引,以便启用多个用例)

HTH