2017-03-14 66 views
0

我試圖定義一個謂詞verb_to_noun(Av,N)。這將採取動詞「慶祝」並將其改爲名詞「慶祝」。我不僅要努力添加後綴-tion,還要從動詞的結尾刪除'e'。我還將動詞定義爲動詞(reg,celebrate)。任何幫助或建議如何開始將不勝感激。在Prolog中的NLP動詞與名詞

+3

你的問題並不清楚,但除了「慶祝」之外,你還對其他動詞感興趣嗎?你想改變什麼類別的名詞或動詞?在編寫任何Prolog或甚至考慮Prolog之前,首先需要確定「規則」是用於轉換的。如果你可以寫出規則(用簡單的語言),那麼你可以解決將其轉換爲Prolog的問題。例如,一個簡化的複數規則可能是「如果單詞不以's'結尾,那麼加上's',否則什麼都不做」。 – lurker

回答

1

有了確定指標

verb_to_noun(Av, N) :- 
    verb(reg, Av), 
    sub_atom(Av, Before, 2, 0, te), 
    sub_atom(Av, 0, Before, 2, X), 
    atom_concat(X, tion, N). 

我得到

?- verb_to_noun(celebrate, N). 
N = celebration. 

所以你看如何檢查原子的結束或採取原子的一部分,然後從零件做出新的原子。所有的謂詞都在SWI-Prolog中,並且用ISO標記,所以它們也可能在其他實現中?