首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >nltk:产生式语法

nltk:产生式语法
EN

Stack Overflow用户
提问于 2016-01-20 00:42:30
回答 1查看 1.5K关注 0票数 1

This link展示了如何从树到产生式,现在我只需要知道如何从产生式到文法。

代码语言:javascript
复制
def trees2productions(trees):
""" Transform list of Trees to a list of productions """
productions = []
for t in trees:
    productions += t.productions()
return productions

This page展示了如何从预定义的文法中获取文法的产生式,但它没有说明如何从产生式到文法。有人知道我是怎么做到的吗?

代码语言:javascript
复制
>>> from nltk import CFG
>>> grammar = CFG.fromstring("""
... S -> NP VP
... PP -> P NP
... NP -> Det N | NP PP
... VP -> V NP | VP PP
... Det -> 'a' | 'the'
... N -> 'dog' | 'cat'
... V -> 'chased' | 'sat'
... P -> 'on' | 'in'
... """)
>>> grammar
<Grammar with 14 productions>
>>> grammar.start()
S
>>> grammar.productions() # doctest: +NORMALIZE_WHITESPACE
[S -> NP VP, PP -> P NP, NP -> Det N, NP -> NP PP, VP -> V NP, VP -> VP PP,
Det -> 'a', Det -> 'the', N -> 'dog', N -> 'cat', V -> 'chased', V -> 'sat',
P -> 'on', P -> 'in']
EN

回答 1

Stack Overflow用户

发布于 2016-01-20 01:27:34

我已经找到了如何按照代码here并稍微更新它来解决我的问题。这就是它:

代码语言:javascript
复制
import nltk
from nltk.grammar import CFG, Nonterminal
productions = [S -> NP VP, PP -> P NP, NP -> Det N, NP -> NP PP, VP -> V NP, VP -> VP PP, Det -> 'a', Det -> 'the', N -> 'dog', N -> 'cat', V -> 'chased', V -> 'sat', P -> 'on', P -> 'in']
grammar = CFG(Nonterminal('S'), productions)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34882246

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档