nltk 3.0 的parse

怕自己忘了,先记下来。原文8-2的程序

grammar2 = nltk.parse_cfg("""
S -> NP VP
NP -> Det Nom | PropN
Nom -> Adj Nom | N
VP -> V Adj | V NP | V S | V NP PP
PP -> P NP
PropN -> 'Buster' | 'Chatterer' | 'Joe'
Det -> 'the' | 'a'
N -> 'bear' | 'squirrel' | 'tree' | 'fish' | 'log'
Adj -> 'angry' | 'frightened' | 'little' | 'tall'
V -> 'chased' | 'saw' | 'said' | 'thought' | 'was' | 'put'
P -> 'on'
""")

nltk3.0因为改了接口,实际程序应该如下

>>> grammer=nltk.CFG.fromstring("""
... S -> NP VP
... NP -> Det Nom | PropN
... Nom -> Adj Nom | N
... VP -> V Adj | V NP | V S | V NP PP
... PP -> P NP
... PropN -> 'Buster' | 'Chatterer' | 'Joe'
... Det -> 'the' | 'a'
... N -> 'bear' | 'squirrel' | 'tree' | 'fish' | 'log'
... Adj -> 'angry' | 'frightened' | 'little' | 'tall'
... V -> 'chased' | 'saw' | 'said' | 'thought' | 'was' | 'put'
... P -> 'on'
... """)
>>> grammer
<Grammar with 31 productions>
>>> grammer.start()
S
>>> grammer.productions()
[S -> NP VP, NP -> Det Nom, NP -> PropN, Nom -> Adj Nom, Nom -> N, VP -> V Adj, VP -> V NP, VP -> V S, VP -> V NP PP, PP -> P NP, PropN -> 'Buster', PropN -> 'Chatterer', PropN -> 'Joe', Det -> 'the', Det -> 'a', N -> 'bear', N -> 'squirrel', N -> 'tree', N -> 'fish', N -> 'log', Adj -> 'angry', Adj -> 'frightened', Adj -> 'little', Adj -> 'tall', V -> 'chased', V -> 'saw', V -> 'said', V -> 'thought', V -> 'was', V -> 'put', P -> 'on']


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值