スペルチェッカー

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

スペルチェッカーが付いています。
それはエンドウ豆の海に付属していました。
それは、リーが 4 つの私のレヴュー、
ミス・ステーキ、私が海を結ぶことができることをマークします。

目は岸壁を打ち、
「重さ4」とタイプすると、2つ言う。
天気の目はオールを書くのが間違っている
。それは重さを直接教えてくれる。

目が走ってこの詩が投げられた、
あなたの岸は本当にうれしい2つではありません。
その重さはさまざまです。
私のチェッカーは私に縫い物を言いました。

チェッカーはありがたいものです、
イチイのタイムの塊を凍らせます。
それは私が立ち直るあらゆるスタイルを正すのを助け、
そして目が腫れたときに私を助けます。

それぞれのほころびが私のスクリーンに現れ、
目が揺れすぎた。
チェッカーはあらゆる言葉を注ぐ
2 つのチェックサムのスペル ルール。

この詩のオリジナル版は、1992 年にジェロルド H. ザーによって書かれました。単語を個別にチェックするため、洗練されていないスペル チェッカーであれば、この詩の欠点をほとんど、またはまったく見つけることができません。より洗練されたスペル チェッカーは、言語モデルを利用して、単語が出現するコンテキストを考慮します。
上記の詩に対してGoogle Chrome のスペル チェッカーが動作中、「チェッカー」という単語が認識できない単語としてマークされている

デザイン

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

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

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

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

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

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

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

歴史

PC以前

1961 年、この新進気鋭のテクノロジーの研究を率いていたLes Earnest は、許容可能な 10,000 語のリストにアクセスする最初のスペル チェッカーを含める必要があると考えました。[5]当時、アーネストの下で大学院生だったラルフ ゴーリンは、スタンフォード大学の人工知能研究所で、一般英語テキストの (研究ではなく) アプリケーション プログラムとして書かれた最初の真のスペル チェッカー プログラム、SPELL for the DEC PDP-10 を作成しました。[6] Gorin はアセンブリ言語 で SPELL を書きました、より迅速なアクションを実現します。彼は、単一の文字または隣接する文字の転置によって異なる、もっともらしい正しいスペルを単語リストから検索し、それをユーザーに提示することによって、最初のスペル修正プログラムを作成しました。Gorin は、ほとんどの SAIL (スタンフォード人工知能研究所) プログラムと同様に、SPELL を公的にアクセスできるようにし、パーソナル コンピューターが一般に使用される約 10 年前に、新しい ARPAnet を通じてすぐに世界中に広がりました。[7] SPELL、そのアルゴリズムとデータ構造は、Unix ispellプログラムに影響を与えました。

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

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

ユニックス

Unix で一般的に使用されるInternational Ispellプログラムは、RE Gorin の SPELL に基づいています。MIT の Pace Willisson によって C に変換されました。[10]

GNU プロジェクトには、スペル チェッカーGNU Aspellがあります。Aspell の主な改善点は、スペルが間違っている英単語に対して、より正確に正しい代替案を提案できるようになった点です。[11]

従来のスペル チェッカーでは複雑な語形変化のある言語の単語をチェックできないため、ハンガリー人の László Németh は、膠着語と複雑な複合語をサポートするスペル チェッカーHunspellを開発しました。Hunspell は辞書でも Unicode を使用しています。[12] Hunspell は、バージョン 2.0.2 でOpenOffice.orgの以前のMySpellを置き換えました。

Enchant は、 AbiWordから派生した、もう 1 つの一般的なスペル チェッカーですその目標は、Aspell、Hunspell、Nuspell、Hspell (ヘブライ語)、Voikko (フィンランド語)、Zemberek (トルコ語)、AppleSpell などのさまざまな言語をサポートするプログラムを 1 つのインターフェイスで結合することです。[13]

パソコン

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

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

Apple が Mac OS X 用に「システム全体のスペル チェッカー」を開発し、「オペレーティング システムがスペル修正を引き継ぐ」ようにしたとき[16]、これは初めてのことでした。「それぞれに個別のスペル チェッカーを維持する必要がなかった」のです。プログラム。[17] Mac OS Xのスペルチェックの対象範囲には、事実上すべてのバンドル アプリケーションとサードパーティ アプリケーションが含まれます。

1994 年に導入されたVisual Tools の VT Speller は、「Windows をサポートするアプリケーションの開発者向けに設計」されました。[18] [19]辞書が付属していましたが、二次辞書を構築して使用を組み込む機能がありました。[20]

ブラウザ

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

特産品

一部のスペル チェッカーは、医療ミスを防止するために、医療辞書を個別にサポートしています。[22] [23] [24]

機能性

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

スペルチェック辞書に関しては、正しい単語が間違った単語としてマークされないように、「大きいほど良い」というのは論理的に思えるかもしれません。ただし、実際には、英語の最適なサイズは約 90,000 エントリであると思われます。これを超えると、スペルが間違っている単語は他の単語と間違われてスキップされる可能性があります。たとえば、言語学者は、コーパス言語学に基づいて、「バーツ」という単語は、タイの通貨を指すものよりも、バスまたはバットのスペルミスであることが多いと判断する場合があります。したがって、一般的に、お風呂について議論する多数の人々のスペルミスが見逃されるよりも、タイの通貨について書く少数の人が少しでも不便になる方が有益です。

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

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

