PythonからYahoo日本語係り受け解析で形態素解析をする - すぎゃーんメモの続き。
とりあえず動詞の直前に「全裸で」を挿入するようにしてみた。
#!/usr/bin/env python # -*- coding: utf-8 -*- from xml.etree import ElementTree import sys import urllib appid = '***************(登録したアプリケーションID)' if len(sys.argv) < 2: sys.exit() sentence = sys.argv[1] postdata = { 'appid' : appid, 'sentence' : sentence, } params = urllib.urlencode(postdata) # Yahoo!日本語係り受け解析へ url = 'http://jlp.yahooapis.jp/DAService/V1/parse' result = urllib.urlopen(url, params) morpheme_list = [] # DOM解析 形態素と品詞だけを抽出 tree = ElementTree.XML(result.read()) chunk_list = tree.find('{urn:yahoo:jp:jlp:DAService}Result').find('{urn:yahoo:jp:jlp:DAService}ChunkList') for chunk in chunk_list.findall('{urn:yahoo:jp:jlp:DAService}Chunk'): for morphem in chunk.find('{urn:yahoo:jp:jlp:DAService}MorphemList'): morpheme_list.append({ 'Surface' : morphem.find('{urn:yahoo:jp:jlp:DAService}Surface').text.encode('utf-8'), 'POS' : morphem.find('{urn:yahoo:jp:jlp:DAService}POS').text.encode('utf-8'), }) # 末尾から見ていって、動詞を検出したら「全裸で」を挿入 for morpheme in reversed(morpheme_list): if morpheme['POS'] == u'動詞'.encode('utf-8'): morpheme_list.insert(morpheme_list.index(morpheme), { 'Surface' : u'全裸で'.encode('utf-8'), 'POS' : '', }) print ''.join(morpheme['Surface'] for morpheme in morpheme_list)
$ ./zenra.py "お前は今まで食べたパンの枚数を覚えているのか?" お前は今まで全裸で食べたパンの枚数を全裸で覚えているのか?
うん、まぁ上出来かな。
これならPython環境とYahoo!デベロッパーネットワークのアプリケーションIDさえあれば誰でも全裸になれる…はず!