Fione 13.8.0をリリースしました。Fessが13.8系になったことと、H2Oが3.30.0.6になったことくらいが変更点です。Fioneとしては実装したいことがいろいろとあるものの、開発が停滞気味になってしまっているので、次のリリースは新しい機能を入れられるようにがんばりたいと思います!
カテゴリー: Fione
Fione 13.7.0のリリース
Fione 13.7.0をリリースしました。他にもまだ実装したかったものもあるのですが、h2o-3が次のバージョンがリリースされてしまっていたり、定期リリースは必要かなと思ったり、とかでリリースした感じです。今回のリリースではPythonモジュールがいろいろと追加したので、画面上からデータフレームの操作がいろいろとできるようになりました。あとはテキストをトークナイズすることもできるようになり、Word2Vecも実行することができるようになっています。任意のPythonを追加できるようになったので、helloworld.templateを参考に.pyファイルを作成して、システムからモジュールのアップロード実行することで追加されます(Fione>AutoMLでメニューに表示されるようになる)。
という感じで、今回はPythonモジュールを増やしましたが、もっと増やしていきたいとは考えています。まだドキュメントがないけど、興味がある方は作ってみてもらえると嬉しいです。次のリリースでは、実行したモジュール群を繋げてパイプライン実行できるようなバッチをダウンロードできるような機能を提供したいと考えています。これがあれば、Fioneでポチポチと画面で実行した内容をバッチ処理化できるようになるので、別なシステムに組み込んだりがしやすくなるかと考えています。
h2o-3で日本語のトークナイズ
h2o.aiのH2OFrameにtokenizeがあるけど、これは正規表現で区切って、単語分割を実現してくれる。がしかし、日本語だと全く持って役に立たない…。でも、日本語を何とかしたい、でググってもPythonの世界にデータを持ってきて処理したりするのはあるがイマイチ期待する解決策でもない…。
ということで、どうしたものかと思い、Fione環境であればElasticsearchもあるので、ElasticsearchのAnalyze APIを用いて、単語分割を実現することにした。Fione環境だと、さらにFessの設定も使えるので、japanese_analyzerとかもあるので、これを呼べるようにすれば解決なわけである。
H2OFrameに新たなメソッドを生やすのも面倒なので、既存のtokenizeにtokenize:elasticsearch:urlみたいな文字列を渡されたら、ElasticsearchのAnalyze APIを呼んで、単語分割することにした。ということをやってくれるElasticsearchTokeinzerパッチがこれ。
という感じで、これで、Python側にデータを持ってこないで、h2oのMRTaskの世界で処理ができるようになったので、ひとまず、解決。これで、Fioneで日本語をWord2Vecできるようになったはず。(素のh2oで使う場合は別途elasticsearchを用意するか、tokenizerをそんな感じで作るかかな…)