java - 基于 Java 的 Web 应用程序的 NLP 库(主题提取+情感分析)

标签 java nlp sentiment-analysis

<分区>

我是一名大学生,正在寻找 NLP 库来在基于 Java 的 Web 应用程序中为暑期爱好项目执行主题提取和情感分析。

为了让您了解我正在尝试做的事情...我想构建一个基于 Java 的 Web 应用程序,它将从 Reddit 提交的标题中提取主题,并确定 OP 对标题(如果可能)。

示例输入:

  • Reddit,我们从 943,702 个签名中提取了反 SOPA 请愿书 3,460,313。反 CISPA 请愿书为 691,768,这是一项广泛的法案 比 SOPA 还差。请顶一下,然后让我们讨论进一步的措施 或者我们过去的努力是徒劳的。我们以前做过,恐怕我们是 呼吁再次这样做。
  • 我的 friend 称他为“可笑的上镜先生”
  • 疯狂:CISPA 变得更糟,然后仓促投票通过

我目前正在试用 AlchemyAPI,但听起来似乎存在更好的 NLP 库。最好是,我不会在给定时间段内被限制为有限数量的 API 请求(AlchemyAPI 有配额)。我听说过 GATE、LingPipe 和 OpenNLP 的名称 - 但是,我不确定它们是否符合我的需要。

我正在寻找框架/库/api 推荐,或者更好的是,来自有经验的用户的比较。我在 NLP 方面的经验非常有限,这就是为什么我在这里寻求帮助(ps:如果有人在 www.nlp-class.org 之外有任何学习更多的资源,请告诉我!):)

最佳答案

首先,我强烈建议使用 python,因为 NLP 库比 java 更易于使用,而且对于一个人的项目来说,维护的代码要少得多。

我想不出任何可以做任何分类的事情,所以我的建议是训练两个分类器,一个用于主题,一个用于情感。您必须标记数据并定义特征,但我认为这不会太难,尤其是在建立“情感”词词典的情感方面。标记数据是一件令人头疼的事情,但它和良好的特征是您获得良好分类的方式。

主题分类器:

将 NLTK 与朴素贝叶斯分类器结合使用,并将特征定义为词(小写)、二元词和三元词。

情绪分类器:

与主题分类器具有相同的特征,但还有一个特征是单词 w 在情感词典中具有连接 c。所以,“坏”这个词的意思是“坏情绪”。

一旦您积累了足够的训练/测试数据,您就可以训练您的分类器并在必要时优化特征,然后您可以根据您想要的任何其他数据运行分类器。

通用库(Java):

  • 开放自然语言处理
  • 灵管
  • 维卡
  • 斯坦福的东西

库(Python):

  • 自然语言知识库
  • 科学

关于java - 基于 Java 的 Web 应用程序的 NLP 库(主题提取+情感分析),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10419437/

相关文章:

c# - 如何在 C# 代码中使用 python NLP POS 标记器?

java - 使用 ClearNLP 语义角色标签器

python - 如何为 "not"、 "no"和 "never"之后的字符串中的否定词添加标签

machine-learning - 创建自学习情感词典

python - 推文感觉 : Always returns the same Sentiment Score, 无论标签如何

java - Guava 缓存允许陈旧读取吗?

Java bean 测试框架

Javadoc 注释与 block 注释?

java - 可以在 apache wicket 表 (DataView) 中显示 Map<String, String>,而无需获取键列表

c# - 如何: CNTK C# LSTM classifier of free text (NLP) using word Word2Vec embeddings