Word2Vecとは
Word2Vecは、文章中の単語を数値ベクトルに変換してその意味を把握する自然言語処理の手法です。Pythonを使って実装できるため、初心者でも利用しやすい自然言語処理の手法です。
PythonでのWord2Vecの利用
Pythonのライブラリであるgensimを使うと、Word2Vecを使うことは恐ろしく簡単です。しかし、日本語を対象にする場合、形態素解析をしないといけないというハードルがあります。
形態素解析
形態素解析は一番簡単に導入できるjanomeを使っています。形態素解析の結果、名詞・動詞・形容詞(原形)のみを配列で抽出する関数を定義します。
from janome.tokenizer import Tokenizer
t = Tokenizer()
def extract_words(text):
tokens = t.tokenize(text)
return [token.base_form for token in tokens if token.part_of_speech.split(',')[0] in['名詞', '動詞']]
学習データの作成
学習データの作成は、Text8Corpus 関数を使っているサンプルがほとんどですが、オリジナルのAPIリファレンスを読んで、配列の配列でよさそうなことがわかったのでその形で実装しています。
sentences = text.split('。 ')
word_list = [extract_words(sentence) for sentence in sentences]
まとめ
PythonとWord2Vecを用いて日本語のテキスト分析を行うことは可能であり、その手法は比較的簡単です。しかし、日本語を対象にする場合、形態素解析を行う必要があります。この記事では、Pythonのライブラリであるgensimとjanomeを用いて、Word2Vecの実装方法を紹介しました。.