使用OpenNLP进行情感分析

3
我正在使用Apache OpenNLP对Yammer的对话进行情感分析。这里的想法是将每个对话分类为积极、消极或中性情感。一个对话可以是一个句子或一组句子。
我有两个模型 - 一个短句分类模型和一个长句分类模型。短句分类模型是用较短的句子(少于10个单词)进行训练,截断值为2,而长句分类模型则是用较长的句子进行训练,截断值为5。
以下是我的方法:
1. 阅读每个对话。 2. 对其进行清理以删除HTTP URL、特殊字符、在句点后添加空格等。 3. 使用SentenceDetector将对话拆分成句子。 4. 对于每个句子调用分类。如果句子很短,则调用短句分类模型;否则调用长句分类模型。句子分类的输出是积极、消极或中性。 5. 总结句子分类的结果。即如果发现更多的积极句子,则将对话分类为积极的,否则根据情况分类为消极或中性。
我有几个与此方法相关的问题:
1. 我需要两个模型,一个短句模型和一个长句模型吗?我之所以这样做是因为短句和长句的截断值不同。 2. 按句子进行分类,然后总结每个句子的结果以获得对话的结果是否可以? 3. 是否有标准/更好的方法解决这个问题?
1个回答

0

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

至于长短句模型,如果短句与长句之间有足够大的差异(通常情况下),那这个想法似乎是个好主意。对于长句模型,您还可以考虑使用不同的特征生成器...... 有时候ngrams(单词二元组)的效果比普通的词袋方法更好,可以更好地帮助上下文化内容。

至于输出,由于每个线程中的句子数量未知(也许...),因此将它们加和可能会过于难以标准化,所以我建议对每个模型的每个类别进行基本统计(最小值,最大值,总和,平均数,标准偏差,多数派),以便您可以更好地对结果进行提问(例如,您可以将结果写入索引以进行模糊发现,从而实现多个用例)

希望对您有所帮助


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接