Java的简单自然语言处理启动

sha*_*que 9 java nlp

我愿意开始开发NLP项目.我不太了解可用的工具.谷歌搜索大约一个月后.我意识到openNLP可以成为我的解决方案.

不幸的是,我没有看到任何关于使用API​​的完整教程.所有这些都缺乏一些一般步骤.我需要从地面开始的教程.我在网站上看到过很多下载但不知道如何使用它们?我需要训练什么吗?这是我想知道的 -

如何安装/设置一个nlp系统,它可以 -

  1. 解析英语句子
  2. 识别不同的词性

Aar*_*onD 11

你说你需要'解析'每个句子.您可能已经知道这一点,但只是为了明确,在NLP中,术语"解析"通常意味着恢复一些分层的句法结构.最常见的类型是组成结构(例如,通过无上下文语法)和依赖结构.

如果你需要分层结构,我建议你考虑从解析器开始.我所知道的大多数解析器都包括解析期间的POS标记,并且可能提供比有限状态POS标记更高的准确性标记(警告 - 我对组成解析器比熟悉依赖解析器更熟悉.可能有些或大多数依赖解析器会要求POS标签作为输入).

解析的最大缺点是时间复杂度.有限状态POS标记器通常以每秒数千个字的速度运行.即使是贪婪的依赖解析器也相当慢,组成解析器通常以每秒1-5个句子运行.因此,如果您不需要分层结构,您可能希望坚持使用有限状态POS标记器来提高效率.

如果您确定需要解析结构,请提供以下建议:

我认为@aab建议的斯坦福解析器包括一个组成解析器和一个依赖解析器.

Berkeley Parser(http://code.google.com/p/berkeleyparser/)是一个非常着名的PCFG成分解析器,实现了最先进的准确度(我相信,与斯坦福解析器相同或更优) ,并且效率相当(每秒约3-5个句子).

BUBS Parser(http://code.google.com/p/bubs-parser/)也可以使用高精度的Berkeley语法运行,并将效率提高到大约15-20秒/秒.完全披露 - 我是研究这个解析器的主要研究人员之一.

警告:这两个解析器都是研究代码,会产生所有问题.但我很乐意看到人们真正使用BUBS,所以如果它对您有用,请试一试并与我联系,提出问题,意见,建议等.

如果需要,还有几个维基百科参考背景: