MeCabで形態素解析に結果がない場合に元の文からそのまま出力したいです。
"おっpython"、"ウチワの取り合い、内輪もめ"などに含まれる[python]、[ウチワ]といった形態素として登録されていないものに対し、そのまま形態素解析する前の表現を利用して出力したいと考えています。
python
1#! usr/bin/env python \ 2 3#-*- coding:utf-8 -*- \ 4 5 6#テキストをカタカナに変換する関数です。 7 8import MeCab 9 10 11def to_yomigana(text): 12 tagger = MeCab.Tagger("-d /usr/local/lib/mecab/dic/mecab-ipadic-neologd/") 13 node = tagger.parseToNode(text) 14 result="" 15 while node: 16 feature_list = node.feature.split(",") 17 if len(feature_list)==9:#リストの長さ==9 18 #読み仮名がある時の処理 19 #surface = node.surface 20 #print(node.feature) 21 kana=feature_list[7] 22 result += kana 23 node = node.next 24 else:#読み仮名がない時の処理 25 result += ("<"+str(node.surface)+">") 26#形態素解析する前の表現("python","ウチワ"を出力したい) 27 node = node.next 28 result = result.strip("*") 29 return result 30 31 32print(to_yomigana("日差しで膝死んだ")) 33print(to_yomigana("おっpython")) 34print(to_yomigana("ウチワの取り合い、内輪もめ"))
結果
ヒザシデヒザシンダ オッ<> <>ノトリアイ、ウチワモメ
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/10/04 17:20