Mecabで形態素解析をし、文章のベクトル生成を目的としています。
以下のコードで単語ごと(名詞、動詞、形容詞)に分割が出来たのですが、活用形がばらばらになっています。活用形を統一して単語ベクトルの生成を行いたいです。
活用形の統一、原形に直す処理の仕方を教えて頂きたいです。よろしくお願い致します。
python
1 2def split_word(text): 3 tagger = MeCab.Tagger('-d /usr/local/lib/mecab/dic/mecab-ipadic-neologd') 4 node = tagger.parseToNode(text) 5 word_list = [] 6 while node: 7 pos = node.feature.split(",")[0] 8 if pos in ["名詞", "動詞", "形容詞"]: 9 word = node.surface 10 word_list.append(word) 11 node = node.next 12 return " ".join(word_list) 13
頂いた情報より手探りでコードを書き換えてみたのですがエラーが出てしまいました。
python
1 2def split_word(text,category): 3 tagger = MeCab.Tagger('-d /usr/local/lib/mecab/dic/mecab-ipadic-neologd') 4 sentense = "" 5 node = tagger.parseToNode(text) 6 word_list = [] 7 8 while node: 9 #指定した品詞(category)のみ原型で抽出 10 if node.feature.split(",")[0] == category: 11 sentense += " "+node.feature.split(",")[6] #★変更点 12 else:pass 13 word_list.append(sentense) 14 node = node.next 15 return " ".join(word_list) 16
File "pandas/_libs/lib.pyx", line 2859, in pandas._libs.lib.map_infer TypeError: split_word() missing 1 required positional argument: 'category'
関数に引数を増やしたのに、呼び出し元を変えていないのでは?