コードメモ > MeCab


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

#coding:utf-8
import MeCab
class Parser:
  def __init__(self):
    option='--node-format=%h,%m,%f[0]\\n'
    print option
    self.mec = MeCab.Tagger(option)
  def parse(self,string):
    byteflag=False
    if not isinstance(string,unicode):
      string = string.decode('utf-8')
      byteflag=True
    parsed = self.mec.parse(string.encode('euc-jp')).decode('euc-jp')

    if byteflag:
      return parsed.encode('utf-8')
    else:
      return parsed
  def parse_iter(self,string):
    data = self.parse(string).split('\n')
    for line in data[:-1]:
      if not ',' in line:return
      (id,word,word_type) = line.split(',')
      yield (int(id),word,word_type)

def test():
  p = Parser()
  print list(p.parse_iter('あいうえおかきく'))

if __name__=='__main__':
  test()