语义-在NLTK中创建语法



我正在尝试扩展NLTK的simple-sem.fcfg,以便它支持短语的协调。我希望它能成功地解析出这样一句话:艾琳走路,安格斯吠叫。由于这被表示为walk(Irene)&bark(Angus),我认为实现这一点的最好方法是添加一个规则S->S和S。我无法理解的是如何利用语义特征。。。到目前为止,我已经做到了:

添加了以下规则:

S[SEM = <?subj(?vp)>] -> S[SEM = <?subj(?vp)>] <&> S[SEM = <?subj(?vp)>]

这不起作用,所以有人有一些建议/链接等吗?

相关结构中没有主题或VP。尝试为and编写一条用于连接句子的规则。它是什么句子1和句子2获得解释

<Sentence1> & <Sentence2>

也就是说,把这两个句子的意思和&联系起来。在这个库的符号中,它应该是这样的:

S[SEM=<?p & ?q>] -> S[SEM=?p] 'and' S[SEM=?q] 

我没有使用这个模块,也无法测试这个示例,所以您可能需要调整语法。但我希望你明白。

PS。这种语义通常假设有二叉树,因此解释将分两步进行,如下所示:

S1 (and S2)

这意味着你将把and解释为接受一个句子(即S2)并给你一个连词函数的东西,它将与另一个句子结合。但是,由于您链接的示例包括一个三位扩展(用于VP),因此似乎没有必要。

至于进一步的阅读(因为你要求"链接"),我建议简单介绍一下自然语言的形式语义;例如海姆和克瑞泽的书。

最新更新