See also ebooksgratis.com: no banners, no cookies, totally FREE.

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
Privacy Policy Cookie Policy Terms and Conditions
スペルチェッカ - Wikipedia

スペルチェッカ

出典: フリー百科事典『ウィキペディア(Wikipedia)』

コンピューティングにおいて、スペルチェッカは、単語の綴り字を検証するために作られたソフトウェアプログラムである。スペルチェッカは誤って綴られた単語の訂正候補を提示することにより、ユーザが綴りを完全にすることを助ける。スペルチェッカは、文章のブロックに対する機能を持ったスタンドアロンのアプリケーションソフトウェアであり、ワードプロセッサメーラー電子辞書検索エンジンのような、より大きなアプリケーションの一つの機能でもある。

Eye have a spelling chequer,
It came with my Pea Sea.
It plane lee marks four my revue
Miss Steaks I can knot sea.

Eye strike the quays and type a word
And weight four it two say
Weather eye am write oar wrong
It tells me straight a weigh.

Eye ran this poem threw it,
Your shore real glad two no.
Its vary polished in it's weigh.
m My chequer tolled me sew.

A chequer is a bless thing,
It freeze yew lodes of thyme.
It helps me right all stiles of righting,
And aides me when eye rime.

Each frays come posed up on my screen
Eye trussed too bee a joule.
The chequer pours o'er every word
Two cheque sum spelling rule.

普通のスペルチェッカは、この詩のほとんどの誤りを検出しない。これはスペルチェッカが単語の綴りを調べるだけで、文章に意味があるかを調べないためである。

目次

[編集] 動作

単純なスペルチェッカは、語彙 (しばしば辞書と呼ばれる) に対して、入力されたそれぞれの単語を比較することにより、単語レベルで動作する。単語が語彙の範囲内で見つからない場合は誤りとして指摘し、ユーザがタイプしようとした単語を見つけるためのアルゴリズムが動作することもある。このアルゴリズムの単純なものは、タイプした文字からのレーベンシュタイン距離が小さい数個の単語を辞書から探す。

ユーザの文章の入力に応じてスペルチェッカが動作し、誤りが生じたとことユーザに知らせる(通常は、誤った文章に下線を引く)。スペルチェッカはユーザの要求でも動作し、文書や電子メール全体を一度にチェックすることもできる。一般的なワードプロセッサは、この両方の動作を提供する。

多くのスペルチェッカは、複数の言語で動作できる。スペルチェッカが対象言語の語彙に無い単語を、ユーザが意図的に入力することはよくある。例えば、固有名詞や頭字語(アクロニム)のようなものである。この問題を解決するために、ほとんどのスペルチェッカではユーザが個別の単語を語彙に追加することができる。

[編集] 設計

すでに概説したとおり、スペルチェッカは通常 2 つの部分で構成されている。

  1. 文章を調べ、単語を抽出する処理。
  2. 文章の中で見つかった単語を比較する対象の、単語の一覧。 (語彙、しばしば辞書と呼ばれる)

文章を調べる処理は、形態論を扱うため、言語に依存したアルゴリズムを含んでいる。英語のようなわずかな語形変化のある言語でさえ、単語の抽出処理は前置詞と冠詞の縮約所有の表現のような現象を取り扱う必要がある。形態素解析が重要な利点になるかどうかは明確でない。[1]

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

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

上記の方式に対する一つの例外は、単に N-gram のような統計情報だけを利用するスペルチェッカだが、決して受け入れられていない。スペルチェッカは場合によって固定された誤った綴りのリストと、誤りに対する修正語を使用する。この柔軟でない方式は、百科事典の "see also" 項目のようなものであり、紙ベースの訂正方法としてはしばしば使われる。

[編集] 歴史

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

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

近年では、スペルチェッカの機能はワープロから Firefox 2.0 のようなウェブブラウザに移った。数多くの 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% を認識することができる。[2]文脈依存のスペルチェッカは、将来の文書処理製品の中に現れるだろう。

[編集] 関連項目

  • k近傍法
  • Record linkage problem
  • Spelling suggestion
  • Grammar checker

[編集] 外部リンク


aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -