コードネームは初話ユウ

自然言語処理でいろいろやってみる

2012-01-01から1年間の記事一覧

比較があまり意味なかった(らしい)件

京大コーパスを試したと前回書いたが、比較のためにcabochaでも同条件で測定してみた。 ok ng 正答率kakarot 266014 54603 83.0%cabocha 291893 28724 91.0% (v0.64)cabocha 304930 15687 95.1% (v0.65)cabocha v0.65が(またしても)やたらいい。これももし…

ちょっと立ち止まって分析してみる

ツテをたどって、京大コーパスなるものにアクセスできたのでちょっとトライしてみた。正答率83.0%。KNBCとあまり変わらないレベル。元データがフリーでないので環境の公開はしないが、やってることとしてはcabOnKnbcと似たようなことをやっている。(IPA辞書…

徐々に改良中

KNBコーパスで正答率が出るようになると、やはり良い数字を出したくなる。というわけでここしばらくは正答率を上げるために係ろっとの改良作業をやっていた。誤答を出した対象文をログ付きで解析し、ログを見て誤答の原因を割り出して修正、という作業を繰り…

KNBコーパスで正答率を測る

せっかく係り受け解析器を作ったので、やはり精度がどうなってるか気になる。ということで、測ってみることにした。論文とか見るとだいたい皆さん京大コーパスというのを使ってるようだ。なのでこれを調べてみる。…えーと、毎日新聞CDROMてのがいるのか。こ…

【作ってみた】全域探索を行う日本語係り受け解析器「係ろっと」

できた。ソースはこちら。 網羅的なテストまではしていないが、ざっと動かしてみたところでは、cabochaとの結果比較で9割方一致する感じ。結果が異なるものを見てみると、だいたいこっちがおかしいのだけれど、cabochaの方が間違ってることもちらほらあるよ…

係り受け解析器を設計する

cabochaの係り受けは、短い文だとまあまあいいものの、ちょっと長い文になるとけっこう間違う。この理由は、おそらく次の2つがあるだろう: ・構文と辞書(品詞)情報のみに頼っており、意味を見ていない ・決定的動作で、全域探索をしていない このうち前…

cabochaソースを読む(4)係り受けレイヤ

いよいよ本丸の係り受け部分を見ていく。parse() は dep.cpp l.191から。 アルゴリズム自体は最初の回に紹介した論文に詳しく述べられている。parse()は100行に満たないので、論文と見比べながら読んでいけば大体わかると思うが、いくつかコメント: l.207 b…

cabochaソースを読む(3)各文節の素性

素性選択レイヤを見る。ソースはselector.cpp。l.117 parse()から行く。 l.121 の forループで(sentence中の)全chunkをなめる。 l.128 の forループで各chunkの中の全tokenをなめる。 各tokenに対して、 l.130 pat_kutouten_.match(token->normalized_surf…

cabochaソースを読む(2)入力データから情報抽出

前記事の続き。 tree->read() (tree.cpp l.406) が文字列入力からデータ構造を構築する。まずデータ構造の宣言をチェック。 cabocha.h に struct cabocha_chunk_t (l.75), struct cabocha_token_t (l.87) の宣言がある。chunk が文節、token が形態素。ちな…

cabochaソースを読む(1)処理の流れ概要

係り受けツールのcabochaをいじっているが、いろいろとひっかかってる。cabochaは係り受けをどうやって決めているのか?を知るため、ソースを少し読んでみた。以下そのメモ。 南瓜のページ http://code.google.com/p/cabocha/ からソースをDL。とったのは v0…