2015-07-06 49 views
3

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

我有2个模型 - 短句分类模型和长句分类模型。短句子分类模型与较短的句子(少于10个字)为2的截止和长句分类模型进行训练较长的句子用5

这里的截止训练有素的是我的做法

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

我有几个与此相关的方法

  1. 做题,我需要两个模型短短的一句话模型和长句模型。我决定这样做的原因是因为短句和长句的截尾不同。
  2. 可以遵循基于句子的分类模型,然后总结每个句子的结果以获得对话结果。
  3. 是否有这个问题

回答

0

我觉得你的做法是一个标准的/更好的方法有效...试图建立对大文本情绪模型是有问题的,所以句子为基础的方法好像对我来说是个好主意。

对于长短句模型,这似乎是一个好主意,假设短句中的内容与长句中的内容之间存在足够大的差异(“通常”)。你也可以考虑一个不同的特征生成器用于更长的句子模型......有时候,ngrams(单词bigrams)可以很好地帮助将内容上下文化,而不是像普通的单词包一样。

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

HTH