[[ノート/テキストマイニング]]~ 訪問者数 &counter(); 最終更新 &lastmod();~ **2012-05-15 誤変換・誤字脱字の検出問題 [#h5018941] 誤変換の検出の問題は、形態素解析の結果の「単語」のレベルでは、誤りを検出できないことである。 つまり、その言葉は「単語としては正しい」。 >ちなみに誤字脱字は、単語として存在しない場合の方が多く、その場合単語辞書を引けば検出できる可能性がある。 誤変換は、文脈上で検出せざるを得ない。語のつながりがおかしいというレベルから、極端には意味的におかしいだけ、というレベルまで、さまざまあるが、いずれにせよ各々の単語を見ただけでは検出できない。 >私は巧言に生きたい。 本来は巧言ではなく高原。 生きたいではなく行きたい。~ 私は荒原に行きたい。 本当は荒原ではなく高原に行きたかった。~ 政党に占拠された国会における代表者を通じて行動し…。~ 私は六週した。~ 六周の間待った。~ >衛生放送、人工衛生、人口衛生。~ バスの運航時間、飛行機の運行。~ 法廷速度。~ プリント基盤。~ >以下は、誤変換だが、区切りを間違えた場合。文脈で見るとおかしいのだが、句のレベルでは正しいと思う。~ パンツ食った少年。(本来はパン作った)~ 砂糖と塩。(本来は佐藤俊夫・佐藤敏男など)~ 桜今咲かず。(本来は桜井正一など)~ 彼はお食事券で逮捕された。(本来は汚職事件)~ 諸宇宙。(本来は焼酎・掌中など) これらのうち全部とは言わないが一部でも、意味の分析までしなくても、もしくは誤りの辞書を作るのではなく、係り受けもしくはその他何らかの共起の確率を見て、「起こりえない」と判定できるかも知れない、というのが出発点である。 実は、ワープロでのチェックがどのような原理に基づくのかよく知らない(書いたものが見つからない)が、似たような判定をしてくれているように思う。 原理は簡単で、大量のコーパスから係り受け関係の対(一般にはNグラム)を抽出しておき、検査すべき文の中に出てくる係り受け関係がコーパス内に十分頻出するか否かを判定する。 **係り受けのコーパスデータ [#m7bd494d] 自分ではさしあたって準備できないので、既存のものを使うことを考える。 [[日本語係り受けコーパス (JDC):http://hayashibe.jp/jdc/]](1億Webページ) が候補になる。~ また、[[大規模日本語 n-gram データの公開:http://googlejapan.blogspot.jp/2007/11/n-gram.html]](これは有料、200億文)も候補になるだろう。 JDCデータは、CaboChaによって生成されているので、これから細かく議論するCaboChaの性質を引き継いでいる。それが問題になることがあるかも知れない。 **CaboChaによる日本語の係り受け解析の実験 [#r1365415] 日本語の係り受け解析の代表的なソフトであるCaboChaを使って、係り受けを解析してみる。 [[Pythonから試したことがある:http://pepper.is.sci.toho-u.ac.jp/index.php?%A5%CE%A1%BC%A5%C8%2F%A5%C6%A5%AD%A5%B9%A5%C8%A5%DE%A5%A4%A5%CB%A5%F3%A5%B0%2Foregano5#le0704e4]] ので、それを利用する。 ***「XXする」の問題 [#ud40e853] CaboChaの場合、名詞+「する」の組合せは、それぞれ名詞、「する」という動詞、に分解される。従って、動詞としての「XXする」は存在しない。 入力例として ここでは、データの性質を記述するデータモデルの考え方を紹介する。 を解析すると * 0 6D 0/2 0.000000 ここ 名詞,代名詞,一般,*,*,*,ここ,ココ,ココ O で 助詞,格助詞,一般,*,*,*,で,デ,デ O は 助詞,係助詞,*,*,*,*,は,ハ,ワ O 、 記号,読点,*,*,*,*,、,、,、 O * 1 2D 0/1 2.079849 データ 名詞,一般,*,*,*,*,データ,データ,データ O の 助詞,連体化,*,*,*,*,の,ノ,ノ O * 2 3D 0/1 2.200506 性質 名詞,一般,*,*,*,*,性質,セイシツ,セイシツ O を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ O * 3 4D 1/1 0.937868 記述 名詞,サ変接続,*,*,*,*,記述,キジュツ,キジュツ O する 動詞,自立,*,*,サ変・スル,基本形,する,スル,スル O * 4 5D 0/1 1.908615 データモデル 名詞,一般,*,*,*,*,データモデル,データモデル,データモデル O の 助詞,連体化,*,*,*,*,の,ノ,ノ O * 5 6D 0/1 0.000000 考え方 名詞,一般,*,*,*,*,考え方,カンガエカタ,カンガエカタ O を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ O * 6 -1D 1/1 0.000000 紹介 名詞,サ変接続,*,*,*,*,紹介,ショウカイ,ショーカイ O する 動詞,自立,*,*,サ変・スル,基本形,する,スル,スル O EOS となる。これをベースに係り受け辞書データが作られるので、NCV (名詞-格助詞-動詞)辞書には、「性質」-「を」-「記述する」という関係は出てこなくなる。 「名詞」-「助詞」-「名詞」の辞書に載っている可能性もあるので、確認してみようと思う。 なお、[[ホームページ上の検索画面:http://hayashibe.jp/jdc/calc/]] の下の [個別計算:http://hayashibe.jp/jdc/calc/one]] のページで試してみると、 #ref(JDC_calc_one.PNG,wrap,80%); のようになる。 ***動詞の複雑な絡まり [#z5896bdd] 受け身の形などで、動詞が重なると、NVCというわけにいかない。 広く使われているモデルを検討する。 「使われている」が下記のように分解される。 * 0 1D 0/0 2.271021 広く 形容詞,自立,*,*,形容詞・アウオ段,連用テ接続,広い,ヒロク,ヒロク O * 1 2D 0/3 1.835625 使わ 動詞,自立,*,*,五段・ワ行促音便,未然形,使う,ツカワ,ツカワ O れ 動詞,接尾,*,*,一段,連用形,れる,レ,レ O て 助詞,接続助詞,*,*,*,*,て,テ,テ O いる 動詞,非自立,*,*,一段,基本形,いる,イル,イル O * 2 3D 0/1 0.000000 モデル 名詞,一般,*,*,*,*,モデル,モデル,モデル O を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ O * 3 -1D 1/1 0.000000 検討 名詞,サ変接続,*,*,*,*,検討,ケントウ,ケントー O する 動詞,自立,*,*,サ変・スル,基本形,する,スル,スル O EOS これに対応するNCV(名詞と動詞の係り受け)の辞書を見るためには、「モデル」-「が」-「使われる」ではなくて、「モデル」-「を」-「使う」であろう。NCV辞書の「モデル」と「使う」の共起を検索した結果の上位3者は以下のとおりである。 モデル を 使う 11994 モデル に 使う 1770 モデル が 使う 1068 つまり、「モデル」と「使う」はいくつかの(格助詞の)パターンで正当に使われているが、それは受動態を能動態に直した状態で成り立つ話であろう。受け身を能動態に言い換える仕組を準備する必要があるのではないか? (ちなみに、JDC辞書でこのような変換がされているのかは分からないし、おそらくはされていないだろうと思う) もう1つの もう1つの例は、 全体のプログラムとしては、期待値の 8 倍になることはなかった。 で、これはCaboChaで次のように分解される。 * 0 1D 0/1 1.789441 全体 名詞,副詞可能,*,*,*,*,全体,ゼンタイ,ゼンタイ O の 助詞,連体化,*,*,*,*,の,ノ,ノ O * 1 6D 0/2 0.000000 プログラム 名詞,サ変接続,*,*,*,*,プログラム,プログラム,プログラム O として 助詞,格助詞,連語,*,*,*,として,トシテ,トシテ O は 助詞,係助詞,*,*,*,*,は,ハ,ワ O 、 記号,読点,*,*,*,*,、,、,、 O * 2 3D 1/2 1.514298 期待 名詞,サ変接続,*,*,*,*,期待,キタイ,キタイ O 値 名詞,接尾,一般,*,*,*,値,チ,チ O の 助詞,連体化,*,*,*,*,の,ノ,ノ O * 3 4D 1/2 2.360805 8 名詞,数,*,*,*,*,* B-PERCENT 倍 名詞,接尾,助数詞,*,*,*,倍,バイ,バイ I-PERCENT に 助詞,格助詞,一般,*,*,*,に,ニ,ニ O * 4 5D 0/0 2.167139 なる 動詞,自立,*,*,五段・ラ行,基本形,なる,ナル,ナル O * 5 6D 0/1 0.000000 こと 名詞,非自立,一般,*,*,*,こと,コト,コト O は 助詞,係助詞,*,*,*,*,は,ハ,ワ O * 6 -1D 0/1 0.000000 なかっ 形容詞,自立,*,*,形容詞・アウオ段,連用タ接続,ない,ナカッ,ナカッ O た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ O EOS 問題となるのは「8倍になる」である。解析の結果は「なる」が動詞になっているが、 直接、NCV辞書にぶつけると、動詞V部分に単なる「なる」がなさそうである。 なお、本来見つけたい誤変換として「鳴る」としている場合があるが、NCV辞書で「倍」と「鳴る」の組合せを見ると、 倍音 が 鳴る 169 しかないので、「倍音」でも「が」でもないから、該当エントリーなしということになり、無事に変換誤りを見つけることができるかもしれない。