前回はDoc2Vecを動かしてみました。
動いてはいたものの、ところどころうまく行かなかったので、今回はそのリベンジです。
gensim -> tensorflowへの書き換え
まず、出力をtensorboardにする前提で考えると、gensimのDoc2Vecを使用するのは、データの変換が発生するのでそこでミスっているんだと考えました。 ただ、gensimのドキュメントがイケてなくて、もはや書いてあることが信用できないレベル。 動かしたらちゃんと速いから、簡単なことに使うにはいいんですけど、変化球やろうとすると行き詰まりました。 ちょっとこれを頑張る気にはなりませんでした。
逆に考えれば、シンプルにtensoeflowやpytorchでDoc2Vecを書けば特になんの変換もなく出力出来るはず!
ということで、やってみました。
形態素解析
前回と変わりなしです。
Doc2Vec (TensorFlow Ver.)
コード自体はこんな感じになりました。 前回と比べてだいぶコード量が増えていますが、この辺は仕方ないですね。。。
実行には結構時間かかりました。 いくらなんでも速すぎるのでは?ってくらいgensimが速いことがわかりました。
いろんな記事見る限り、CPUではgensimが圧倒的のようですね。GPU使うならtensorflowとかPytorchなんでしょうけど。
実行時間的には、まず形態素解析、その後10倍くらいDoc2Vecで時間がかかります。
出力
tensorboardの出力はこんな感じになりました。
感想
結構大変だったので、これはしばらくやりたくないです。。。 (gensimとか…自分には合わないっす)
やってて気づいたんですけど、文書館の距離と表示されてる図から感じる距離にギャップがありますね。 それなりに近いんですけど、実はそんなに似てないってことなんですかね。
可視化ツールの導入しやすさについては、真剣に考える必要があると感じました。 個人的にはこれがライブラリ選定の最重要要因になりそう、、、