ノート/テキストマイニング
訪問者数 2199      最終更新 2012-05-15 (火) 16:09:11

2012-05-15 誤変換・誤字脱字の検出問題

誤変換の検出の問題は、形態素解析の結果の「単語」のレベルでは、誤りを検出できないことである。 つまり、その言葉は「単語としては正しい」。

ちなみに誤字脱字は、単語として存在しない場合の方が多く、その場合単語辞書を引けば検出できる可能性がある。

誤変換は、文脈上で検出せざるを得ない。語のつながりがおかしいというレベルから、極端には意味的におかしいだけ、というレベルまで、さまざまあるが、いずれにせよ各々の単語を見ただけでは検出できない。

私は巧言に生きたい。 本来は巧言ではなく高原。 生きたいではなく行きたい。
私は荒原に行きたい。 本当は荒原ではなく高原に行きたかった。
政党に占拠された国会における代表者を通じて行動し…。
私は六週した。
六周の間待った。

衛生放送、人工衛生、人口衛生。
バスの運航時間、飛行機の運行。
法廷速度。
プリント基盤。

以下は、誤変換だが、区切りを間違えた場合。文脈で見るとおかしいのだが、句のレベルでは正しいと思う。
パンツ食った少年。(本来はパン作った)
砂糖と塩。(本来は佐藤俊夫・佐藤敏男など)
桜今咲かず。(本来は桜井正一など)
彼はお食事券で逮捕された。(本来は汚職事件)
諸宇宙。(本来は焼酎・掌中など)

これらのうち全部とは言わないが一部でも、意味の分析までしなくても、もしくは誤りの辞書を作るのではなく、係り受けもしくはその他何らかの共起の確率を見て、「起こりえない」と判定できるかも知れない、というのが出発点である。

実は、ワープロでのチェックがどのような原理に基づくのかよく知らない(書いたものが見つからない)が、似たような判定をしてくれているように思う。

原理は簡単で、大量のコーパスから係り受け関係の対(一般にはNグラム)を抽出しておき、検査すべき文の中に出てくる係り受け関係がコーパス内に十分頻出するか否かを判定する。

係り受けのコーパスデータ

自分ではさしあたって準備できないので、既存のものを使うことを考える。

日本語係り受けコーパス (JDC)(1億Webページ) が候補になる。
また、大規模日本語 n-gram データの公開(これは有料、200億文)も候補になるだろう。

JDCデータは、CaboChaによって生成されているので、これから細かく議論するCaboChaの性質を引き継いでいる。それが問題になることがあるかも知れない。

CaboChaによる日本語の係り受け解析の実験

日本語の係り受け解析の代表的なソフトであるCaboChaを使って、係り受けを解析してみる。

Pythonから試したことがある ので、それを利用する。

「XXする」の問題

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/one]] のページで試してみると、

JDC_calc_one.PNG

のようになる。

動詞の複雑な絡まり

受け身の形などで、動詞が重なると、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つの例は、

全体のプログラムとしては、期待値の 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

しかないので、「倍音」でも「が」でもないから、該当エントリーなしということになり、無事に変換誤りを見つけることができるかもしれない。


添付ファイル: fileJDC_calc_one.PNG 335件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2012-05-15 (火) 16:09:11 (2018d)