今週の社内勉強会はSmartNewsの小宮さんにお越しいただき、Javaでの統計・機械学習・自然言語処理などを行う際に利用できるライブラリをご紹介いただきました。
今回紹介していただいたのは以下のようなライブラリです。
- Trove(プリミティブ型に対応した高速コレクションライブラリ)
- fastutil(Troveと似ているけどJava標準コレクションのインターフェースを備えている)
- Koloboke(Troveやfastutilよりも高速なプリミティブ型対応Mapライブラリ)
- kuromoji(日本語の形態素解析なら何も考えずこれを使えばOK)
- Stanford CoreNLP(ヨーロッパ系言語の処理ならこれがおすすめ)
- commons-math3(仮説検定や確率分布が扱えるので便利)
- liblinear-java(LIBSVMの線形分類特化版LIBLINEARをJavaに移植したもの)
- MLlib(Apache Spark上で動作する機械学習ライブラリ、1.1.0でWord2Vecが実装された)
また、ライブラリの紹介だけでなく、実際にコードを動かしてどのような動作をするかデモもしていただきました。スライドもアップしていただきましたので、詳細な内容はこちらをご覧いただければと思います。
機械学習や自然言語処理というと身構えてしまう面もあるかと思いますが、ご紹介いただいたライブラリはどれも比較的カジュアルに使うことができるものでしたし、説明や具体的にどういった用途に使えるのかといったこともわかりやすくお話しいただき、弊社のメンバーも身近に感じることができたのではないかと思います。個人的にもKolobokeやStanford CoreNLPは知らなかったので勉強になりました。
ちなみに講演後は小宮さんと@shinsuke_sugayaさんが専門的な話で盛り上がっていたのですが、我々はまったくついていけずマッハ置き去り状態でしたw
小宮さん、お忙しい中お越しいただきありがとうございました。