我愿意开始开发一个关于NLP的项目.我不知道很多可用的工具. google搜索约一个月后我意识到openNLP可以是我的解决方案.
不幸的是,我没有看到任何有关使用API的完整教程.他们都缺乏一些一般的步骤.我需要一个来自地面的教程.我在网站上看到很多下载,但不知道如何使用它们?我需要训练或什么吗?这是我想要知道的 –
如何安装/设置一个nlp系统,
>解析英文句子
>识别不同的部分
解决方法
如果您需要层次结构,我建议您考虑从一个解析器开始.我知道的大多数解析器在解析过程中都包含了POS标记,并且可能会提供比有限状态POS标签更高的准确性标记(Caveat – 我比组件解析器更为熟悉,而不是依赖解析器).可能有一些或大多数依赖解析器需要POS标签作为输入).
解析的大缺点是时间的复杂性.有限状态POS标签经常以每秒数千字的速度运行.即使是贪婪的依赖解析器也相当慢,组件解析器通常以每秒1-5句的速度运行.所以如果你不需要层次结构,你可能想要坚持使用有限状态的POS标签来提高效率.
如果您确定需要解析结构,请提供以下建议:
我认为@aab建议的斯坦福解析器既包括一个组成的解析器和依赖解析器.
伯克利解析器(http://code.google.com/p/berkeleyparser/)是一个非常着名的PCFG组件解析器,实现了最先进的精确度(相当于斯坦福解析器等于或高于我),效率相当(每秒3-5句话).
BUBS解析器(http://code.google.com/p/bubs-parser/)也可以运行高精度伯克利语法,并将效率提高到大约15-20句/秒.全面披露 – 我是在这个解析器工作的主要研究人员之一.
警告:这两个解析器都是研究代码,并带来所有的问题.但是我很想看到人们实际上使用BUBS,所以如果对你有用,请试一试,并与我联系,提出问题,意见,建议等.
和几个维基百科参考的背景如果需要:
>无上下文的语法:http://en.wikipedia.org/wiki/Stochastic_context-free_grammar
>依赖语法:http://en.wikipedia.org/wiki/Dependency_grammar