gpt4 book ai didi

prolog - 解析屈折的非词序语言(例如拉丁语)

转载 作者:行者123 更新时间:2023-12-04 12:32:54 25 4
gpt4 key购买 nike

Introduction to Latin Wikiversity 为例,考虑以下句子:

the sailor gives the girl money

我们可以在 Prolog 中使用 DCG 用这堆规则相当优雅地处理这个问题:
sentence(s(NP, VP)) --> noun_phrase(NP), verb_phrase(VP).
noun_phrase(Noun) --> det, noun(Noun).
noun_phrase(Noun) --> noun(Noun).
verb_phrase(vp(Verb, DO, IO)) --> verb(Verb), noun_phrase(IO), noun_phrase(DO).

det --> [the].
noun(X) --> [X], { member(X, [sailor, girl, money]) }.
verb(gives) --> [gives].

我们看到这是有效的:
?- phrase(sentence(S), [the,sailor,gives,the,girl,money]).
S = s(sailor, vp(gives, money, girl)) ;

在我看来,DCG 确实针对处理词序语言进行了优化。我完全不知道如何处理这个拉丁句子:
 nauta dat pecuniam puellae

这意味着同样的事情(水手给女孩钱),但词序是完全自由的:所有这些排列也意味着完全相同的事情:
nauta dat puellae pecuniam
nauta puellae pecuniam dat
puellae pecuniam dat nauta
puellae pecuniam nauta dat
dat pecuniam nauta puellae

我想到的第一件事是枚举排列:
sentence(s(NP, VP)) --> noun_phrase(NP), verb_phrase(VP).
sentence(s(NP, VP)) --> verb_phrase(VP), noun_phrase(NP).

但这不行,因为虽然 nauta属于主语名词短语, puellae属于宾语的名词短语从属于动词,但可以在动词之前。我想知道我是否应该首先像这样构建某种属性列表来处理它:
?- attributed([nauta,dat,pecuniam,puellae], Attributed)
Attributed = [noun(nauta,nom), verb(do,3,s), noun(pecunia,acc), noun(puella,dat)]

这看起来似乎是必要的(而且我没有看到这样做的好方法),但从语法上讲,它正在将食物推到我的盘子里。也许我可以写一个解析器,里面有一些像这样可怕的非 DCG 装置:
parse(s(NounPhrase, VerbPhrase), Attributed) :-
parse(subject_noun_phrase(NounPhrase, Attributed)),
parse(verb_phrase(VerbPhrase, Attributed)).

parse(subject_noun_phrase(Noun), Attributed) :-
member(noun(Noun,nom), Attributed).

parse(object_noun_phrase(Noun), Attributed) :-
member(noun(Noun,acc), Attributed)

这似乎可行,但前提是我没有递归;一旦我引入了一个从句,我就会以一种不健康的方式重用主语。

我只是不知道如何从非词序句子到解析树。有没有书讨论这个?谢谢。

最佳答案

Here我找到了一个相关的资源(PERMUTATIONAL GRAMMAR FOR FREE WORD ORDER LANGUAGES)。
似乎值得一读(嘿,我们都非常讨厌那些强制性的拉丁语类(class),早在 60 年代!)。

附录中有一个要测试的实现。

我忘了指出 Covington 的自由词序解析器(这只是一个草图......)
您可以在 PRoNTo 中找到工具包(为了完整起见,我在此报告,但我很确定您已经了解它)。

关于prolog - 解析屈折的非词序语言(例如拉丁语),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17939291/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com