janomeとmecab+neologd

書いてる理由

参考

pytorchによる発展ディープラーニング

詳細

github.com

やっぱNLPやることに決めた!
最初はjanomemecab+neologdを動かすところ。

日本語のテキスト解析に欠かせないのが、文章の分かち書き

例えば上の文章を分かち書きすると、上の結果がjanomeで下の結果がMecab
文章を単語のリストにするのが分かち書き

python tokenizer.py
> ['日本語', 'の', 'テキスト', '解析', 'に', '欠か', 'せ', 'ない', 'の', 'が', '、', '文章', 'の', '分かち書き', '。']
> ['日本語', 'の', 'テキスト', '解析', 'に', '欠か', 'せ', 'ない', 'の', 'が', '、', '文章', 'の', '分かち書き', '。']

これを「私は機械学習が好き。」でやる。

python tokenizer.py
> ['私', 'は', '機械', '学習', 'が', '好き', '。']
> ['私', 'は', '機械学習', 'が', '好き', '。']

janome機械学習が機械と学習に別れるけど、mecab機械学習と一つの単語になる。
こういう難しさがあるのも日本語の特徴。
英語なら、I like machine learning. と単語が半角スペースで区切られるけど、日本語は単語の切れ目にそれがないので、分かち書きをする。
mecabはneologdという新語を登録できる様な辞書で分かち書きをするので、上の様に機械学習を一つの単語としてきりだせる。

とりあえず今日はここまで。