2014-09-12 53 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。