簡體   English   中英

Prolog解析輸出

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM