スペルチェッカー

フリー百科事典ウィキペディアより
ナビゲーションにジャンプ 検索にジャンプ

ソフトウェアではスペル チェッカー(またはスペル チェッカーまたはスペル チェック) は、テキスト内のスペル ミスをチェックするソフトウェア機能です。多くの場合、スペル チェック機能は、ワープロ電子メール クライアント、電子辞書検索エンジンなどのソフトウェアまたはサービスに組み込まれています

目はスペルチェッカーを持っています、
それは私のエンドウ豆の海と一緒に来ました.
それは飛行機リー マーク 4 私のレヴュー
ミス ステーキ私は海を結ぶことができます。

波止場を目で打って、うなりをタイプして、
重さは 4 で 2 と言います
ウェザーアイはオールを間違っ
て書いています。

目が走ったこの詩はそれを投げました、
あなたの海岸は本当にうれしいです。
その重さはさまざまです。
私のチェッカーは私に縫うように言いました。

チェッカーは祝福です、
タイムのイチイの塊を凍らせます。
それは私が立ち直るすべてのスタイルを正しくするのを助け
、目が凍るときに私を助けます。

それぞれのほつれが私の画面に現れてきます
目のトラスもジュールです。
チェッカーはすべての単語を注ぐ
2 つのチェックサム スペル ルール。

この詩の元のバージョンは、1992 年に Jerrold H. Zar によって書かれました。単純なスペル チェッカーは、単語を個別にチェックするため、この詩の誤りをほとんどまたはまったく検出しません。より洗練されたスペル チェッカーは、言語モデルを利用して、単語が発生するコンテキストを考慮します。
上記の詩の動作中のGoogle Chromeスペル チェッカー、「chequer」という単語が認識されない単語としてマークされている

デザイン

基本的なスペル チェッカーは、次のプロセスを実行します。

  • テキストをスキャンし、そこに含まれる単語を抽出します。
  • 次に、各単語を正しいスペルの単語の既知のリスト (つまり、辞書) と比較します。これには、単語のリストだけが含まれる場合もあれば、ハイフネーション ポイントや語彙的および文法的属性などの追加情報が含まれる場合もあります。
  • 追加のステップは、形態を処理するための言語依存のアルゴリズムです。英語のように屈折が少ない言語であっても、スペル チェッカーは、複数形、動詞形、短縮形、所有格など、同じ単語のさまざまな形を考慮する必要があります。凝集やより複雑な語形変化や活用を特徴とする言語など、他の多くの言語では、プロセスのこの部分はより複雑になります。

ドイツ語、ハンガリー語、トルコ語など の高度に合成された言語に対する利点は明らかですが、形態素解析 (文法上の役割に応じて単語の多くの形式を許可する) が英語に大きな利益をもたらすかどうかは不明です。

これらのコンポーネントの補助として、プログラムのユーザー インターフェイスを使用すると、ユーザーは置換を承認または拒否したり、プログラムの操作を変更したりできます。

スペル チェッカーは、レーベンシュタイン距離などの近似文字列マッチングアルゴリズムを使用して、スペル ミスのある単語の正しいスペルを検出できます。[1]別のタイプのスペル チェッカーでは、 n-gramなどの統計情報のみを使用して、正しいスペルの単語ではなくエラーを認識します。通常、このアプローチでは、十分な統計情報を取得するために多大な労力が必要です。主な利点には、必要なランタイム ストレージが少なくて済むことと、辞書に含まれていない単語のエラーを修正できることが含まれます。[2]

場合によっては、スペル チェッカーは、スペル ミスの固定リストとそれらのスペル ミスに対する提案を使用します。この柔軟性の低いアプローチは、百科事典のエントリ も参照するなど、紙ベースの修正方法でよく使用されます。

クラスタリング アルゴリズムは、音声情報と組み合わせてスペル チェック[3]にも使用されています。[4]

歴史

PC前

1961 年、この新進技術の研究を率いたLes Earnestは、受け入れ可能な 10,000 語のリストにアクセスする最初のスペル チェッカーを含める必要があると考えました。[5]当時 Earnest の大学院生だった Ralph Gorin は、一般的な英語のテキストの (研究ではなく) アプリケーション プログラムとして書かれた最初の真のスペル チェック プログラムを作成しました: SPELL for the DEC PDP-10 at Stanford University's Artificial Intelligence Laboratory [6] Gorin はアセンブリ言語で SPELL を書きました。、より迅速なアクションのために。彼は、1 文字または隣接する文字の転置が異なるもっともらしい正しいスペルを単語リストから検索し、それらをユーザーに提示することによって、最初のスペル修正プログラムを作成しました。Gorin は、ほとんどの SAIL (Stanford Artificial Intelligence Laboratory) プログラムで行われたように、SPELL を一般に公開し、パーソナル コンピュータが一般的に使用される約 10 年前に、新しい ARPAnet を介してすぐに世界中に広まりました。[7] SPELL、そのアルゴリズムおよびデータ構造は、Unix のispellプログラムに影響を与えました。

最初のスペル チェッカーは、1970 年代後半にメインフレーム コンピューターで広く利用できるようになりました。ジョージタウン大学の 6 人の言語学者のグループが、IBM 社向けに最初のスペル チェック システムを開発しました。[8]

Henry Kučeraは、1981 年に Digital Equipment Corp の VAX マシン用に 1 つを発明しました。 [9]

PC

パーソナル コンピュータ用の最初のスペル チェッカーは 1980 年に登場しました。コモドール システム用の「WordCheck」は、1981 年 1 月に広告が印刷されるのに間に合うように 1980 年後半にリリースされました。[10] Maria Mariani [8]Randomなどの開発者House [11]、急速に拡大するソフトウェア市場にOEMパッケージまたはエンドユーザー製品を投入しました。Windows より前の PC では、これらのスペル チェッカーはスタンドアロン プログラムであり、その多くは、十分なメモリを備えた PC 上のワープロ パッケージ内から TSRモードで実行できました。

ただし、スタンドアロン パッケージの市場は短命でした。1980 年代半ばまでに、WordStarWordPerfectなどの人気のあるワード プロセッシング パッケージの開発者がパッケージにスペル チェッカーを組み込み、ほとんどが上記の会社からライセンスを取得し、サポートを急速に拡大しました。英語から多くのヨーロッパ言語、そして最終的にはアジア言語まで。ただし、これには、特にハンガリー語フィンランド語などの非常に膠着的な言語に関して、ソフトウェアの形態学ルーチンの洗練度を高める必要がありましたアイスランドのような国のワープロ市場の規模はスペル チェッカーを実装する投資を正当化できなかったかもしれませんが、それでも WordPerfect のような企業は、グローバルマーケティング戦略 の一環として、できるだけ多くの国内市場向けにソフトウェアをローカライズしようと努力しました。

Apple が Mac OS X 用の「システム全体のスペル チェック」を開発したとき、「オペレーティング システムがスペル修正を引き継ぐ」ようになりました[12]。プログラム。[13] Mac OS Xのスペルチェックの対象範囲には、事実上すべての同梱アプリケーションとサードパーティ アプリケーションが含まれます。

1994 年に導入されたVisual Tools の VT Spellerは、「Windows をサポートするアプリケーションの開発者向けに設計された」ものでした。[14] [15]辞書が付属していましたが、二次辞書を作成して使用する機能がありました。[16]

ブラウザ

Web ブラウザーであるFirefox 2.0 は、 Wiki テキストの編集、多くのWeb メールサイト、ブログソーシャル ネットワーキングWeb サイトへの書き込みなど、ユーザーが作成したコンテンツのスペル チェックをサポートしています[17]Web ブラウザーのGoogle ChromeKonqueror、およびOpera、電子メール クライアントのKmailおよびインスタント メッセージングクライアントのPidginもスペル チェックのサポートを提供し、以前はGNU Aspellを、現在はHunspellをエンジンとして透過的に使用しています。

特産品

一部のスペル チェッカーは、医療エラーを防ぐために、医学辞書を個別にサポートしています。[18] [19] [20]

機能性

最初のスペル チェッカーは、「修正者」ではなく「検証者」でした。スペルが間違っている単語については、何の提案もありませんでした。これはタイプミスには役立ちましたが、論理的または音声的なエラーにはあまり役に立ちませんでした。開発者が直面した課題は、スペルミスのある単語に対して有用な提案を提供することの難しさでした。これには、単語を骨組みに縮小し、パターン マッチング アルゴリズムを適用する必要があります。

スペルチェック辞書に関しては、正しい単語が間違っているとマークされないように、「大きいほど良い」というのは論理的に思えるかもしれません。ただし、実際には、英語の最適なサイズは約 90,000 エントリのようです。これ以上ある場合、スペルが間違っている単語は他の単語と間違えられるため、スキップされる場合があります。たとえば、言語学者は、コーパス言語学に基づいて、 bahtという単語は、タイの通貨への言及よりも、bathまたはbatのスペルミスであることが多いと判断する場合があります。したがって、通常、タイの通貨について書いている少数の人々が少し不便を感じている方が、バスについて議論している多くの人々のスペルミスが見過ごされている場合よりも有用です.

AbiWordのスペル チェッカーであるEnchantのスクリーンショット。

最初の MS-DOS スペル チェッカーは、主にワープロ パッケージ内の校正モードで使用されていました。ドキュメントを準備した後、ユーザーはテキストをスキャンしてスペルミスを探しました。しかしその後、Oracleの短命の CoAuthor などのパッケージでバッチ処理が提供され、ドキュメントが処理された後にユーザーが結果を表示し、間違っていることがわかっている単語だけを修正できるようになりました。メモリと処理能力が豊富になると、1987 年にリリースされた Sector Software 製の Spellbound プログラムや、Word 95 以降 のMicrosoft Wordのように、スペル チェックがバックグラウンドでインタラクティブな方法で実行されました。

近年、スペルチェッカーはますます洗練されてきました。単純な文法エラーを認識できるようになった人もいます。ただし、最高の状態であっても、テキスト内のすべてのエラー (同音異義語のエラーなど) を検出することはめったになく、新語や外国語にスペルミスとしてフラグを立てます。それにもかかわらず、スペルチェッカーは、母国語以外の学習者がターゲット言語でのスペルミスを検出して修正するために頼ることができる一種の外国語ライティング支援と見なすことができます. [21]

英語以外の言語のスペルチェック

英語は、いくつかの専門用語や修飾語を除いて、正式な文章で使用されるほとんどの単語が、一般的な辞書で見つけることができる単一のスペルを持っているという点で珍しい. 多くの言語では、単語が新しい単語の組み合わせに連結されることがよくあります。ドイツ語では、複合名詞は他の既存の名詞から造語されることがよくあります。一部のスクリプトでは、単語を別の単語から明確に分離できず、単語分割アルゴリズムが必要になります。これらのそれぞれは、英語以外の言語のスペル チェッカーに固有の課題を提示します。

文脈依存のスペルチェッカー

単語自体が語彙に含まれていても、周囲の単語の文脈に基づいて、スペルミスの単語を認識できるアルゴリズムを開発する研究が行われています。これにより、上の詩のような単語をキャッチできるようになるだけでなく、辞書を拡大することによる悪影響が軽減され、より多くの単語を認識できるようになります。たとえば、ThaiまたはThailandと同じ段落のbahtは、 bathのスペルミスとして認識されませんこのようなシステムによって検出されるエラーの最も一般的な例は、次の文の太字の単語などの 同音異義語のエラーです。

そのリールならます

これまでで最も成功したアルゴリズムは、1999 年に公開された Andrew Golding と Dan Roth の「Winnowベースのスペル修正アルゴリズム」[22]で、通常の非単語に加えて、文脈依存のスペル エラーの約 96% を認識することができます。スペルミス。コンテキスト依存のスペル チェッカーは、Microsoft Office 2007 [23]に登場し、現在は廃止されたGoogle Waveにも登場しました。[24]

文法チェッカーは、間違った単語の選択など、スペルミス以外の文法の問題を修正しようとします。

も参照

参考文献

  1. ^ Perner、ペトラ (2010-07-05). データ マイニングの進歩: アプリケーションと理論的側面: 第 10 回産業会議、ICDM 2010、ベルリン、ドイツ、2010 年 7 月 12 ~ 14 日スプリンガー サイエンス & ビジネス メディア。ISBN 978-3-642-14399-1.
  2. ^ 米国特許第 6618697 号、綴りと文法の誤りを規則に基づいて修正する方法
  3. ^ デ・アモリム、RC; Zampieri, M. (2013)クラスタリング アルゴリズムを使用した効果的なスペル チェック方法。 Wayback Machine Proceedings of Recent Advances in Natural Language Processing (RANLP2013) で 2017 年17ヒサール、ブルガリア。p。172-178。
  4. ^ ザンピエリ、M.; de Amorim, RC (2014)サウンドとスペリングの間: 音声学とクラスタリング アルゴリズムを組み合わせてターゲット ワードの回復を改善します。自然言語処理に関する第 9 回国際会議 (PolTAL) の議事録。コンピュータ サイエンス (LNCS) の講義ノート。スプリンガー。p。438-449。
  5. ^ さすがレス。「最初の 3 つのスペル チェック」(PDF) . スタンフォード大学。2012 年 10 月 22 日にオリジナル(PDF)からアーカイブされました2011年10 月 10 日閲覧
  6. ^ ピーターソン、ジェームズ (1980 年 12 月). スペル ミスを検出および修正するためのコンピュータ プログラム(PDF) 2011 年2 月18 日閲覧
  7. ^ さすがレス。Y3K の目に見える遺産(PDF)2011-07-20に元の(PDF)からアーカイブされました2011 年2 月18 日閲覧
  8. ^ a b "ジョージタウン大学の教員とスタッフ: 言語、教育、開発センター" . 2009-02-05のオリジナルからのアーカイブ2008 年12 月 18 日閲覧, 引用: 「マリア マリアーニは、ジョージタウン大学の 6 人の言語学者グループの 1 人で、IBM のために最初のスペル チェック システムを開発しました。」
  9. ^ シャーロット・ブルース、ハーヴェイ (2010 年 5 月から 6 月)。"Teaching Computers to Spell (Henry Kučera の死亡記事)" . ブラウン同窓会誌p。79.
  10. ^ 広告 (1981 年 1 月)。"Micro Computer Industries, Ltd" (PDF) . 計算してください!マガジン、第8号、Vol。3、No.1p。119。
  11. ^ 広告 (1982 年 11 月)。「スペリング・ビーは終わった」 . PCマガジンp。165 . 2013年 10 月 21 日閲覧
  12. ^ デビッド・ポーグ (2009). Mac OS X Snow Leopard: The Missing Manual .
  13. ^ デビッド・ポーグ (2015). Mac への移行: The Missing Manual .
  14. ^ "VisualTools VT-Speller". コンピューターワールド1994 年 2 月 21 日。68.
  15. ^ 「1993 年 9 月 27 日参照」 . VTスペラー
  16. ^ ピーター G. エイトケン (1994 年 11 月 8 日)。「アプリのスペルチェック」. PCマガジンp。299。
  17. ^ "メールのスペルミスをチェック | Workspace メール - GoDaddy Help US" . www.godaddy.com
  18. ^ "Firefox および Thunderbird 用の医療用スペル チェッカー" . e-MedTools。2017. 2019-05-04のオリジナルからのアーカイブ2018 年8 月 29 日閲覧
  19. ^ クアサマー、トバイアス博士 (2016). 「ドイツ医学辞典の言葉」 . トバイアス・クアサマー博士2018 年8 月 29 日閲覧
  20. ^ フリードマン、リチャード A.; D、M(2003)。「ケース; スペリングとペンマンシップはカウントされますか? 医学では、あなたは賭けます」 . ニューヨークタイムズ2018 年8 月 29 日閲覧
  21. ^ バンクス、T. (2008). 外国語学習の難しさと教育戦略(pp. 29)。修士論文、カリフォルニア州ドミニカン大学。2012 年 3 月 19 日閲覧。
  22. ^ ゴールディング、アンドリュー R.; ロス、ダン(1999)。「ジャーナル記事」 . 機械学習スプリンガーリンク。34 : 107–130. ドイ: 10.1023/A:1007545901558 .
  23. ^ ウォルト・モスバーグ (2007 年 1 月 4 日). 「レビュー」 . ウォールストリートジャーナル2010年9月24日閲覧
  24. ^ "Google オペレーティング システム" . googlesystem.blogspot.com. 2009 年 5 月 29 日2010年9月25日閲覧 「Google の状況依存型スペル チェッカー」 . 2009 年 5 月 29 日2010年9月25日閲覧

外部リンク