[英]Prolog Parsing Output
我正在上大學的一部分課程,並且堅持使用Prolog。
課程的工作是制作一個非常基本的Watson(可以回答有關Jeapoardy的問題的機器)。
無論如何,我設法使其輸出以下內容:
noun_phrase(det(the),np2(adj(traitorous),np2(noun(tostig_godwinson)))),
verb_phrase(verb(was),np(noun(slain)))).
但是課程要求我現在需要提取第一個和第二個名詞以及動詞,以使句子更簡潔。 即[Tostig_godwinson,被殺]。
我更喜歡使用C等語言進行編程,因此有點卡住了。 如果這是一種過程語言,我將使用解析工具,但Prolog沒有任何...我需要怎么做才能提取那些部分?
先感謝您
在Prolog中,語言是解析工具。 使用univ( =..
)運算符進行期限檢查:
% find terminal nodes (words) in Tree
terminal(Tree, Type, Item) :-
Tree =.. [Type, Item],
atomic(Item).
terminal(Tree, Type, Item) :-
Tree =.. [_, Sub],
member(Node, Sub),
terminal(Node, Type, Item).
現在獲得帶有findall(N, terminal(Tree, noun, N), Nouns)
nth1
findall(N, terminal(Tree, noun, N), Nouns)
的所有名詞的列表,並獲得nth1
元素。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.