漢字カナ混じりの文章のよみがなを生成します。
ubuntu で python-mecab をあらかじめインストールする必要があります。
ここではひらがなカタカナ変換も入れてひらがなで生成していますが、
もちろんカタカナで生成することも可能です。
# -*- coding: utf-8 -*-
import sys,codecs,MeCab,re
KXA = ord(u"ァ")
KMI = ord(u"ミ")
KMU = ord(u"ム")
KNN = ord(u"ン")
HXA = ord(u"ぁ")
HMI = ord(u"み")
HMU = ord(u"む")
HNN = ord(u"ン")
def yomi(word):
def kana2gana(c):
code = ord(c)
after = code
if KXA <= code <= KMI:
after = code - KXA + HXA
elif KMU <= code <= KNN:
after = code - KMU + HMU
return u"%c"%(after)
def kanas2ganas(s):
after = u""
for c in s:
after += kana2gana(c)
return after
def mec_parse(elems):
A=elems.decode("utf-8").split()
if len(A) != 2:
return None
phra,rest=A
elems = rest.split(",")
if len(elems) == 9:
yomi = elems[7]
elif len(elems) == 8:
yomi = phra
elif len(elems) == 7:
yomi = phra
else:
return None
yomi = kanas2ganas(yomi)
return yomi
all_yomi = ""
m = MeCab.Tagger()
for mecline in m.parse(word.encode("utf-8")).split("\n"):
if mecline == "EOS":
break
yomi = mec_parse(mecline)
if yomi is None:
break
all_yomi += yomi
return all_yomi
# yomi の引数に漢字カナ混じりを与えると、ひらがなを返します。
print yomi(u"今日は")
結果
きょうは
[an error occurred while processing this directive]