2014-09-12 57 views
4

我正在经历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很好吗?哪个prolog实现对我有帮助

帮助表示赞赏。 Thankz :)

+1

我喜欢关于沃森的简短说明。真的是一个不错的链接!而且SWI-Prolog不仅仅是“好”的。很棒! – CapelliC 2014-09-12 12:18:13

+0

@CapelliC:你真的很好。从那个wiki链接,我得到的是,swi-prolog也支持大部分的东西,比如web,Rdf三重商店。唯一主要关心的是速度。速度也更快吗?谢谢你的回复:) – Gunjan 2014-09-12 13:41:24

+1

在我有限的经验中,SWI-prolog确实'够快'。例如,qcompile允许在不到10秒的时间内在我的小型机器上加载完全索引的Wordnet3(超过800K条记录) – CapelliC 2014-09-12 16:41:55

回答

4

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

Wordnet有一个'准备使用'的Prolog界面。再次,如果你知道你在Prolog的方式。从哪里可以找到合适的网站位置有点困难...

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

总的来说,如果你是认真的NLP,看看Grammatical Framework

如果你知道Python中,你当然知道的NLTK(但我不会把它真正的NLP解决方案...)

Alpino这是一个现实生活中的NLP包,在SWI-Prolog的发展,但仅限荷兰语。 github的Python资源中的Lookup

+1

Alpino在SICStus开发,后来移植到SWI。 – false 2014-09-12 12:38:52

+1

相同的尝试。 – false 2014-09-12 14:27:30

+1

@false:谢谢,我没有意识到这一点 – CapelliC 2014-09-12 16:37:45

5

你提到的沃森系统,许多其他的NLP系统,已经开发了符合ISO SICStus Prolog。在其most recent version 4.3 SICStus中包含一个JIT编译器,默认情况下处于打开状态,并且完全透明。 predicate propertiesjittablejitted是唯一可以看到抖动出现的地方—,除了性能改进之外的确如此。除了ISO核心功能外,自1985年以来,SICStus提供freeze/2dif/2;与CLP(Q)和CLP(FD)几年后相加。 SICStus的缺点是其 pricing

SWI-Prolog相比之下是免费的,但更具波动性。最新版本SWI7 is no longer ISO conforming打破了Prolog I(马赛)和DECsystem 10 Prolog(爱丁堡)所有主要Prolog系统遵循的几个惯例。

所以,作为一个开始,你可能会去SWI,但如果事情变得严重的企业,明智的你会切换到SICStus。