スペル チェッカーはますます洗練されました。文法上の誤りを認識できるようになりましたただし、最高の状態であっても、テキスト内のすべてのエラー (同音異義語のエラーなど) を検出することはほとんどなく、新造語や外来語にスペルミスとしてフラグを立てます。それにもかかわらず、スペル チェッカーは、非母語学習者がターゲット言語でのスペルミスを検出して修正するために利用できる、一種の外国語ライティング支援ツールと考えることができます。[25]

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

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

コンテキスト依存のスペルチェッカー

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

リールがあれにも ます

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

文法チェッカーは、単語の選択の誤りなど、スペルミス以外にも文法に関する問題を修正しようとします。

こちらも参照

参考文献

  1. ^ ペルナー、ペトラ (2010-07-05)。データ マイニングの進歩: アプリケーションと理論的側面: 第 10 回産業会議、ICDM 2010、ベルリン、ドイツ、2010 年 7 月 12 ~ 14 日。議事録。シュプリンガーのサイエンス&ビジネスメディア。ISBN 978-3-642-14399-1
  2. ^ 米国特許 6618697、スペルおよび文法エラーをルールに基づいて修正する方法
  3. ^ デ・アモリム、RC; Zampieri, M. (2013) クラスタリング アルゴリズムを使用した効果的なスペル チェック方法。2017 年 8 月 17 日、 Wayback Machine Proceedings of Recent Advances in Natural Language Processing (RANLP2013)にアーカイブされましたヒサール、ブルガリア。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 年 7 月 20 日にオリジナル(PDF)からアーカイブされました2011 年 2 月 18 日に取得
  8. ^ ab "ジョージタウン大学の教職員: 言語、教育、開発センター". 2009 年 2 月 5 日にオリジナルからアーカイブされました2008 年 12 月 18 日に取得、引用: 「マリア・マリアーニは...IBM 社のために最初のスペルチェック・システムを開発したジョージタウン大学の 6 人の言語学者グループの 1 人でした。」
  9. ^ シャーロット・ブルース、ハーヴェイ (2010 年 5 月 - 6 月). 「コンピュータに綴りを教える(ヘンリー・クチェラの訃報)」。ブラウン同窓会雑誌p. 79.
  10. ^ 「インターナショナル・イズペル」. www.cs.hmc.edu 2023-02-19に取得
  11. ^ 「GNU Aspell」. aspell.net 2023-02-19に取得
  12. ^ “ハンスペル: について”. hunspell.github.io 2023-02-19に取得
  13. ^ AbiWord/enchant、AbiWord、2023-02-13、2023-02-19取得
  14. ^ 広告(1981年1月)。「マイクロコンピュータ工業株式会社」(PDF)計算してください!マガジン、第 8 号、Vol. 3、その1p. 119.
  15. ^ 広告(1982年11月)。「スペリング・ビーは終わった」。PC マガジンp. 165 . 2013 年10 月 21 日に取得
  16. ^ デビッド・ポーグ (2009)。Mac OS X Snow Leopard: 見つからないマニュアル
  17. ^ デビッド・ポーグ (2015). Mac への切り替え: 見つからないマニュアル。
  18. ^ “VisualTools VT-Speller”. コンピューターワールド1994 年 2 月 21 日。p. 68.
  19. ^ “1993 年 9 月 27 日閲覧”. VT-スペラー
  20. ^ ピーター G. エイトケン (1994 年 11 月 8 日)。「アプリのスペルチェック」。PC マガジンp. 299.
  21. ^ "メールのスペルミスがないか確認してください | ワークスペースメール - GoDaddy ヘルプ JP". www.godaddy.com
  22. ^ "Firefox および Thunderbird 用の医療スペル チェッカー". e-MedTools。2017. 2019年5月4日のオリジナルからアーカイブ2018年8月29日に取得
  23. ^ クアタマー、トビアス博士 (2016)。「ドイツ医学辞典の単語」。トビアス・クォタマー博士2018年8月29日に取得
  24. ^ フリードマン、リチャード A. D、M (2003)。「症例; スペルと習字は重要ですか? 医学では、間違いありません」。ニューヨークタイムズ紙2018年8月29日に取得
  25. ^ バンクス、T. (2008)。外国語学習の難しさと指導戦略。(29ページ)。修士論文、カリフォルニア大学ドミニカン大学。2012 年 3 月 19 日に取得。
  26. ^ ゴールディング、アンドリュー R.; ロス、ダン (1999)。"雑誌の記事"。機械学習スプリンガーリンク。34:107-130。土井10.1023/A:1007545901558
  27. ^ ウォルト・モスバーグ (2007 年 1 月 4 日)。"レビュー"。ウォールストリートジャーナル2010 年9 月 24 日に取得
  28. ^ 「Google オペレーティング システム」。googlesystem.blogspot.com。2009 年 5 月 29 日2010 年9 月 25 日に取得 「Google の状況依存スペル チェッカー」。2009 年 5 月 29 日2010 年9 月 25 日に取得

外部リンク

  • Curlieのスペルチェッカーのリスト
  • Norvig.com、「スペル修正ツールの書き方」、Peter Norvig著
  • BBK.ac.uk、「コンピューターによるスペルチェック」、ロジャー・ミットン著
  • CBSNews.com、スペルチェックのクラッチが正確性を低下させる、Lloyd de Vries著
  • マーク・エックマンとジェロルド・H・ザール著「プーレット・サプライズの候補者」の歴史と本文