11/27に駒込py*1に参加させていただいてきました。その際の作業成果です。
拙作のpyzenraはyahooの形態素解析apiを使っています。
他にもないか軽く検索しましたら、igo-pythoを見つけました。
JavaのプロダクトIgoをpure pythonに移植したもので、GAE/pyでも使えるとのこと。
しかもJava版IgoのページによるとMecab相当の形態素解析ができるとのこと。
すばらしい!というわけで堪らずこれでzenrizeしてみました。
コード
from igo.Tagger import Tagger class ZenraIgo(object): def __init__(self, dataDir, position=u'動詞', text=u'全裸で', gae=False): self.dataDir = dataDir self.position = position self.text = text self.gae = gae def zenrize(self, sentence): if ( len(sentence) == 0 ): raise Exception('Japanese sentece is necessary!') result = u'' for m in Tagger(self.dataDir, gae=self.gae).parse(sentence): # 形態素の品詞を取得 position = m.feature.split(',')[0] if position == self.position : # ターゲットとなる品詞なら文字列を前に追加 result += self.text result += m.surface return result if __name__ == "__main__": z = ZenraIgo('ipadic_gae', gae=True) print z.zenrize(u'お腹がすいたのでスパゲッティが食べたい') # お腹が全裸ですいたのでスパゲッティが全裸で食べたい n = ZenraIgo('ipadic',position=u'名詞', text=u'夜の') print n.zenrize(u'お腹がすいたのでスパゲッティが食べたい') # 夜のお腹がすいたので夜のスパゲッティが食べたい
で
もちろんpyzenraモジュールに取り込んでみました。 > https://bitbucket.org/ehren/pyzenra/
悪のりしてpypiにもあげてみました。 > http://pypi.python.org/pypi/pyzenra
以下のようにすればインストールできます。上記のigo-pythonも入るように設定済みです。
pip install pyzenra
もちろん、これはジョークアプリなのでお叱りなどありましたらpypiから削除します。
参考
- モジュール化はこの資料に非常にお世話になりました。> Python Hack-a-thon 4 ハンズオン 中級コース - 清水川Web
- igo-pythonはこちらで知りました。 > メモ: Igo-pythonの導入メモ