用java简单的情感分析

时间:2012-01-13 01:53:06

标签: java android nlp analysis rapidminer

我对Sentiment分析很新。如何判断给定的单词或句子是正面还是负面。我必须用java实现它。我试着阅读像lingpipe,rapidminer教程这样的东西,但我不明白。在他们的例子中,他们使用了大量数据。就我而言,我没有太多数据。我要说的只是一个单词或一个句子。我也尝试从stackoverflow中读取问题。但他们对我帮助不大。 提前谢谢。

4 个答案:

答案 0 :(得分:3)

计算机不知道像情绪这样的人类事物,除非他们从人类标记为正面或负面的例子中了解它。

Machine Learning的目标实际上是基于先前示例的经验数据做出关于新示例的最明智的决定。从统计上看,数据越多越好。

要“判断”句子的情绪,您需要在一些标记为情绪的句子上训练模型分类器。分类器将未标记的句子作为输入并输出标签:正面或负面。

首先获得培训示例。我相信你可以在公共领域找到一些带标签的情绪数据。 最好的数据集存储库之一是UCI KDD Archive 。然后,您可以在数据上训练分类器以判断新示例。有许多可用的学习算法资源。我的收藏夹是jBoost,可以输出分类器作为Java代码,以及Rapidminer,这样可以更好地进行可视化分析。

答案 1 :(得分:1)

您可以使用现有的Web服务,该服务是根据以前的数据进行培训的。例如:

Chatterbox Sentiment Detection API

其中包含Java和Java库。机器人。

(披露:我为构建此API的公司工作)

答案 2 :(得分:0)

这与编程无关(神经语言编程不是编程),一般来说没有可靠的解决方案。

我最好的想法是让它像Google“Pigeon”Rank一样工作,即收集单词和句子,然后收集人为反馈,无论它们是正面还是负面,然后使用贝叶斯匹配这些数据。

答案 3 :(得分:0)

你可以尝试使用Wordnet根据你的单词和“好”或“坏”单词之间的“距离”计算来搜索单词的语义指向。短距离会给你单词的SO。结果似乎有点弱,但这种方法不需要大量的数据(或时间)。