質問: 現在、chainerによる自然言語処理をしています。 文章をMecabで分かち書きして、Word2vecでベクトル化しようとしていますが、単に分かち書きしただけでは、単語の基本形にならないようです。 テキスト: "お会いできて嬉しかったです。" 分かち書き: "お 会い でき て 嬉しかっ た です 。" 分析: お オ お 接頭詞-名詞接続 会い アイ 会う 動詞-自立 五段・ワ行促音便 連用形 でき デキ できる 動詞-非自立 一段 連用形 て テ て 助詞-接続助詞 嬉しかっ ウレシカッ 嬉しい 形容詞-自立 形容詞・イ段 連用タ接続 た タ た 助動詞 特殊・タ 基本形 です デス です 助動詞 特殊・デス 基本形 。 。 。 記号-句点 EOS 分かち書きしただけでは、活用後の単語なので、「会い」と「会う」が同じ単語であるとは認識できないようです。 分かち書きした後は、基本形にしないとならないような気がしますが、どなたか詳しい方がいらっしゃいましたら、教えてください。 よろしくお願いします。
回答: > > Word2vecは必ずしも基本形でなくてもいいですか。 > > > 状況によりけりですが、 * 活用形ごとに単語が区別される。その方が活用形ごとに意味を捉えられる可能性もあるし、逆にそれぞれ別の単語とみなされる分だけ頻度が落ちて不利かもしれないし * 無駄に単語数が増える * 特定の単語を取り出して見てみたいというとき不便といえば不便(複数あったりすると) 基本形の分かち書きにしたければ、コマンドラインからmecabを叩いているならオプションで指定してください。 ``` mecab --node-format="%f[6] " --bos-format="" --eos-format="\n" --unk-format="%m " ``` 試しにいじってみたら↑でそれっぽくなりましたが、検証していないので公式ページや解説記事を見ながらいろいろ試してみてください。 https://taku910.github.io/mecab/format.html https://qiita.com/hasoya/items/0561bb1481a648aa8e6e https://qiita.com/SUZUKI_Masaya/items/1e31b65b92640e045a99 pythonから叩くのであれば、`node.feature`を分割して・・・とかやってもいいし、mecabのインスタンスを作る時点で上のようなオプションを渡しておく手もあります。