4

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

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

示例输入:

  • Reddit,我们将反 SOPA 请愿书从 943,702 个签名增加到 3,460,313 个。反 CISPA 的请愿书为 691,768,比 SOPA 更糟糕。请顶一下,让我们讨论进一步的措施,否则我们过去的努力是徒劳的。我们以前做过,恐怕我们被要求再做一次。
  • 我的朋友称他为“可笑的上镜先生”
  • 精神错乱:CISPA 变得更糟,然后通过匆忙投票

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

我正在寻找来自有经验的用户的框架/库/api 建议,甚至更好的比较。我在 NLP 方面的经验非常有限,这就是我在这里寻求帮助的原因(ps:如果有人有任何资源可以在 www.nlp-class.org 之外了解更多信息,请告诉我!):)

4

1 回答 1

4

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

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

主题分类器:

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

情绪分类器:

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

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

通用库(Java):

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

库(Python):

  • NLTK
  • 西皮
于 2012-05-02T20:58:50.657 回答