Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python nltk语义协同分析_Python_Nltk_Semantics - Fatal编程技术网

Python nltk语义协同分析

Python nltk语义协同分析,python,nltk,semantics,Python,Nltk,Semantics,我正在尝试使用python的NLTK库和Neo-Davidsonian事件表示法构建语义解析器。我已经建立了语法,以包含正确解析的语义特征,但我正在努力解决协调成分的问题。例如,我的语法有: PropN[SEM=<\P.P(Mary)>] -> 'Mary' PropN[SEM=<\P.P(John)>] -> 'John' IV[SEM=<\x.exists e.(drinks(e) & drinker(e, x))>] -> '

我正在尝试使用python的NLTK库和Neo-Davidsonian事件表示法构建语义解析器。我已经建立了语法,以包含正确解析的语义特征,但我正在努力解决协调成分的问题。例如,我的语法有:

PropN[SEM=<\P.P(Mary)>] -> 'Mary'
PropN[SEM=<\P.P(John)>] -> 'John'

IV[SEM=<\x.exists e.(drinks(e) & drinker(e, x))>] -> 'drinks'

NP[SEM=?np] -> PropN[SEM=?np]
VP[SEM=?v] -> IV[SEM=?v]
S[SEM=<?subj(?vp)>] -> NP[SEM=?subj] VP[SEM=?vp]
但如果我添加一条规则,例如:

NP[SEM=<?p | ?q>] -> PropN[SEM=?p] CONJ PropN[SEM=?q]

与中一样,NP lambda没有被传递到动词的参数中。我试着四处看看,但是很少有关于nltk语义解析中的协调的信息,甚至很少有关于在lambdas中使用它的信息。我知道这是可能的,因为一个同学显然让他去工作,但我不确定这是什么把戏。

为了防止人们稍后发现这一点,我能够设置规则,为协调结构传递正确的lambda值:

NP[SEM=<?conj(?p, ?q)>] -> N[SEM=?p] CONJ[SEM=?conj] N[SEM=?q]
CONJ[SEM=<\Q \P \x.(Q(x) | P(x))>] -> 'or'

NP[SEM=谢谢!这对我非常有帮助。
(\P.P(John) | \P.P(Mary))(\x.exists e.(drinks(e) & drinker(e,x)))  
NP[SEM=<?conj(?p, ?q)>] -> N[SEM=?p] CONJ[SEM=?conj] N[SEM=?q]
CONJ[SEM=<\Q \P \x.(Q(x) | P(x))>] -> 'or'