親です。

子ども産まれたんで育児とかについて書きます。映画とか心理学とかITとかの趣味についても書きます。

【ML/NLP】機械学習関連の勉強方法について/word2vecを触る

おつです。ヴィーガン生活始めて二ヶ月目くらいなんですけど、たんぱく質の摂取量ってこんなもんやろ〜〜と舐めてかかっていたら髪の毛がギッシギシになってしまいました。プロテインを飲むぞ! 今回は頭ゆるゆるtech日記です。

この記事を三行でまとめると、
1. 座学で理論だけ勉強するの楽しいけど使い道が分からんな、理論より実践!
2. word2vec破壊力あるのは分かったけど理論分からんからどう使えばいいのか分からんな
3. やっぱ理論や!ゼロから作るDeepLearningをやろう
です。

機械学習/自然言語処理の勉強方法について思うこと

Pythonを始めた当初から自然言語処理やりたいな〜〜と思っており、オライリー自然言語処理本をまとめたり機械学習の基礎をやったりしつつも、仕事が始まってからは勉強を先延ばしにしていた。ただ自然言語処理は将来仕事で使える以上に自分のライフワークみたいなものに関係するので、仕事があるからやれないは不幸の道だと思って、やった。

あと機械学習/自然言語処理の勉強について思うことなんだけど、なんかML/NLP関連を勉強しようとすると、妙に理論を重要視してしまうところが自分にはあり、これよくないなと思った。Webの勉強を初めてやったときはクライアントホストの意味を知ってるくらいの段階でDjangoを触り始めて、Djangoを学ぶ中でWebの仕組みにも興味をもち気になった段階で調べるとか、そのうち概論的な本を読むとかした。けどML/NLPは最初からオライリーの理論解説書を読んだりしていて、それより早くなんかのライブラリを使ってみてその破壊力を楽しめばよかったのにと思う。まあ勉強はそれ自体で楽しかったからいいんだけど、毎回次何を勉強すればいいんだろうみたいになって、何がやりてえんだって感じになっていた。

word2vecを試した

ということで、とりあえず面白そうと思うものから手を出してみようと思い、word2vecを試した。参考にしたのは下記のサイトら。

【Python】Word2Vecの使い方 - Qiita

15分でできる日本語Word2Vec - Qiita

ここでやっていることを軽くまとめてみると、 1. コーパスの準備(テキストデータのみ) 2. わかち書き(MeCabJanomeなどを使う) 3. 前処理的なの 4. gensimによるモデル作成 5. word2vecによる活用

というかんじ。コードは参考のサイトとほとんど同じなので載せてません。コーパスには青空文庫三四郎を使った。

思ったこと

  1. データの入手と前処理が手間
  2. jupyter notebook便利
  3. テキスト間の類似度を測るのは面白そう
  4. word2vecの使い方をちゃんと知りたい
  5. あとやっぱ理論を押さえたくはある
  6. 自然言語処理の理論と、あとニューラルネットワークの基礎もやりたい
  7. ゼロから作るDeepLearningをやればいいのでは?
  8. 理論やろう

参考にしたサイトなど

●gensim
gensim - topic modeling for humans

●word2vec
word2vec(Skip-Gram Model)の仕組みを恐らく日本一簡潔にまとめてみたつもり

【Python】Word2Vecの使い方 - Qiita

15分でできる日本語Word2Vec - Qiita

自然言語処理の仕組みと手順
自然言語処理の仕組みと手順

ついでに自分が昔かいた文章を解析してみたんだけど、ちゃんと内容に即したワードが類似度高しと出ていて面白かった。感情分析とかもできそう。

以上です。