Java中的自然语言处理(NLP)

可能重复:
Java:有一个很好的自然语言处理库

任何人都能告诉我有关Java中NLP的库吗? 如果被正确记录,那真的很好。 我曾尝试使用lingpipe,但我无法完全理解它。

你应该尝试斯坦福 – NLP 。 它有许多用于NLP的实用程序和库,如词性标记器,所有这些都很好用,易于理解。

现在可能有点晚了,我想你必须继续你的项目。 但无论如何你可以查看这个博客。 它有一系列关于nlp和java的post。 Stanford-NLP ,正如其他人所建议的那样,是一个很棒的图书馆。

大多数库将帮助您进行词法分析阶段(句子分段,标记化,POS标记,解析等),这样您就不必从头开始编写代码。 祝一切顺利 !

这些是您可以使用的另外两个NLP库。

  • OpenNLP
  • 斯坦福大学NLP

斯坦福NLP集团将复杂和深入的语言建模和数据分析与NLP的创新概率和机器学习方法有效结合。

实际上有一个安静的好NLP工具列表 。 这是德语,但应该与谷歌翻译。 但我列出了一些:

  • 配合工具(GPL V2)
  • OpenNLP(Apache License V2)
  • 斯坦福NLP(双重许可,GPL V2)
  • TreeTagger

如果你想要最好的英语,请参加斯坦福,但是它的GPL v2。 对于不那么流行的语言,Treetagger更好(它只需要一个较小的培训工作)。 例如,使用TreeTagger在德语文本上获得更好的结果,不再知道调查,但如果你想要它,我可以搜索它。 OpenNLP不如其他工具好,但它在Apache License v2下,你应该考虑它。

我已经用jRuby做了一些Apache OpenNLP的实验。 它非常好而且坚固,但当时我写的这篇文章很少。 如果您尝试OpenNLP,我建议您阅读以下文章:

  • OpenNLP入门(自然语言处理)
  • 用Hadoop和Pig挖掘维基百科进行自然语言处理
  • OpenNLP教程
  • 使用OpenNLP的UIMA句子注释器

可以在此处找到OpenNLP的文档 。

这是我的项目中的代码,我用OpenNLP 命名实体识别 。 它用jRuby编写。 OpenNLP模型存储在数据库中,因为代码在Heroku上运行,您无法在那里写入文件系统。

  • Politiki命名实体识别API,用于w / OpenNLP,jRuby和Grape