PerlでKyTea

3,231 views
3,086 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
3,231
On SlideShare
0
From Embeds
0
Number of Embeds
685
Actions
Shares
0
Downloads
7
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

PerlでKyTea

  1. 1. OECU Visual Media Lab. Perl で KyTea 大阪電気通信大学 吉岡 康平 (@_pawa_) 2011 年 11 月 26 日 Kansai.pm #14 1
  2. 2. OECU Visual Media Lab. Kansai.pm #14自己紹介 大阪電気通信大学 3年生 視覚・メディアの研究室( 3 年次に卒研がある) 趣味:草野球 2
  3. 3. OECU Visual Media Lab. Kansai.pm #14KyTea とは 読み方:きゅーてぃー JUMAN ・ ChaSen ・ MeCab より新しい,形態素解 析も可能なテキスト解析器 特徴 簡単に分野適応が可能 読み・発音推定も可能 3
  4. 4. OECU Visual Media Lab. Kansai.pm #14第 8 回 NLP 勉強会にも登場!? 2011 年 11 月 23 日 「点予測による自然言語処理」 ハッシュタグ: #TokyoNLP 発表資料: http://plata.ar.media.kyoto- u.ac.jp/mori/research/public/TokyoNLP11Nov.pdf NLPer じゃない人が見たら -> 「なるほど、わからん」 4
  5. 5. OECU Visual Media Lab. Kansai.pm #14Perl での使用例 (1/2)1.KyTea のインストール root 権限がないレンタルサーバ等の場合は「 --prefix 」 でインストールディレクトリを変更する2.Text::KyTea のインストール cpanm Text::KyTea cpanm -v Text::KyTea または cpanm –-interactive Text::KyTea (インストールディレクトリを変更した場合) 5
  6. 6. OECU Visual Media Lab. Kansai.pm #14Perl での使用例 (2/2)3.解析 my $kytea = Text::KyTea->new(%config); $kytea->parse($text);4.出力 農産 名詞 /2.70334713695609 のうさん /100 物 接尾辞 /1.6587805017786 ぶつ /1.98600310003943 価格 名詞 /2.52071395143603 かかく /100 安定 名詞 /2.71772008997416 あんてい /100 法 名詞 /1.77926630244534 ほう /100 を 助詞 /4.1659655242444 を /100 施行 名詞 /2.37552852395856 しこう /1.80822732106356 6
  7. 7. OECU Visual Media Lab. Kansai.pm #14読み推定のレベル 正解 小鳥遊さん -> たかなしさん 長野久義 -> ちょうのひさよし 鏡音リン -> かがみねりん 薬袋 -> みない 不正解 高次元 -> たかじもと (正解:こうじげん) 巡音ルカ -> じゅんおんるか (正解:めぐりねるか) 注連本 -> しめぼん (正解:しめもと) 7
  8. 8. OECU Visual Media Lab. Kansai.pm #14いろいろなモデル 中国語用モデル ひらがなもでる (http://www.phontron.com/kytea/model-ja.html) 京都大学 森准教授のモデル(森モデルと呼ぶ ) (http://plata.ar.media.kyoto- u.ac.jp/mori/research/topics/ASR/) 8
  9. 9. OECU Visual Media Lab. Kansai.pm #14中国語用モデル 「我是日本人。」 我 wo3_ 是 shi4_ 日本 ri4_ben3_ 人 ren2_ 。 。_ 9
  10. 10. OECU Visual Media Lab. Kansai.pm #14ひらがなもでる 「さいくろんまぐなむ」 さいくろん 名詞 まぐなむ 名詞 デフォルトのモデルの場合 さ 助詞 い 語尾 くろんまぐ 形状詞 な 助動詞 む 語尾 10
  11. 11. OECU Visual Media Lab. Kansai.pm #14森モデル 「黒毛和牛上塩タン焼き六百八十円」 黒毛 クロゲ 和牛 ワギュー 上 ジョー 塩 シオ タン タン 焼き ヤキ 六百 ロッピャク 八十 ハチジュー 円 エン 11
  12. 12. OECU Visual Media Lab. Kansai.pm #14KyTea の仕組み 農 |1 産 |2 物 |3 価 |4 格 |5 安 |6 定 |7 法 |8 を |9 施 |10 行 |1 ~ |10 に対して境界があるかないか推定 例えば, |8 に境界があるかないか推定する場合 |8 の周りの文字列 |8 の周りの文字列の文字種(ひらがな・漢字など) 辞書に含まれている単語 から推定 -> 農産 | 物 | 価格 | 安定 | 法 | を | 施工 12
  13. 13. OECU Visual Media Lab. Kansai.pm #14KyTea の使いどころ 読み推定の機能が欲しい場合 既存の形態素解析器では上手く解析できない場合 ( e.g. ツイート,専門分野,み○くら語など) 簡単に分野適応可能! 13
  14. 14. OECU Visual Media Lab. Kansai.pm #14 MeCab より良い感じにTwitter のツイートを形態素解析できる モデルを作ってみよう! 14
  15. 15. OECU Visual Media Lab. Kansai.pm #14用意するもの Linux か Mac OSX か CygWin (メモリ 3.5GB 以上) KyTea の分野適応ツールキット v. 1.0 http://www.phontron.com/kytea/active-ja.html KyTea の素性ファイル http://www.phontron.com/kytea/train- ja.html#feature ツイート (とりあえず 1000 ツイートぐらい?) AnyEvent::Twitter::Stream などで収集可能 target-train.raw というファイル名で保存 15
  16. 16. OECU Visual Media Lab. Kansai.pm #14ファイル移動 KyTea の素性ファイル (kytea-0.3.2.feat) ツイート (target-train.raw) 両ファイルともツールキットの data ディレクトリへ 16
  17. 17. OECU Visual Media Lab. Kansai.pm #14ツールキット内の makemodel.sh の修正 - GEN_CORPORA="-full data/wiki-sample.word" + GEN_CORPORA="-feat data/kytea-0.3.2.feat" 「 -nope 」 という文字列を全て削除 17
  18. 18. OECU Visual Media Lab. Kansai.pm #14ツールキット内の merge-annot.pl を修正 $2 =~ /([^ ?|-&][^ ?|-&])/ and die "Unmarked character bigram $1 at $_n"; ↑ をコメントアウト (単語分割のみの場合しか使えない) 18
  19. 19. OECU Visual Media Lab. Kansai.pm #14アノテーション(注釈付与) (1/3) $ ./makemodel.sh モデルが作成され,アノテーション(注釈付与)すべき 箇所が選択される メモリ 3GB ほど使用する LIBLINEAR という高速なライブラリを使用しているの で,意外と速い( 10 分ぐらい) ツールキットの work ディレクトリに「 ddd.annot 」 というファイルが生成されるので, ddd が最も大きいファイルを開く. 19
  20. 20. OECU Visual Media Lab. Kansai.pm #14アノテーション (2/3) [ ク - リ - ス - マ ! ス - ま - で - あ - と |4 7 日 、 、 、 ♥] 「 ! (半角)」を「 - 」(境界なし)や「 | 」(境界あり)に 書き換えて前後の単語と併せてタグ付与 「 ! 」意外でも目についた部分は書き換えて良い 例) [ ク - リ - ス - マ - ス / 名詞 / くりすます | ま - で / 助 詞 / まで | あ - と |4 7 日 、 、 、 ♥ ] 20
  21. 21. OECU Visual Media Lab. Kansai.pm #14アノテーション (3/3) 全ての「 ! 」に同様の処理ができたら $ ./saveannot.sh 良い感じになるまでループ ( $ ./makemodel.sh に戻る) 21
  22. 22. OECU Visual Media Lab. Kansai.pm #14顔文字も推定させたい場合 global -1 で学習させる Makemode.sh を編集する # make the model echo "$TRAIN $TRAIN_OPT $GEN_CORPORA $DICTS -part save/$num.wann -model work/$num.mod" $TRAIN $TRAIN_OPT $GEN_CORPORA $DICTS -part save/ $num.wann -global 1 -model work/$num.mod ヽ -(-´-▽- ` -)- / / 顔文字 /UNK のようにアノテーション 22
  23. 23. OECU Visual Media Lab. Kansai.pm #14作った Twitter 用モデルで解析 「だよねー (´ ; ω ;` ) トイレで着替えなきゃwww」 だ 助動詞 だ よ 助詞 よ ねー 助詞 ねー (´ ; ω ;` ) 顔文字 UNK トイレ 名詞 UNK で 助詞 で 着替え 名詞 きがえ な 助動詞 な きゃ 語尾 きゃ www 記号 わらわら 23
  24. 24. OECU Visual Media Lab. Kansai.pm #14もうちょっと難しそうなテキスト 「ノノ * ` ω´* ルつお弁当」 ノノ * ` ω´* ルつ 動詞 UNK お 接頭辞 お 弁当 名詞 べんとう デフォルトのモデルの場合 ノノ 名詞 UNK つ 動詞 つ * 補助記号 UNK お 接頭辞 お ` 補助記号 ` 弁当 名詞 べんとう ω 補助記号 おめが ´* 補助記号 UNK ル 補助記号 UNK 24
  25. 25. OECU Visual Media Lab. Kansai.pm #14Text::KyTea の高速化 notag => [2] n 個目のタグを推定しない 2 でデフォルトモデルの場合 -> 読みを推定しない tagmax => 1 接頭辞 記号 言いよどみ などの候補の最大何個 出力するか まだまだ勉強中です。 Text::KyTea にバグ・改善点 などあれば気軽にお知らせください。 < ( . _ . ) > 25
  26. 26. OECU Visual Media Lab. Kansai.pm #14参考文献 Graham Neubig ,中田 陽介,森 信介 : 点推定と能 動学習を用いた自動単語分割器の分野適応 , 言 語処理学会第 16 回年次大会 , 2010. Chin-Wei Hsu et al. : A Practical Guide to Supprot Vector Classification, <http://www.csie.ntu.edu.tw/~cjlin/papers/guide/ guide.pdf>, 2010. 26
  27. 27. OECU Visual Media Lab. Kansai.pm #14 ご清聴ありがとうございました. 27

×