2017-03-14 36 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标记,所以它们也可能在其他实现中?