形態素解析器 MeCab の新語・固有表現辞書 mecab-ipadic-NEologd のご紹介

32
mecab-ipadic-NEologd のご紹介 2015-03-28 R勉強会@Tokyo 佐藤敏紀 ( @overlast )

Transcript of 形態素解析器 MeCab の新語・固有表現辞書 mecab-ipadic-NEologd のご紹介

Page 1: 形態素解析器 MeCab の新語・固有表現辞書 mecab-ipadic-NEologd のご紹介

mecab-ipadic-NEologdのご紹介

2015-03-28 R勉強会@Tokyo

佐藤敏紀 ( @overlast )

Page 2: 形態素解析器 MeCab の新語・固有表現辞書 mecab-ipadic-NEologd のご紹介

まとめ

- mecab-ipadic-NEologd は IPADIC を拡張した mecab のシステム辞書

- 新語・固有表現などを読み仮名・原型付きで168万組を再録(異表記な重複エントリ込)

- 最低月2回アップデート(初旬・中旬)

- Rを使ったテキストマイニングに今後必須

Page 3: 形態素解析器 MeCab の新語・固有表現辞書 mecab-ipadic-NEologd のご紹介

佐藤 敏紀 ( @overlast )現職 : LINE 株式会社のエンジニア

- 自然言語処理、検索、機械学習まわり

前職 : ヤフー株式会社のエンジニア

- 検索エンジンのキーワードのスペル訂正等

学生 : 東京工業大学大学院 奥村研究室

- 比較表現抽出の研究- blogWatcher の開発運用

Page 4: 形態素解析器 MeCab の新語・固有表現辞書 mecab-ipadic-NEologd のご紹介

その他

- DSIRNLP という勉強会を主催しています- 初心者にもやさしく雰囲気も良いです^^- YouTube で「DSIRNLP」を検索

- 夏に開催されるNLP若手の会 第10回シンポジウムに是非ご参加ください(まだ詳細未定)

http://yans.anlp.jp/

- 僕の現職や前職について何か聞きたい方は、お気軽にお声がけください

Page 5: 形態素解析器 MeCab の新語・固有表現辞書 mecab-ipadic-NEologd のご紹介

mecab-ipadic-NEologdメカブ アイピーエーディック ネオログディー

Page 6: 形態素解析器 MeCab の新語・固有表現辞書 mecab-ipadic-NEologd のご紹介

Neologism dictionary based on the language resources on the Web for mecab-ipadic

Page 7: 形態素解析器 MeCab の新語・固有表現辞書 mecab-ipadic-NEologd のご紹介

mecab-ipadic-neologd

頂いた意見「neolog から新語とか固有表現っぽさを感じない」

Page 8: 形態素解析器 MeCab の新語・固有表現辞書 mecab-ipadic-NEologd のご紹介

mecab-ipadic-NEologd

Page 9: 形態素解析器 MeCab の新語・固有表現辞書 mecab-ipadic-NEologd のご紹介

mecab-ipadic-NEologd とは

- IPADIC を拡張した mecab のシステム辞書- Apache 2.0 ライセンスなOSS

- 新語・固有表現などを読み仮名と原型付きで約168万組採録(3/24時点)

- 最低月に2回アップデート

- すでに数社が実務で利用している

Page 10: 形態素解析器 MeCab の新語・固有表現辞書 mecab-ipadic-NEologd のご紹介

mecab-ipadic-NEologd を使うと

IPADIC を使っている際の「新語が辞書に登録されていなくて困る問題」を大幅に軽減できる

- その例をインストール時に確認できる

新語が「名詞 ,固有表現,一般,*,*,*」として認識されている

Page 11: 形態素解析器 MeCab の新語・固有表現辞書 mecab-ipadic-NEologd のご紹介

RMeCabからも使いやすい

記事 : neologdをRMeCabの辞書に指定する(ただしMac)- http://d.hatena.ne.jp/dichika/20150328/p1

インストール時にユーザ辞書を生成して指定するだけ!

library("RMeCab")input <- "Gのレコンギスタ"RMeCabC(input, dic = "/path/of/mecab-user-dict-seed.********.csv.dic")

Page 12: 形態素解析器 MeCab の新語・固有表現辞書 mecab-ipadic-NEologd のご紹介

初回インストール (例: OSX)

Step.0 : 必要なライブラリをインストール

- $ brew install mecab mecab-ipadic git curl xz

Step.1 : git clone する

- $ git clone --depth 1 https://github.com/neologd/mecab-ipadic-neologd.git

Step.2 : インストールする

- $ cd mecab-ipadic-neologd; ./bin/install-mecab-ipadic-neologd -n

Page 13: 形態素解析器 MeCab の新語・固有表現辞書 mecab-ipadic-NEologd のご紹介

初回インストール (例: OSXなRユーザ)

Step.0 : 必要なライブラリをインストール

- $ brew install mecab mecab-ipadic git curl xz

Step.1 : git clone する

- $ git clone --depth 1 https://github.com/neologd/mecab-ipadic-neologd.git

Step.2 : インストールする & ユーザ辞書を作る

- $ cd mecab-ipadic-neologd; ./bin/install-mecab-ipadic-neologd -n / --create_user_dic

Page 14: 形態素解析器 MeCab の新語・固有表現辞書 mecab-ipadic-NEologd のご紹介

インストールが超簡単!!

https://www.flickr.com/photos/kit4na/6385016345/

Page 15: 形態素解析器 MeCab の新語・固有表現辞書 mecab-ipadic-NEologd のご紹介

使い方の例

コマンドラインの場合

その他の場合

- mecab の辞書関連オプションに以下から、求められた方を与える- システム辞書のディレクトリパス- ユーザ辞書のファイルパス

$ mecab -d /usr/local/lib/mecab/dic/mecab-ipadic-neologd任意の文

Page 16: 形態素解析器 MeCab の新語・固有表現辞書 mecab-ipadic-NEologd のご紹介

処理結果の例既存のIPA辞書では認識できない固有表現を認識できるようになった

副作用もある

人名の麻生より、地名の麻生の方が、財務相とくっつきやすくなってしまった

これが問題になるかどうかは応用方法次第である

Page 17: 形態素解析器 MeCab の新語・固有表現辞書 mecab-ipadic-NEologd のご紹介

便利そうですね!!

事実とても便利

些細なエラーは忘れたい

可能になったことが大切

テキストマイニングの結果も当然改善される

https://www.flickr.com/photos/span112/2245983695/

Page 18: 形態素解析器 MeCab の新語・固有表現辞書 mecab-ipadic-NEologd のご紹介

他のうまくいかない場合の例

「デート」というドラマのタイトルに固有表現な品詞情報を付与できない(一般名詞の固有表現化、という現象)- 理由: デートが一般名詞だから

- これは今後の固有表現抽出で解くべき問題の一つ

Page 19: 形態素解析器 MeCab の新語・固有表現辞書 mecab-ipadic-NEologd のご紹介

mecab-ipadic-NEologd は万能ではない

辞書は自分の用途に合わせて変えてください

- 応用に適した結果を得られるよう工夫する

使い分けの例- Case1. 機械学習の特徴量作成に使いたい

=> mecab-ipadic と mecab-ipadic-NEologdの解析結果を両方とも使う (どう組み合わせるかは応用次第)

- Case2. 素朴な検索indexを1つだけ保持できる

=> mecab-ipadic だけ使う (適度な短さで嬉しいはず)

Page 20: 形態素解析器 MeCab の新語・固有表現辞書 mecab-ipadic-NEologd のご紹介

Q&A

Page 21: 形態素解析器 MeCab の新語・固有表現辞書 mecab-ipadic-NEologd のご紹介

Q. 採録しているエントリの収集方法は?

エントリの元になる言語資源は2種類ある

- Web上からクロールして収集した資源- 手元で人手で作成した資源

言語資源から作成した辞書エントリは、著作権やライセンスの観点から2種類ある

- そのまま採録しても問題がない- そのまま採録するのは問題がある

mecab-ipadic-NEologd では =>「 Web 上から収集した資源」から「そのまま採録するのは問題がある」エントリを除く様に努めている

Page 22: 形態素解析器 MeCab の新語・固有表現辞書 mecab-ipadic-NEologd のご紹介

Q. どんなエントリを採録してるの?

以下の様なエントリを採録している

- IPA辞書を使った時に- 複数の形態素に分割されてしまう固有表現- 分割は正しいが読み仮名を付与できない固有表現

- 開発者が必要だと考えたエントリ

逆に以下の様なエントリは積極的には採録しない

- 特殊なドメインの単語(医学・特許用語など)- 一般性の低い固有表現(TwitterのIDなど)

今後は製品名や作品名などをとくに充実させたい

- 採録して欲しい資源をお持ちの方はご相談ください

Page 23: 形態素解析器 MeCab の新語・固有表現辞書 mecab-ipadic-NEologd のご紹介

Q. 品詞情報の決定方法は?現在は以下の4パターン以外については、とくに精査せずに「名詞,固有名詞,一般,*,*,*」を付与している

- 「郵便番号データ」のから得た住所を構成する文字列

- 「日本全国駅名一覧」から得た駅名を示す文字列

- 「人名(姓/名)エントリデータ」から得た文字列

- 既知の姓・名の組み合わせ

今後もかなり高精度に品詞情報を决定できる場合以外は、なるべく単純に品詞情報を付与するつもり

- この辞書の価値は正しく品詞情報を付与することでは、まだ無い、ので気楽にやっていきます

Page 24: 形態素解析器 MeCab の新語・固有表現辞書 mecab-ipadic-NEologd のご紹介

Q. なぜ IPADIC を拡張したの?Web上には長単位な辞書エントリに変換しやすい言語資源が多い

既存の形態素解析辞書に対して長単位なエントリを追加する作業は、短単位なエントリを追加する作業よりも難易度が低いと感じられた

- 人間の目視による検査は最小化したい

用言や副詞など、体言以外のエントリについて自分でも考えたかった

- 今後、人手で確実に対処したい

既知の固有表現の単語境界に関してチャンキングを不要にしたかった

- 固有表現の内部構造が必要なときは別の辞書による結果を混ぜる

固有表現の読み仮名を推定なしで取得したかった

Page 25: 形態素解析器 MeCab の新語・固有表現辞書 mecab-ipadic-NEologd のご紹介

Q. なぜ読み仮名が必要なの?

僕が取り組む課題では、形態素解析器を使って日本語の文字列に読みを付与することが必須な場合がとても多い

- 日本語な検索キーワードのスペル訂正- 読み仮名や読み仮名のローマ字表記が必要

読み仮名の推定は計算量が多いタスク

- 読み仮名が既知で推定が不要ならそれが最良である

固有表現に読み仮名を付与できると自然言語処理だけでなく、音声認識・合成においても未知語の解決に貢献できる

- 未知語が原因であるエラーを削減できる

Page 26: 形態素解析器 MeCab の新語・固有表現辞書 mecab-ipadic-NEologd のご紹介

Q. 今後 UNIDIC には対応しないの?mecab-unidic-neologd をリリースする予定がある

- 先に mecab-ipadic-neologd に体言以外のエントリを追加する

対応する理由

- NEologd で生成する辞書の性能や性質を評価するため- 副作用に関する評価を中心におこないたい

追加するエントリの単位

- 短単位エントリの追加作業は個人的に利益とコストが見合わない- 短単位以上で長単位以下のエントリを追加することになるはず

対応時期は

- 年内

Page 27: 形態素解析器 MeCab の新語・固有表現辞書 mecab-ipadic-NEologd のご紹介

Q. なぜ Apache Licence 2.0 なの?

mecab-ipadic-neologd に関連する著作権周りのことに関して悩むのは僕だけで十分だから

Apache Licence 2.0な OSS をどう取り扱うべきかは、ググれば分かるはずだから

Page 28: 形態素解析器 MeCab の新語・固有表現辞書 mecab-ipadic-NEologd のご紹介

Q. 開発の経緯は?2014年1月、2月 :  形態素解析処理後のチャンキング処理の正解率の向上に限界を感じる

2014年3月 - NLP2014 に参加して意識が高まり、本質的な解決方法に取り組むことに

- 15年前から「未知語が辞書に登録されていない」という問題に変化が無いことに着目- 単語境界が既知ならチャンキングせず辞書引きすれば良い、という方針を選択

2014年4月9日  : 社内で新語辞書のシードデータ生成器の試作を開始

2014年7月9日  : 社内で新語辞書パッケージ first commit2014年7月16日  : 社内で新語辞書パッケージ を初めてアップデート

2014年8月〜2015年1月- (他の開発作業と並行して )粛々と機能改良とパッケージの更新とバグ修正を続ける

2015年2月1日  : 社内で開発した成果物を社外に出していくことになる

2015年2月24日  : 辞書のライセンスを Apache Licence 2.0 に決定

2015年3月9日  : 社外で mecab-ipadic-NEologd を first commit2015年3月11日  : 友人・知人に試用を依頼。動作確認と修正を繰り返す

2015年3月13日  : 社外でリリースした後の広報を開始

2015年3月14日〜19日 : 致命的なバグの修正や利便性を高める機能の追加をする

2015年3月24日 : tag / v0.0.1 をリリース

Page 29: 形態素解析器 MeCab の新語・固有表現辞書 mecab-ipadic-NEologd のご紹介

Q. 最新情報の集め方は?

1. Twitter で @overlast をフォロー

2. たまに #neologd を検索する

3. neologd、形態素解析器、固有表現抽出などに対する関する不満を Twitter 上で言ってみる

Page 30: 形態素解析器 MeCab の新語・固有表現辞書 mecab-ipadic-NEologd のご紹介

まとめ: - mecab-ipadic-NEologd は IPADIC を拡張した

mecab のシステム辞書

- 新語・固有表現などを読み仮名・原型付きで168万組を再録(異表記な重複エントリ込)

- 最低月2回アップデート(初旬・中旬)

- Rを使ったテキストマイニングに今後必須

Page 31: 形態素解析器 MeCab の新語・固有表現辞書 mecab-ipadic-NEologd のご紹介

今後の発展

- tag / v0.0.2 : 副詞の追加

- mecab-unidic-NEologd の生成

- 定量的な評価とその結果の発表

Page 32: 形態素解析器 MeCab の新語・固有表現辞書 mecab-ipadic-NEologd のご紹介

参考資料

MeCab 用の新語辞書 mecab-ipadic-neologd を公開しました- http://diary.overlasting.net/2015-03-13-1.html

日本語のREADME- https://github.com/neologd/mecab-ipadic-neologd/blob/master/README.ja.md#

日本語で詳細な説明を書いたWiki- https://github.com/neologd/mecab-ipadic-neologd/wiki#

解析前に行うことが望ましい文字列の正規化処理- https://github.com/neologd/mecab-ipadic-neologd/wiki/Regexp.ja