我设法为给定的句子构建了解析树,这就是句子:“那个人回家了。”
T = s(np(det(the), n(man)), vp(v(went), np(n(home))))
1)如何在此使用短语/ 2?
如何使用 prolog 用逻辑语言翻译句子?- 与我需要的相似,但它的解决方案对我不起作用。
2)我想用语法模式映射它并获取单词标签。
Det=the
, N(Subject)=man
, V=went
,N(Object)=home
有没有办法用给定的树结构映射这棵树并识别语法。如何使用解析树来识别主语、动词、宾语、语法模式并生成目标语言句子。
后来编辑..我尝试了这段代码,它给出了相当多的答案。关于此代码的任何建议。
sent("(s(np(n(man))) (vp(v(went)) (np(n(home)))))").
whitespace --> [X], { char_type(X, white) ; char_type(X, space) }, whitespace.
whitespace --> [].
char(C) --> [C], { char_type(C, graph), \+ memberchk(C, "()") }.
chars([C|Rest]) --> char(C), chars(Rest).
chars([C]) --> char(C).
term(T) --> chars(C), { atom_chars(T, C) }.
term(L) --> list(L).
list(T) --> "(", terms(T), ")".
terms([]) --> [].
terms([T|Terms]) --> term(T), whitespace, !, terms(Terms).
simplify([s,[np, [n,[Subject]]], [vp,[v,[Verb]],[np,[n,[Object]]]]],Result) :- Result = [Subject,Verb,Object].
谢谢玛西