綴り検査プログラム

出典: フリー百科事典『ウィキペディア(Wikipedia)』
スペルチェッカから転送)
ナビゲーションに移動 検索に移動

綴り検査プログラム[1][2]: spell checker)は、コンピュータ上で書かれた文書に対して、各単語が正しく綴られているかを検証するソフトウェアである。基本的には表音文字を用いる言語に対して使われる。多くの綴り検査プログラムは、綴りの間違いを検出するだけでなく、綴りの訂正候補を利用者に提示する機能も持っている。綴り検査プログラムは、ワードプロセッサ電子メールクライアント電子辞書検索エンジンといった大きなアプリケーションにおいて機能の1つとして組込まれていることもあれば、単独のアプリケーションとして提供されているものもある。

動作[編集]

綴り検査プログラムは、文書中に存在する各単語を、自身に内蔵された辞書語彙とも)と比較することにより動作する。単語が辞書の内に見つからなければ利用者に誤りの可能性を指摘する。

誤りの可能性を指摘するだけでなく、多くの綴り検査プログラムでは、正しい綴りの候補を検索・提示するためのアルゴリズムも動作する。単純な算法では、綴りが似ている単語(技術的に言えば編集距離が小さい単語)を辞書から探し出して利用者に提示する。

綴り検査プログラムは、利用者からの要求に応じて文書や電子メールの全体を一括で検証することもできるし、ワードプロセッサテキストエディタの中には、文章の入力に応じて綴り検査プログラムが自動で動作して誤りの可能性を知らせるものもある(後者の場合は、利用者の作業を妨げないように、単語に下線を引くなどの方法で知らせるものが多い[3][4])。

多くの綴り検査プログラムは多言語環境で動作可能である。利用者が綴り検査プログラムに内蔵された語彙に無い単語を入力することはよくある。例えば、固有名詞(特に人名・企業名など)や頭字語のようなものである。この問題を解決するために、多くの綴り検査プログラムでは利用者が独自の単語を辞書に追加できるようにしている。

設計[編集]

綴り検査プログラムは大きく分けて以下の処理で構成されている。

  1. 文書から単語を抽出する処理
  2. 文書から見つかった単語を、正しい綴りの辞書と照しあわせる処理
  3. 正しい綴りの候補を検索する処理

単語を抽出する処理は、形態論を扱うため、言語に依存した算法を含んでいる。英語のように語形変化の小さい言語でさえ、単語の抽出処理は複数形所有の表現のような現象を取り扱う必要がある。ドイツ語ハンガリー語フィンランド語のように単語が連結される言語(総合的言語)では、形態素解析が役に立つ。

辞書は、単純な単語の羅列である場合もあれば、ハイフネーションの位置や語彙的・文法的属性などの付加的な情報を含んでいる場合もある。

これらの構成要素の付属物として、利用者にプログラムの操作で置き換えや修正を指示するための、ユーザインタフェイスがある。

上記の方式に対する一つの例外は、全文検索にも用いられるアルゴリズムであるN-gram英語版 のような統計情報だけを単に利用するスペルチェッカだが、一般には使われていない。綴り検査プログラムは、場合によって固定された誤った綴りのリストと、誤りに対する修正語を使用する。この柔軟でない方式は、紙ベースの訂正方法としてはしばしば使われる。

歴史[編集]

最初期の綴り検査プログラムは、1970年代汎用機で広く利用できた[5]。パソコン向けの最初の綴り検査プログラムは1980年に CP/M 向けで利用できるようになり、1981年に発表された IBM PC 向けのパッケージが続いた[6]。Maria Mariani, Soft-Art, Microlytics, Proximity, Circle Noetics, Reference Software のような開発会社が、主要な PC だけでなく Macintosh, VAX, UNIX 向けに、OEM パッケージやエンドユーザ向け製品を発売し、ソフトウェア市場を拡大した。PC では、これらの綴り検査プログラムは独立のプログラムであるが、多くは十分なメモリのある PC では、ワープロパッケージの中から常駐プログラムとして動作することができた。

しかし、1980年代の中頃に WordStarWordPerfect のような人気のあるワープロパッケージが綴り検査プログラムを取り込んだため、独立のパッケージは短命であった。ほとんどは前記の会社から許諾書を受けたものであり、英語から他のヨーロッパ言語、アジアの言語へと急速にサポート範囲を広げた。しかし、ハンガリー語フィンランド語のように、語形変化の激しい言語に関しては、ソフトウェアの形態学的処理をより洗練することが要求された。アイスランドのような国のワープロ市場の大きさは、綴り検査プログラムを実装するための投資に見合わないにもかかわらず、 WordPerfect のような会社は世界的マーケティング戦略の一部として、可能な限りの地域化に努めた[要出典]

近年では、スペルチェッカの機能はワープロから Firefoxのようなウェブブラウザに移った。数多くの Webメールブログソーシャル・ネットワーキング・サービスで文書を書く時には、ユーザが書いたコンテンツに対する綴り検査を行うことができる。ウェブブラウザの KonquerorOpera、電子メールクライアントの KMailインスタントメッセージクライアントPidgin もまた、GNU Aspell の機能を透過的に使用することによりスペルチェックの機能を持っている。

機能[編集]

最初の綴り検査プログラムは、「修正」ではなく「検証」だけを行った――すなわち誤った綴りに対して推奨語を提供しなかった。これは誤植に対しては役に立つが、論理的誤りや発音上の誤りにはあまり役に立たない。誤って綴られた単語に対して役に立つ推奨語を提案することの困難に対して、開発者は挑戦した。これは、単語を骨格の形式に変形し、パターンマッチングアルゴリズムを適用することを必要とする。

正しい単語が誤って強調される事がなくなるので、綴り検査の辞書に関して「大きいことはよいこと」 は論理的に思われるかも知れない。しかし、実際には英語に関しての最適な辞書のサイズは 90,000 語程度と見られる[要出典]。これより大きい辞書の場合、誤って綴られた単語が他の単語と誤って見逃されるかもしれない。例えば、言語学者はコーパス言語学に基づいて、単語 "baht" (バーツ)が、タイ王国の通貨単位への言及よりも、"bath" や "bat" の誤った綴りであることのほうが多いと断定するかもしれない。したがって、"bath" について議論する多くの人の綴りの誤りを見逃すよりも、タイ王国の通貨単位についての記述をするわずかな人に不便をかけるほうが、一般的には役に立つ。

最初の MS-DOS の綴り検査プログラムは、ワープロパッケージの検証モードで主に使用された。文書を準備が出来上がった後で、利用者は文書を走査して誤った綴りを探した。しかし、後にパッチ処理は短命なオラクルの CoAuthor のようなパッケージの中で提供された。これにより、ユーザが文書を処理し、間違っていると知っている単語だけを修正した結果を見ることができた。記憶容量と処理能力が豊富になり、Sector Software が1987年に製作した Spellbound や Word 95 以降の Microsoft Word のように、綴り検査はバックグラウンドで対話的に処理されるようになった。

近年、綴り検査プログラムはより洗練された。いくつかの綴り検査プログラムは簡単な文法の誤りを認識することができる。しかし、一番優れたものでも、(同音異義語の誤りのような)表現上の誤りをめったに捕らえることはなく、新語や外来語に誤った綴りの印をつける。

他の言語[要追加記述]での綴り検査プログラム[編集]

英語は、いくつかの専門用語と修飾語を除いて、公式な文書で使用される大部分の単語が通常の辞書に見つけることのできる点で、例外的な言語である。しかし多くの言語では、頻繁に単語を新しい方で組み合わせることが典型的である。ドイツ語では、しばしば複合名詞が既存の名詞から作り出される。いくつかの書法では、単語と別の単語を明確に区切らないので、単語を分割するアルゴリズムが必要となる。

文脈依存のスペルチェッカ[編集]

単語は、それ自身が周囲の単語の文脈に基づいた語彙に関わっているにもかかわらず、近年の研究は、綴りの誤った単語を認識する能力がある算法を開発することに注力していた。これは単語の誤りを捕らえるだけでなく、より多くの単語を認識させる辞書の拡大の有害な影響を軽減する。このようなシステムで捕らえられる最も一般的な誤りの例は、以下の分の太字の単語のような同音異字である。

Their coming too sea if its reel.

現在までに最も成功した算法は、 Andrew Golding と Dan Roth が 1999年 に発表した "winnow-based spelling correction algorithm" であり、普通の単語でない誤りに加えて、文脈依存の綴りの誤りの 96% を認識することができる[7]

脚注[編集]

  1. ^ J. L. ベントリー「第3部」『プログラム設計の着想』野下 浩平(訳)、近代科学社、1989年9月。ISBN 978-4-7649-0158-2
  2. ^ 川合 慧「英文綴り検査法」『情報処理』第24巻第4号、1983年4月15日、2019年8月22日閲覧。
  3. ^ スペルチェック機能を使うには”. Firefoxヘルプ. Mozilla. 2019年8月22日閲覧。
  4. ^ WikiSysop (2016年6月18日). “スペルと文法”. LibreOfficeヘルプ. LibreOffice. 2019年8月22日閲覧。
  5. ^ Peterson, James (Dec 1980). Computer Programs for Detecting and Correcting Spelling Errors. http://simson.net/ref/2006/csci_e-180/ref/spelling-p676-peterson.pdf 2019年8月22日閲覧。. 
  6. ^ Georgetown U Faculty & Staff: The Center for Language, Education & Development”. 2009年2月5日時点のオリジナルよりアーカイブ。2008年12月18日閲覧。, 出典: "Maria Mariani... was one of a group of six linguists from Georgetown University who developed the first spell-check system for the IBM corporation."
  7. ^ Andrew R. Golding and Dan Roth and J. Mooney and Claire Cardie (1999). “A winnow-based approach to context-sensitive spelling correction”. Machine Learning: 107-130. http://citeseer.ist.psu.edu/116990.html 2008年11月28日閲覧。. 

関連項目[編集]

外部リンク[編集]