import MeCab mecab=MeCab.Tagger() import re def mecabparse(sentence): mecab_result=mecab.parse(sentence) # 形態素解析の実行 mecab_result=mecab_result.rstrip() # 最後の改行の削除 out=re.split('\n',mecab_result) # 改行で分割して1形態素毎のリストにする return(out) def sentence2words(sentence): words=[] morphs=mecabparse(sentence) for m in morphs: line=re.split('\t',m) for i in range(len(line)): print(i,line[i]) line1=re.split("\t",line[0]) words.append(line[0]) return (" ".join(words)) test="軽かった" sentence2words(test)
質問、修正させていただきました。
上のMecabと関数を使って、最後部分の表示を「軽い」「た」というように表示するプログラムを書けなくて困っております。
今の出力結果がこちらです。
0
11 形容詞,自立,*,*,形容詞・アウオ段,連用タ接続,軽い,カルカッ,カルカッ 20 た 31 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ 40 EOS 5軽かっ た EOS
今は、関数sentence2wordsのlineごとに表示をしてみています。
具体的には、この
1 形容詞,自立,,,形容詞・アウオ段,連用タ接続,軽い,カルカッ,カルカッ
部分の8個目にある「軽い」を取り出すという処理です。
※8番目に原型が来るのは確実です。
お手数をおかけしますが、よろしくお願いします。
回答2件
あなたの回答
tips
プレビュー