我正在经历Prolog。我想用它来进行自然语言处理。我在natural language processing with Prolog in the IBM Watson system找到了这篇论文。正如文中所述,我想以类似的方式尝试一下。 现在我想知道要使用哪个Prolog实现。我遇到了所有这些Comparison onto Prolog onto wiki which is stated in this link。那么这些实现中的哪一个可以用于此目的 NLP使用到Ubunutu。也是一个很容易与python集成并且速度很快的那个。有没有人曾经做过这些实现。 SWI-Prolog好吗?
帮助表示赞赏。谢谢:)
答案 0 :(得分:5)
您提到的Watson系统,与许多其他NLP系统一样,是在符合ISO SICStus Prolog的ISO中开发的。在其most recent version 4.3中,SICStus包含一个JIT编译器,该编译器默认启用并完全透明地工作。 predicate properties jittable
和jitted
是唯一可以看到抖动存在的方法 - 除了性能改进之外。除ISO核心功能外,SICStus自1985年左右开始提供freeze/2
和dif/2
;几年后加入了CLP(Q)和CLP(FD)。 SICStus的一个缺点就是它
pricing
所以,作为一个开始,你可能会选择SWI,但如果事情变得严重,那么你会转而使用SICStus。
答案 1 :(得分:4)
ProNTo这是你应该知道/阅读的第一件事,如果你已经知道并致力于Prolog。
Wordnet已准备好使用' Prolog界面。再次,如果你知道你在Prolog中的方式。从下载SW ...
的位置找到合适的站点位置有点困难 在我看来,Attempto是最有趣的资源 - 但它需要CNL,而不是NLP。 无论如何,解析器是在SWI-Prolog中开发的。
总的来说,如果您对NLP很认真,请查看Grammatical Framework。
如果你了解Python,你当然知道NLTK(但我不会称之为真正的NLP解决方案......)
Alpino它是一个真实的NLP包,由SWI-Prolog开发,但仅限荷兰语。 github中的Lookup用于Python资源。