word2vecのネットワークウェイトをmariadbに入れる in raspberrypi

raspberrypiのメモリ制約や、ディスク容量のおかげで丸一日、いや二日、苦労している。なんとか、辞書やwikipediaがらみのデータベースは、raspberrypiに収まったが、次は、word2vecのバイナリデータをラズパイ上で読み込もうとするとmapのサイズやそれと直結したラズパイのメモリ制約で、データを全部読み込めない。wikipediaから作ったもの90万語分、twitterから作ったもの50万語分あり、確かにこんなものをmapにするのは、ラズパイでは無理だと諦めた。代わりに、まだ、mariadbならなんとかなりそうだということで、バイナリデータを読み込んで、データベースへ登録した。小数点いか5位までしか入れていないのが若干不安だが、容量を大きくしないギリギリだった。

これでも二つのデータで、データベース上で2.5ギガくらいになるのだから。

何れにしても、こんな変換が簡単にできるのは、ウィトのバイナリデータをjavaで扱えるからだ。本当は自分で作らなければと思ったのだが、バイナリファイルから読み込むのがうまく行かなかった。それをちゃんとやっていただいている、javaプログラムが、以下のところにあったので、使わせていただいた。
https://gist.github.com/RoyZhengGao/1c8229413881cf551dd3
全く、優れたプログラムだ。とてもありがたい。