cloud9上でのPython による日本語自然言語処理 その4
飽きずにPython による日本語自然言語処理のコードを写経する行為を継続中。
「12.3.1 句構造解析」の以下のコードでエラーが発生。
jpcfg1 = nltk.parse_cfg(""" .... """) for tree in parser.nbest_parse(sent)
Porting your code to NLTK 3.0 · nltk/nltk Wiki · GitHubによると、
①parse_cfg()のエラーはgrammar.parse_cfg() → CFG.fromstring()に変えないといけないようです。
②nbest_parse()のエラーはnbest_parse() → parse()に変えないといけないようです。
以下の様に修正するとテキストと同じ結果が表示されました。
# -*- coding: utf-8 -*- import sys reload(sys) sys.setdefaultencoding('utf-8') import nltk from nltk import CFG jpcfg1 = CFG.fromstring(""" S -> PP VP PP -> NP P VP -> PP VP VP -> V TENS NP -> NP 'の' NP NP -> NP 'と' NP NP -> N N -> '先生' | '自転車' | '学校' | '僕' P -> 'は' | 'が' | 'を' | 'で' | 'に' V -> '行k' | '殴r' | '見' TENS -> 'ru' | 'ita' """) sent = u"先生 は 自転車 で 学校 に 行k ita".split(' ') parser = nltk.ChartParser(jpcfg1) for tree in parser.parse(sent): print unicode(tree)