NLTK上下文无关语法 - 使用某种通配符将RHS的值带到LHS?

时间:2018-01-14 15:17:06

标签: python nltk

考虑我想查询一个电影数据库,其中NL查询是“给我看所有电影主演<在这里插入演员姓名>”。

我不想为每个可能的演员创建​​制作。我可以建立语法来处理“给我看所有电影主演”,但是我怎么可能处理演员有任何可能价值的“外卡”问题,所以我可以从右侧获取任何值并传播它向左然后向上?

作为范围更为有限的更简单的例子,关于电影的评级,我得到了NNP(处理PG,R等的评级值),但是我说我不想硬编码评级,这对于想要处理特定电影或演员名称时尤其重要。

% start S
S[SEM=(?vp + ?np)] -> VP[SEM=?vp] NP[SEM=?np]
VP[SEM=(?vb)] -> VB[SEM=?vb]
NP[SEM=(?nns + ?vbn + ?nnp)] -> NNS[SEM=?nns] VBN[SEM=?vbn] NNP[SEM=?nnp]
VB[SEM='SELECT'] -> 'show' | 'display' | 'list'
NNS[SEM='title, description, category, rating FROM film_list'] -> 'films'
VBN[SEM='WHERE rating'] -> 'rated'
NNP -> 

0 个答案:

没有答案