哪个prolog实现对我的情况有帮助

Gun*_*jan 4 nlp prolog

我正在经历Prolog.我想用它来进行自然语言处理.我在IBM Watson系统中使用Prolog进行了本文的自然语言处理.正如文中所述,我想以类似的方式尝试一下.现在我想知道要使用哪个Prolog实现.我在Priki上看到了所有这些比较到维基上的内容.那么这些实现中的哪一个可以用于在Ubunutu上使用NLP的目的.也是一个很容易与python集成并且速度很快的那个.有没有人曾经做过这些实现.SWI-Prolog好吗?

感谢帮助.谢谢:)

Cap*_*liC 5

ProNTo这是您应该知道/阅读的第一件事,如果您已经知道并致力于 Prolog。

Wordnet有一个“随时可用”的 Prolog 界面。再说一次,如果你知道你在 Prolog 中的方式。从下载软件的位置找到合适的站点位置有点困难......

Attempto在我看来是最有趣的资源 - 但它采用CNL,而不是 NLP 。无论如何,解析器是在 SWI-Prolog 中开发的。

总的来说,如果您对 NLP 很认真,请查看Grammatical Framework

如果您了解 Python,那么您当然知道NLTK(但我不会称其为真正的 NLP 解决方案......)

Alpino这是一个真实的 NLP 包,用 SWI-Prolog 开发,但仅适用于荷兰语。在 github 中查找Python 资源。


fal*_*lse 5

与许多其他NLP系统一样,您提到的Watson系统是在符合ISO标准的SICStus Prolog中开发的.在最新版本4.3中, SICStus包含一个JIT编译器,默认情况下处于打开状态并完全透明地工作.该谓词属性 jittablejitted你可以看到抖动是目前唯一的办法-除了性能的提升,确实如此.除了ISO核心功能,SICStus提供freeze/2dif/2自1985年左右; 几年后加入了CLP(Q)和CLP(FD).SICStus的一个缺点是它的 定价.

相比之下,SWI-Prolog是免费的,但更不稳定.最新版本SWI7不再符合ISO标准,并打破了Prolog I(Marseille)和DECsystem 10 Prolog(爱丁堡)所有主要Prolog系统遵循的几项惯例.

所以,作为一个开始,你可能会选择SWI,但如果事情变得严重,那么你会转而使用SICStus.