具有枚举语义的NLTK语法

2024-09-27 21:27:14 发布

您现在位置:Python中文网/ 问答频道 /正文

信息和代码

让语法.cfg作为我的语法文件(评论信息):

// Rules
S[SEM = <app(?vp, ?suj)>] -> GN[SEM = ?suj] VP[SEM = ?vp] // This is the important line really.
GN[SEM = ?suj] -> NP[SEM = ?suj]
VP[SEM = ?v] -> V[SEM = ?v]
NP[SEM = ?n] -> Nprop[SEM = ?n]

// Words
Nprop[SEM = <john>] -> 'john'
V[SEM = <\x.eat (x)>] -> 'eats'

以及用于解析内容的python文件:

^{2}$

如果我这么做,结果是eat (john)。在

问题

如果我想在我的句子中支持(并提取其语义)枚举,我将如何进行,例如:

John, Bob and Sam eat.

考虑到所有的单词都会出现在语法中。 我要找的东西有点像:

GN[SEM = <app(?s1,?s2,...,?sn)>] -> NP[SEM = ?s1] NP[SEM = ?s2] ... NP[SEM = ?sn]

分析结果类似于:

eat (list(john, bob, sam))或{}

我知道连续的NP[SEM = ?s]组要用递归模式来处理,这只是为了展示我要实现的目标。在


Tags: 文件信息appnp语法johns2s1

热门问题