2009-06-08 10 views
2

Google Waveのデモンストレーションを見た人はほんの数に過ぎません。私は、スペルチェック技術について具体的には不思議だった。これらの提案をするために文章の中で文脈上どこに単語が出現するかを調べることによって動作するスペルチェッカーはどれぐらい革命的なのでしょうか?文脈に応じたスペリングエンジン

私は以前この技術を見たことがありませんでしたが、他にもこの例がありますか?
もしそうなら、コード例とその動作の文献がありますか?

+1

本当にあなたの質問に答えることはできませんが、私はGoogle Waveを調べることにしました。そして、私は言わなければならない、フリージンはうわー。 –

答えて

12

私の2セント。 translate.google.comは統計的な機械翻訳エンジンであり、HalevyのP Norvig(Googleの研究ディレクター)の「Unreasonable Effectiveness of Data」& F Pereira:私は仮定を(ベット)とするこれは統計的に駆動されるスペルチェッカーです。

どのように動作するか:スペルチェックを行う言語の非常に大きなコーパスを収集します。このコーパスは、nグラムの数(推定される確率)を記録する適合データ構造(n-gramsサブセットを数える必要がある場合など、suffix arraysのサブセット)のフレーズテーブルとして格納します。あなたのコーパスのみのconstituedされている場合

はたとえば、:

I had, had bean, bean soup, soup last, last diner 

と:このエントリから

I had bean soup last diner. 

、次のバイグラム(2つのワードのセット)が生成されますトライグラム(3ワードのセット):

I had bean, had bean soup, bean soup last, soup last diner 

しかし、これらは統計的関連性のテストによって校正されますle:トライグラムがフレーズテーブルから消えると仮定できます。

I had bean 

フレーズテーブルが消えます。

今、スペルチェックは、この大きなフレーズテーブルだけが見えるようになり、「確率」をチェックします。 (このフレーズテーブルを効率的なデータ構造とRAMに格納するには、優れたインフラストラクチャが必要ですが、Googleはtranslate.google.comを持っていますが、なぜそうではありませんか?統計機械翻訳よりも簡単です。)

例:あなたは

I had been soup 

を入力し、フレーズテーブルに

had bean soup 

トライグラムはあなただけで入力したものよりもはるかに高い確率であります!確かに、より高い確率でトライグラムを持つためには、1つの単語(これは「それほど遠くない」トライグラム)を変更するだけです。トレードオフの距離/確率を扱う評価関数が存在するはずです。この距離は文字の点でも計算できます。私たちは機械翻訳ではなくスペルチェックをしています。

これは私の仮説的意見です。;)

1

あなたは、自然言語処理にダイビングして、すべてのこのようなトピックについて学ぶことができます。あなたは、与えられた言葉の文字列の後に次の単語が来るという統計的推測を行うのと同じように深く進むことができます。

このようなトピックに興味がある場合は、完全にPythonで書かれたNLTK(自然言語ツールキット)を使用することを強くお勧めします。それは非常に広範な作業であり、多くのツールとかなり良い文書を持っています。

1

この件については、多くの論文があります。ここではいくつかの良いリソース

これは、コンテキスト感度を使用しませんが、これはおそらく、より強力なスペルチェッカー http://acl.ldc.upenn.edu/acl2004/emnlp/pdf/Cucerzan.pdfの良いと理解しやすい図である http://norvig.com/spell-correct.html

から構築するために良いベースですです

ここから詳細を深く知ることができます。私はgoogle scholarを使用し、上記の論文の参考文献を検索し、スペルの訂正を検索することをお勧めします。

関連する問題