「JustTechTalk#02 形態素解析のあれやこれや」に参加した
先日、ジャストシステム主催の技術寄りトークセッションを聴いた。形態素解析器の(いろいろな言語での)開発者が複数集まり、タイトル通りあれやこれやと語る会だった。
以下、参加したときのメモを発掘できたので(1ヶ月経ちもはや断片的なメモでしかないが)思い出しがてら:
ジャストシステムJMAT
- 教師あり、教師なし形態素解析
- 教師あり=ラティス構造を使用
- CRFはHMMより高精度。ただしメモリをかなり食う
- 小メモリで済むCRF学習器をつくった
- 辞書チームの解析
- 言い回しコーパス
- 文中の教えたい部分だけアノテーション学習
- 分野適応も実施
- ベース学習、能動学習、部分アノテーション学習
- 部分アノテーション学習には、誤解析しそうなテキスト群を使う
- 辞書チーム 20-30人
- JMAT開発 5-6人
教師あり学習の肝は‥
- 小規模でも高品質なコーパス
- 人手による基準揺れが少ない=高品質
ピタジョブつくりました
- NLP技術使ってます
はてな 浅野さん @takuya_a
- JavaScript 形態素解析器 kuromoji.js
- Node.js
- インストール簡単。jsonが返るのがよい
stop-the-world: ブラウザで自然言語処理 - JavaScriptの形態素解析器kuromoji.jsを作った
なぜJavaScript?
- どこでも動く
- Typed arraysサポートしているから
- バイト配列
- 高速、高効率なデータ構造
- Browserify いいですよ
- サーバサイドNode.jsを、クライアントサイドで動くコードに変換できる
- JavaScriptしんどいところ
- △基本的なデータ構造がないといっていい
- 文字コードutf16
- 「1文字なのに2文字に見える」
@ikawaha さん @ikawaha
業を煮やしてGoをはじめる
@moco_beta さん @moco_beta
http://mocobeta.github.io/janome/
Pythonいいところ・しんどいところ
- ライブラリ豊富
- 3系だと文字列やバイト配列が扱い楽
- ウィンドウズにmecabいれるの大変、に助け
- 2系のサポートが大変
- パフォーマンス工夫しないと遅い
高岡一馬さん @klmquasi
小筌(Sssla) は Ruby で書かれた茶筌(ChaSen)互換の形態素解析器です。
小筌は「さささら」と読みます。
形態素解析器の歴史
Q&A
- Mecabでなくkuromoji選んだ理由?
- 辞書を実行環境とそろえたかった
- 両者は未知語処理が異なる
感じたこと
- この分野ではおそらく常識であろう、形態素解析器発展の歴史が語られ(高岡さん)、知らない点も多く、いろいろ改めて知ることができた
- 一般的に「日本語の形態素解析は難しい」とされ、歴史的にさまざまな手法やツール(解析器)が開発されてきたことを知った。ここまで開発が進むのは、やっぱり日本語圏ならではだろう
- 形態素解析は、機械翻訳や意味解析をはじめとして「日本語テキストを相手に何かする」場合は必須の処理であり、いまや機械学習の文脈でトピックとしては華やか
- 課題も多いだろうけれど、5年後10年後にこの技術がどの程度まで成熟しているのだろう、という点にはとても興味がある
- そもそも日本語をネイティブに話せる人の脳であれば、必要に応じて形態素解析を頭の中で(おそらく)ぱぱっと行えている。この能力を計算機に与えることは高等な研究テーマだろうと思っていた
- しかし最近になり、能力ある人々によって、いろんな言語で実装が行われ始めている、ということがわかった
- つまり、完全なるブラックボックスの時代から、それなりに「こなれてきた」技術とも言えそうだ
- ジャストシステム
- ピタジョブの実例は、あらためて考えると面白い。たくさん集まる求人情報が、NLP技術の対象になり始めているということ
- 住宅賃貸情報、中古自動車情報、Web検索クエリ、医療カルテ、などもそのうち(orすでに?)対象になり始めるのだろうな
- 昨今話題のAIの発展とはまた少し違う軸で、着実に世の中を便利にする技術であることは間違いなさそう