用java简单的情感分析

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

除非他们从人类被标记为正面或负面的例子中学习,否则计算机不会像人类那样了解情感

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

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

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

您可以使用从先前数据训练的现有Web服务。 例如:

Chatterbox情感检测API

其中包含Java和Android库。

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

这与编程无关(神经语言编程不是编程),并且通常没有可靠的解决方案。

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

您可以尝试使用Wordnet根据您的单词与“好”或“坏”单词之间的“距离”计算来搜索单词的语义方向。短距离将为您提供单词的SO。 结果似乎有点弱,但这种方法不需要很多数据(或时间)。