【ML/NLP】機械学習関連の勉強方法について/word2vecを触る
おつです。ヴィーガン生活始めて二ヶ月目くらいなんですけど、たんぱく質の摂取量ってこんなもんやろ〜〜と舐めてかかっていたら髪の毛がギッシギシになってしまいました。プロテインを飲むぞ! 今回は頭ゆるゆるtech日記です。
この記事を三行でまとめると、
1. 座学で理論だけ勉強するの楽しいけど使い道が分からんな、理論より実践!
2. word2vec破壊力あるのは分かったけど理論分からんからどう使えばいいのか分からんな
3. やっぱ理論や!ゼロから作るDeepLearningをやろう
です。
機械学習/自然言語処理の勉強方法について思うこと
Pythonを始めた当初から自然言語処理やりたいな〜〜と思っており、オライリーの自然言語処理本をまとめたり機械学習の基礎をやったりしつつも、仕事が始まってからは勉強を先延ばしにしていた。ただ自然言語処理は将来仕事で使える以上に自分のライフワークみたいなものに関係するので、仕事があるからやれないは不幸の道だと思って、やった。
あと機械学習/自然言語処理の勉強について思うことなんだけど、なんかML/NLP関連を勉強しようとすると、妙に理論を重要視してしまうところが自分にはあり、これよくないなと思った。Webの勉強を初めてやったときはクライアントホストの意味を知ってるくらいの段階でDjangoを触り始めて、Djangoを学ぶ中でWebの仕組みにも興味をもち気になった段階で調べるとか、そのうち概論的な本を読むとかした。けどML/NLPは最初からオライリーの理論解説書を読んだりしていて、それより早くなんかのライブラリを使ってみてその破壊力を楽しめばよかったのにと思う。まあ勉強はそれ自体で楽しかったからいいんだけど、毎回次何を勉強すればいいんだろうみたいになって、何がやりてえんだって感じになっていた。
word2vecを試した
ということで、とりあえず面白そうと思うものから手を出してみようと思い、word2vecを試した。参考にしたのは下記のサイトら。
ここでやっていることを軽くまとめてみると、
1. コーパスの準備(テキストデータのみ)
2. わかち書き(MeCab
、Janome
などを使う)
3. 前処理的なの
4. gensim
によるモデル作成
5. word2vec
による活用
というかんじ。コードは参考のサイトとほとんど同じなので載せてません。コーパスには青空文庫の三四郎を使った。
思ったこと
- データの入手と前処理が手間
- jupyter notebook便利
- テキスト間の類似度を測るのは面白そう
- word2vecの使い方をちゃんと知りたい
- あとやっぱ理論を押さえたくはある
- 自然言語処理の理論と、あとニューラルネットワークの基礎もやりたい
- ゼロから作るDeepLearningをやればいいのでは?
- 理論やろう
参考にしたサイトなど
●gensim
gensim - topic modeling for humans
●word2vec
word2vec(Skip-Gram Model)の仕組みを恐らく日本一簡潔にまとめてみたつもり
●自然言語処理の仕組みと手順
自然言語処理の仕組みと手順
ついでに自分が昔かいた文章を解析してみたんだけど、ちゃんと内容に即したワードが類似度高しと出ていて面白かった。感情分析とかもできそう。
以上です。