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


问题内容

我愿意开始在NLP上开发一个项目。我不知道可用的许多工具。谷歌搜索大约一个月后。我意识到openNLP可以成为我的解决方案。

不幸的是,我没有看到使用API​​的完整教程。它们都缺少一些常规步骤。我需要一个基础教程。我在网站上看到了很多下载,但不知道如何使用它们?我需要训练还是什么?..这是我想知道的-

如何安装/设置NLP系统,该系统可以-

  1. 解析英语句子单词
  2. 识别语音的不同部分

问题答案:

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

如果需要层次结构,建议您考虑从解析器开始。我知道的大多数解析器在解析过程中都包含POS标记,并且可能提供比有限状态POS标记器更高的准确性标记(Caveat-
与依赖解析器相比,我对构成解析器更为熟悉。某些或大多数依赖解析器可能会需要POS标签作为输入)。

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

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

我认为@aab建议的Stanford解析器同时包含成分解析器和依赖解析器。

伯克利解析器(http://code.google.com/p/berkeleyparser/)是非常知名的PCFG组成解析器,具有最先进的准确性(我相信,它等于或优于斯坦福解析器)
,并且相当有效(每秒约3-5个句子)。

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

警告:这两个解析器都是研究代码,并带来所有问题。但我希望看到人们实际上在使用BUBS,因此,如果对您有用,请尝试一下,并与我联系以提出问题,评论,建议等。

如有需要,可以参考一些维基百科的背景资料: