🍻(beer mug)の読み方を考える(mecab-ipadic-neologdのunicode 絵文字対応)

28
の読み方を考える 2015-05-22 PyData.Tokyo Meetup #5 佐藤敏紀 ( @overlast )

Upload: toshinori-sato

Post on 08-Aug-2015

1.586 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: 🍻(Beer Mug)の読み方を考える(mecab-ipadic-NEologdのUnicode 絵文字対応)

  の読み方を考える

2015-05-22 PyData.Tokyo Meetup #5

佐藤敏紀 ( @overlast )

Page 2: 🍻(Beer Mug)の読み方を考える(mecab-ipadic-NEologdのUnicode 絵文字対応)

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

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

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

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

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

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

Page 3: 🍻(Beer Mug)の読み方を考える(mecab-ipadic-NEologdのUnicode 絵文字対応)

その他

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

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

http://yans.anlp.jp/

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

Page 4: 🍻(Beer Mug)の読み方を考える(mecab-ipadic-NEologdのUnicode 絵文字対応)

まとめ

mecab-ipadic-NEologdで絵文字に読みを付与するためのエントリを”試験的”に追加したという話

mecab-ipadicと併用すれば絵文字の読み・原型の文字列で検索が可能になりました

応用 => 言語処理・音声処理・コンテンツ監視等

今後アノテーションは徐々に改善していきます

Page 5: 🍻(Beer Mug)の読み方を考える(mecab-ipadic-NEologdのUnicode 絵文字対応)

Unicode 絵文字、使っていますか?

今回の議題はこちらの様な絵文字

Page 6: 🍻(Beer Mug)の読み方を考える(mecab-ipadic-NEologdのUnicode 絵文字対応)

解析の前に”とりあえず正規化”しよう

例: 「壁ドンされて〜〜〜☺」

    ↓  「壁ドンされてー☺」

人間が眺めて意味が含まれていなさそうな文字列はどんどん変換・削除しましょう

やりかたの例はググると色々見つかります 例:「Regexp.ja」でググってください

Page 7: 🍻(Beer Mug)の読み方を考える(mecab-ipadic-NEologdのUnicode 絵文字対応)

絵文字を含んだ文の形態素解析

素のMeCabで「☺」を解析してみると

 => 「☺ 名詞,サ変接続,*,*,*,*,*」になる

人間が「☺」を見た時に

- 読み方は瞬間的に思い浮かばない- でも「笑ってるなw」くらいには即分かる

どうなって欲しい ??=>「☺ : 笑顔」位は自動的に付与して欲しい!!

Page 8: 🍻(Beer Mug)の読み方を考える(mecab-ipadic-NEologdのUnicode 絵文字対応)

そもそも絵文字の定義はどこにある??

UTR #51“Unicode Emoji”- Unicodeコンソーシアムが発行- 絵文字の実装指針文書

これのfull-emoji-list.html- 割と活発に更新される- Unicode 7.0 以前は変わらなないで欲しい

http://unicode.org/emoji/charts/index.html

Page 9: 🍻(Beer Mug)の読み方を考える(mecab-ipadic-NEologdのUnicode 絵文字対応)

http://unicode.org/emoji/charts/full-emoji-list.html

英語のアノテーションはごちゃっと付与されている

- 欲しいラベルは・・・- 各絵文字に複数の品詞情報が付与される可能性

- 品詞情報が変わると読みが変わる可能性

Page 10: 🍻(Beer Mug)の読み方を考える(mecab-ipadic-NEologdのUnicode 絵文字対応)

絵文字の品詞情報ってどうなるの?

ひと通りアノテーションすると6種類くらい、と分かります(今後、もう少し整頓します)

- 名詞,一般    「 (ビール)を飲んだ」- 名詞,サ変接続   「早速 (乾杯)した」- 記号,一般    「今日は打ち上げ。 」- 動詞 「今日は同僚の送別会で (飲ん?)だ」- 副詞 「星が✨(キラキラ)と輝いている」- 感動詞?          「 」「 」

Page 11: 🍻(Beer Mug)の読み方を考える(mecab-ipadic-NEologdのUnicode 絵文字対応)

最初ですしザクっとやってみました

=> Unicode 6.0 以前の絵文字全てに品詞・読み・原型を付与

Page 12: 🍻(Beer Mug)の読み方を考える(mecab-ipadic-NEologdのUnicode 絵文字対応)

絵文字アノテーションの難易度の印象

割と簡単

- 記号,一般     「今日は打ち上げ。 」

そこそこ何とかなる

- 名詞,一般     「 を飲んだ」- 名詞,サ変接続   「早速 した」

難しい (=> 以下の3種類は今回の対応の対象外とした)- 動詞?       「今日は同僚の送別会で だ」- 副詞        「星が✨と輝いている」- 感動詞        「 」「 」

Page 13: 🍻(Beer Mug)の読み方を考える(mecab-ipadic-NEologdのUnicode 絵文字対応)

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

Page 14: 🍻(Beer Mug)の読み方を考える(mecab-ipadic-NEologdのUnicode 絵文字対応)

mecab-ipadic-NEologdとは

- IPA 辞書を拡張した mecab のシステム辞書

- 新語・固有表現などを167万語以上再録- 読み仮名・原型付きで(異表記の重複込み)

- 最低月2回アップデート(初旬・中旬)- Apache License 2.0 なOSSなので安心

- 今後- 用言を充実する作業 / UniDic版の作成など

Page 15: 🍻(Beer Mug)の読み方を考える(mecab-ipadic-NEologdのUnicode 絵文字対応)

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

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

mecab-ipadic-NEologd を使うと

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

Page 16: 🍻(Beer Mug)の読み方を考える(mecab-ipadic-NEologdのUnicode 絵文字対応)

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

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

- $ brew install mecab mecab-ipadic git curl xz

Step.2 : git clone する

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

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

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

Page 17: 🍻(Beer Mug)の読み方を考える(mecab-ipadic-NEologdのUnicode 絵文字対応)

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

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

Page 18: 🍻(Beer Mug)の読み方を考える(mecab-ipadic-NEologdのUnicode 絵文字対応)

使用例 : コマンドラインの場合[overlast@]$ mecab -d /usr/local/lib/mecab/dic/mecab-ipadic-neologdiQONのアプリ内のデータ分析基盤の紹介や分析手法について紹介します。

iQON 名詞,固有名詞,一般,*,*,*,iQON,アイコン,アイコン

の 助詞,連体化,*,*,*,*,の,ノ,ノアプリ 名詞,固有名詞,一般,*,*,*,アプリ,アプリ,アプリ

内 名詞,接尾,一般,*,*,*,内,ナイ,ナイ

の 助詞,連体化,*,*,*,*,の,ノ,ノデータ 名詞,一般,*,*,*,*,データ,データ,データ

分析 名詞,サ変接続,*,*,*,*,分析,ブンセキ,ブンセキ

基盤 名詞,一般,*,*,*,*,基盤,キバン,キバン

の 助詞,連体化,*,*,*,*,の,ノ,ノ紹介 名詞,サ変接続,*,*,*,*,紹介,ショウカイ,ショーカイ

や 助詞,並立助詞,*,*,*,*,や,ヤ,ヤ分析 名詞,サ変接続,*,*,*,*,分析,ブンセキ,ブンセキ

手法 名詞,一般,*,*,*,*,手法,シュホウ,シュホー

について 助詞,格助詞,連語,*,*,*,について,ニツイテ,ニツイテ

紹介 名詞,サ変接続,*,*,*,*,紹介,ショウカイ,ショーカイ

し 動詞,自立,*,*,サ変・スル,連用形,する,シ,シます 助動詞,*,*,*,特殊・マス,基本形,ます,マス,マス

。 記号,句点,*,*,*,*,。,。,。EOS

既存の IPA 辞書には登録されていない固有表現を認識できるようになった !!

Page 19: 🍻(Beer Mug)の読み方を考える(mecab-ipadic-NEologdのUnicode 絵文字対応)

うまくいかない場合の例一般名詞の固有表現化

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

↑↑↑ 今後の固有表現抽出で解くべき問題の一つ

Page 20: 🍻(Beer Mug)の読み方を考える(mecab-ipadic-NEologdのUnicode 絵文字対応)

便利そうですね!!

事実とても便利

些細なエラーは忘れたい

可能になったことが大切

文書分類やレコメンドの

結果も当然改善される

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

Page 21: 🍻(Beer Mug)の読み方を考える(mecab-ipadic-NEologdのUnicode 絵文字対応)

たまにアップデートしましょう

以下のコマンドでサクっと更新できます

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

-h オプションで機能を確認してみましょう !!!

辞書のバージョンを固定したい場合

 => tag から任意のバージョンを選ぶ

- 機能が大幅に更新された時に作っている- 現在は v0.0.1 のみ存在している

Page 22: 🍻(Beer Mug)の読み方を考える(mecab-ipadic-NEologdのUnicode 絵文字対応)

今回は mecab-ipadic-neologd にUnicode 6.0 以前の絵文字エントリを追加

さっきのデータから生成して追加した

Page 23: 🍻(Beer Mug)の読み方を考える(mecab-ipadic-NEologdのUnicode 絵文字対応)

解析結果が素の MeCab と比べると、大分違うものになります(後者)

Page 24: 🍻(Beer Mug)の読み方を考える(mecab-ipadic-NEologdのUnicode 絵文字対応)

今後のアノテーションの改善方法

「 」おっはー(死語)がもとになっている

=> 止まれ、の代わりに使われたりするそうだ

日々の観察が重要!!

みんなの意見が最も少なくなる読み方になるように少しづつ調整していきます

Page 25: 🍻(Beer Mug)の読み方を考える(mecab-ipadic-NEologdのUnicode 絵文字対応)

まとめ

mecab-ipadic-NEologdで絵文字に読みを付与するためのエントリを”試験的”に追加したという話

mecab-ipadicと併用すれることで、絵文字の読み・原型の文字列で検索が可能になりました

応用 => 言語処理・音声処理・コンテンツ監視等

今後アノテーションは徐々に改善していきます

Page 26: 🍻(Beer Mug)の読み方を考える(mecab-ipadic-NEologdのUnicode 絵文字対応)

今後の Unicode 絵文字対応

Unicode 7.0 以降に対応

アノテーションをもう一回する(二周目)

用言的な絵文字の役割について考察する

品詞情報を自動推定できないか試みる

 => 使われ方がだんだん変わると思うので

Page 27: 🍻(Beer Mug)の読み方を考える(mecab-ipadic-NEologdのUnicode 絵文字対応)

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

1. Twitter で @overlast をフォロー

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

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

Page 28: 🍻(Beer Mug)の読み方を考える(mecab-ipadic-NEologdのUnicode 絵文字対応)

参考資料

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