1
我有一個Prolog語句解析器,它返回一個句子(作爲列表傳入),分成兩部分 - Noun_Phrase
和Verb_Phrase
。見下面的例子:在Prolog中獲取複雜複合詞中的變量
sentence(Sentence, sentence(np(Noun_Phrase), vp(Verb_Phrase))) :-
np(Sentence, Noun_Phrase, Remainder),
vp(Remainder, Verb_Phrase).
現在,我想借此Noun_Phrase
和Verb_Phrase
,並將它們傳遞到另一個Prolog的謂詞,但首先我想提取從Verb_Phrase
第一項(這應該永遠是一個動詞)變成一個變量,其餘的變成另一個變量,並將它們分別傳遞給下一個謂詞。
我想過使用的統一,這和我曾嘗試:
sentence(Sentence, sentence(np(Noun_Phrase), vp(Verb_Phrase))),
[Head|Tail] = Verb_Phrase,
next_predicate(_, Noun_Phrase, Head, Tail, _).
但我正在逐漸出錯:每次局部堆棧異常的。我認爲這與Verb_Phrase並不真正成爲一個列表有關。這是VERB_PHRASE的可能isntance:
VP = vp(vp(verb(making), adj(quick), np2(noun(improvements))))
我怎麼能得到verb(X)
可變動詞和任期varaible休息的序言中休息了這樣的複合詞的?
謝謝,這似乎做非常相似,我所需要的東西。 –
很高興幫助! – coder