غلط‌یاب

بندانگشتی|بخشی از صفحه "Correcteur (informatique)" نمایش داده‌شده در مرورگر فایرفاکس، که در آن دو خطا ایجاد شده و با خط قرمز مشخص شده‌اند. بر روی یکی از این خطاها، پنجره‌ی زمینه‌ای با پیشنهادهای اصلاح نمایش داده شده است.
**غلط‌یاب** یا **اسپل چکر**  در جهان واژه‌پردازی رایانه‌ای، برنامه‌ای کاربردی است که کلمات یک متن را که دارای غلط املایی است، تشخیص می‌دهد. غلط‌یاب‌ها می‌توانند به تنهایی روی بلوکی از یک متن یا به عنوان بخشی از یک برنامه بزرگ‌تر، مانند واژه‌پرداز، نرم‌افزار ایمیل، لغت‌نامهٔ الکترونیک یا موتور جستجو به کار روند.

## عمل‌کرد
غلط‌یاب‌های ساده، کلمات خارج از متن را، جدا‌گانه در محتویات یک لغتنامه، یکی یکی مقایسه می‌کنند.در غلط‌یابی یک کلمه، اگر کلمه‌ای یافت نشد خطا به وجود می‌آید و در صورت تکرار دستور، نرم‌افزار نزدیکترین کلمهٔ موجود را به عنوان جواب ترجمه می‌کند، برای این کار الگوریتم‌های زیادی پیشنهاد شده که یکی از آن‌ها کلمات موجود در لغت‌نامه را که فاصله لون‌اشتاین کوچکی از کلمهٔ اصلی دارند لیست می‌کند.
در اغلب نرم‌افزارهای غلط‌یاب گزینه‌ای تعبیه شده که در صورت عدم وجود کلمه در لغت‌نامه، آن را (به استثنای موارد فلگ شده)به لیست کلمات شناخته شده اضافه می‌کند. روش‌های جدیدتر برای غلط یابی اما ممکن است از الگوریتم‌های پیچیده تری همچون یادگیری ماشین استفاده نمایند. به عنوان مثال این روش‌ها می‌توانند الگوی خطای یک کاربر را شناخته و خود را با آن تطبیق دهند.

## طراحی
غلط‌یاب به‌طور عادی از دو قسمت تشکیل شده:
# مجموعه‌ای از اعمال که متن را پیمایش و کلمات را استخراج می‌کنند.
# الگوریتمی برای مقایسهٔ کلمات استخراج شده از متن با لیستی از کلمات که دارای هجای صحیح هستند(مثلاً: کلمات یک لغت‌نامه)

اعمال پیمایشی گاهی اوقات شامل الگوریتم‌های مستقل از زبان برای بررسی ریخت‌شناسی کلمات می‌شوند. اعمال استخراج کلمه، حتی برای زبانی مثل انگلیسی که گرامر آسانی دارد، به مواردی همچون اختصار و حالت مضاف احتیاج پیدا خواهند کرد. البته مشخص نیست که تحلیل (کاوش کلمات) مبتنی بر ریخت‌شناسی (مورفولوژی) تأثیر قابل توجهی داشته باشد.

لیست کلمات می‌تواند لیستی از کلمات ساده باشد یا اطلاعات اضافه‌تری مثل خط تیره‌گذاری، نشانه‌های لغوی و گرامری را نیز شامل شود. واسط کاربری برنامه، به عنوان قسمت الحاقی به این دو جز، به کاربران این امکان را می‌دهد که جابه‌جایی‌ها را آزمایش (موافقت) و عملیات برنامه را اصلاح کنند. البته استثنائی در مورد مثال بالا وجود دارد برنامه‌های غلط‌یابی که تنها از اطلاعات آماری استفاده می‌کنند: مثلاً استفاده از[//en.wikipedia.org/wiki/N-gram N-gram] این روش معمولاً هم تلاش زیادی برای دسترسی به اطلاعات آماری مورد نیاز می‌طلبد و هم‌زمان ذخیره‌سازی اطلاعات در آن بیش‌تر است به همین دلیل این روش‌ها عموماً کاربرد ندارند. در بعضی موارد برنامه‌های غلط‌یاب از لیست ثابتی از غلط‌های املایی و پیشنهادهایی برای اصلاحشان استفاده می‌کنند. این شیوه نسبت به شیوه‌های قبلی انعطاف کم‌تری دارد و اغلب در روش‌های اصلاح مبتنی بر کاغذ استفاده می‌شود مثل مدخل‌ها در لغت‌نامه‌ها

## تاریخچه
اولین غلط‌یابها به صورت گسترده در اواخر دههٔ ۷۰ روی کامپیوترهای مرکزی استفاده شدند.چند سال بعد گروهی متشکل از ۶ زبان‌شناس از دانشگاه جورج تون سیستم غلط‌یابی برای آی‌بی‌ام طراحی کردند که از آن در ساخت پکیج‌های [//en.wikipedia.org/wiki/IBM_PC IBM PC] محصول سال ۱۹۸۱ استفاده کرد.
غلط یاب‌ها برای اولین بار در کامپیوترهای شخصی [//en.wikipedia.org/wiki/CP/M CP/M] و 
[//en.wikipedia.org/wiki/TRS-80 TRS-80] در سال ۱۹۸۰ و یک سال بعد در ۱۹۸۱ در همهٔ پکیج‌های سری IBM PC مورد استفاده قرار گرفتند.توسعه دهندگان دیگر نیز هم‌زمان با توسعهٔ سریع بازار نرم‌افزار به سمت تولید پکیجهای [//en.wikipedia.org/w/index.php?title=Special:Search&search=OEM&fulltext=Search OEM] و محصولات 
[//en.wikipedia.org/wiki/End-user_(computer_science) end-user]برای استفاده در رایانه‌های شخصی، مکینتاش، [//en.wikipedia.org/wiki/VAX VAX] و UNIX هجوم بردند.این غلط‌یابها روی کامپیوترهای شخصی مستقلاً به عنوان یک برنامه عمل میکردند، در صورت وجود حافظهٔ کافی بعضی حتی میتوانستند در حالت [//en.wikipedia.org/wiki/Terminate_and_Stay_Resident TSR] واژه پرداز به صورت مستقل کار کنند.
با وجود این پکیج‌های غلط‌یاب تنها مدت کمی مورد استقبال قرار گرفت، در اواسط دههٔ ۱۹۸۰ توسعه دهندگان بزرگ بسته‌های نرم‌افزاری واژه پرداز، مثل Word Star وWord Perfect غلط یابها را به صورت رسمی در پکیج‌های محصولاتشان ثبت کردند و در عرض مدت کوتاهی آن را از انگلیسی به زبان‌های اروپایی و حتی آسیایی نیز گسترش دادند، علی‌رغم توسعه‌های مزبور، محصول جدید هنوز در قسمت‌های ریخت‌شناسی و ریشه شناسی، ناقص بودو این نقص مخصوصاً در زبانهایی مثل بلغاری و فنلاندی که مملو از ترکیب ریشه‌ها است، دوچندان ایجاد مشکل میکرد. هرچند که نتیجهٔ سرمایه‌گذاری برای عرضهٔ واژه پردازهای شامل غلط‌یاب، دربازار کشوری مثل ایسلند توجیه اقتصادی نداشت با این حال کمپانی‌هایی مثل : word perfect در راستای استراتژی جهانی‌سازی محصولاتشان، به تلاش خود ادامه میدادند تا بازار کشورهای بیشتری را به تسخیر درآورند.
به تازگی، استفاده از غلط یابها به جز واژه پرداز ها، به دنیای مرورگرهای وب نیز راهٔ یافته، از آن جمله می‌توان به 
[//en.wikipedia.org/wiki/Mozilla_Firefox_2 Firefox2.0 ] اشاره کرد که به کاربر این امکان را می‌دهد تا در حین تایپ کلمات از غلط یاب استفاده کند، وقتی که در حال ویرایش ویکی متن، نوشتن در سایتهای ارائه دهندهٔ ایمیل، نوشتن در بلاگها و شبکه‌های اجتماعی هستید دارید از غلط‌یاب استفاده می کنید، همچنین برنامه‌های مرورگر وبی مثل : گوگل کروم، [//en.wikipedia.org/wiki/Konqueror konqueror]، opera و [//en.wikipedia.org/wiki/Email_client email client]‌هایی مثل: 
kmail و pidgin با استفاده از موتور جستجو ی [//en.wikipedia.org/wiki/GNU_Aspell GNU-ASPELL] به جرگهٔ پشتیبانی کنندگان سرویس غلط‌یاب پیوسته‌اند و آن را به تمام [//en.wikipedia.org/wiki/Application_Bundle نرم‌افزارهای کاربردی همراه ]و بسیاری از [//en.wikipedia.org/wiki/Third-party_software_component نرم‌افزارهای کاربردی شخص ثالث] خود اضافه کرده.

## عاملیت
اولین نسل غلط یاب‌ها به جای اصلاح کلمهٔ نادرست تنها قادر به تشخیص آن‌ها بودند و هیچ پیشنهادی به جای کلمات نادرست ارائه نمی‌دادند. این رویه برای خطاهای تایپی، مؤثر، ولی برای خطاهای آوایی و منطقی راهگشا نبود، چالشی که توسعه دهندگان غلط یاب‌ها با آن مواجه بودند ارائه پیشنهادهایی مناسب به جای کلمات نادرست بود برای حل این مشکل باید کلمات را با استفاده از الگوریتمهایی _ منطبق بر الگوی اصلی شان _ به شکلی ساده و خلاصه در می‌آوردند.

به نظر منطقی می‌رسد که بررسی کنیم و ببینیم که دیکشنری‌های دارای غلط یاب کجاها بیشتر مورد استقبال عموم قرار می‌گیرند.

به‌طور کلی هرچه دیکشنری مزبور بزرگتر باشد بهتر است، طوری‌که کلمات درست، اشتباهاً نادرست تلقی نشوند، با این وجود در عمل یک دیکشنری مطلوب انگلیسی باید حدوداً ۹۰۰۰۰ مدخل داشته باشد، اگر تعداد بیشتری وجود داشته باشد ممکن است کلماتی که غلط هجی شده‌اند به دلیل این که در بقیه زبان‌ها اشتباه محسوب شده‌اند به‌طورکلی نادیده گرفته شوند. برای مثال یک زبان‌شناس باید با تکیه بر دانش زبان‌شناسی پیکره‌ای به درستی تشخیص دهد که کلمهٔ " baht " اغلب حاصل هجای غلط کلمهٔ " bath " است که یک اشتباه رایج سهوی و نوشتاری تایلندی‌ها می‌باشد، از طرفی همین کلمه با کمی تغییر، تبدیل به " baths " می‌شود که در فرهنگ انگلیسی به معنای حمامی عمومی است که مورد استفادهٔ طبی دارد. پس معقول تر به نظر می‌رسد که عدهٔ کمی از افراد که تایلندی می‌نویسند، کمی در هنگام نوشتن به زحمت بیافتند تا این که عدهٔ زیادتری به خاطر حذف کلمهٔ " baths " که کلمه‌ای درست محسوب می‌شود، دچار مشکل نشوند.

اولین سری از غلط یاب‌های MS-DOS غالباً در حالت چرکنویس پکیج‌های واژه پرداز استفاده شده بودند، بعد از آماده شدن یک سند، یک کاربر، متن مورد نظر را برای پیدا کردن غلط‌های موجود وارسی می‌کرد، البته بعدها مؤلف Oracle روش پردازش دسته‌ای را برای حل این مسئله پیشنهاد داد. مشکل این روش این بود که فقط به کاربر اجازه می‌داد تا نتایج را تنها بعد از پردازش ببیند و این که او نیز فقط می‌توانست کلماتی را که از صحت یا عدم صحتشان آگاهی داشت اصلاح نماید. زمانی که حافظه و سرعت پردازش به اندازهٔ کافی توسعه یافت، غلط یابی به صورت [//en.wikipedia.org/wiki/Interactive#Computer_science تعاملی] و در پس زمینه قرار گرفت که نمونهٔ بارز این مورد در تولید نرم‌افزار " Sector Software produced Spellbound " در سال ۱۹۸۷ و نرم‌افزارMicrosoft-wordدر سال ۱۹۹۵ تا به بعد بود.

در سال‌های اخیر کیفیت نرم‌افزارهای غلط یاب رشد بسیار زیادی داشته به‌طوری‌که بعضی از آن‌ها می‌توانند خطاهای سادهٔ گرامری را تشخیص دهند.

## غلط یابی در زبانهای غیر انگلیسی

اغلب کلمات زبان انگلیسی که در گونهٔ نوشتاری و رسمی به کار میروند و تک هجایی هستند، در یک دیکشنری معمولی یافت می‌شوند، تنها بعضی از لغات فنی و کلمات اصلاح شده از این قاعده مستثنی هستند .در بعضی زبانها ترکیب لغات برای ساختن لغات جدید یک اصل رایج است مثلاً در زبان آلمانی اسامی مرکب اغلب با ترکیب و تغییر کلمه‌های موجود تولید می‌شوند، بعضی از ساختارهای نوشتاری زبان نمی‌توانند تفاوت کلمه‌ای را از دیگری به وضوح نمایش دهند بنابراین در این گونه موارد به الگوریتم‌های جداکنندهٔ کلمات احتیاج پیدا خواهد شد.با این تفاسیر هر کدام از این مسائل چالشهای تازه تری را برای تولید غلط یابها به زبان‌های غیر انگلیسی تولید می‌کند .

## نقد
بعضی از منتقدان محصولات فناوری و صنعت کامپیوترها بر این باورند که استفاده از غلط یاب‌ها، تمایل به خواندن، نوشتن و سایر مهارت‌های زبانی- کلامی را از بین می‌برد. آن‌ها مدعی اند که راحتی کار با کامپیوترها باعث می‌شود که مردم ویرایش متون و دست نوشته‌های خود را به راحتی به یک نرم‌افزار غلط یاب واگذار کنند و نتیجه چیزی جز تنبلی افراد نخواهد بود. در مقابل این ایده، حامیان مدعی اند که این تغییرات، یادگیری زبانهای جدید را برای عموم مردم جهان تسهیل می‌کند و از این رو می‌تواند برای جوامع بسیار سودمند باشد. همچنین آن‌ها بر این باورند که توانایی‌هایی که در معرض فراموشی قرار می‌گیرند با تواناییهای بهتر جایگزین می‌شوند که نتیجتاً سرعت و توانایی جستجوی مؤثرتری را به ارمغان می‌آورد .. دستهٔ دیگر از حامیان این فناوری اذعان می‌کنند که این مهارتها در یکسری از افراد از بین نمی‌رود زیرا آن‌ها به آن نیازمندند و به‌طور منظم از آن بهره می‌برند مانند: نویسندگان، منتقدان و متخصصان زبان و زبان‌شناسی.

با وجود مطالب گفته شده، همهٔ منتقدان پیشرفت تکنولوژی، درجبههٔ مخالف نیستند به عنوان مثال" Galletta et al " در مقاله خود می‌گوید: برای استفاده از غلط یاب‌ها با بهترین عملکرد، باید از مهارت زبانی – کلامی بالاتری برخوردار باشیم. این تئوری می‌گوید که تنها نویسندگانی با مهارتهای زبانی – کلامی بالا می‌توانند درستی یا نادرستی کلمات پیشنهادی ارئه شده توسط غلط یاب را تشخیص دهند.

دانشمندان برا ی آزمایش این نظریه ۲ گروه از افراد را مورد مطالعه قرار دادند. در این مطالعه از گروه اول که از بین افراد با سطح مهارت پایین انتخاب شدند خواسته شد که با کمک نرم‌افزار غلط یاب غلطهای یک متن را گزارش دهند درصورتی که از گروه دوم که دارای مهارت زبانی – کلامی بسیار بالایی بودند خواسته شد به تنهایی و بدون کمک از غلط یاب غلطها را پیدا کنند .نتیجهٔ آزمایش کاملاً برعکس تئوری " Galletta et al " بود ... چرا که نتیجه گروه اول به مراتب بهتر از دومی بود و این خود خط بطلانی بر این باور بود که می‌گفت: "مهارت افراد در اثر استفاده از ابزار پیشرفته کاهش می‌یابد. "

## جستارهای وابسته
* ویکی‌پدیا:اشتباه‌یاب
* Cupertino effect
* Grammar checker
* Record linkage problem
* Spelling suggestion
* Approximate string matching

## منابع

1.	 "Georgetown U Faculty & Staff: The Center for Language, Education & Development". https://web.archive.org/web/20090205140452/http://cled.georgetown.edu/faculty/. Retrieved 2008-12-18., citation: "Maria Mariani... was one of a group of six linguists from Georgetown University who developed the first spell-check system for the IBM corporation

2.	 SpringerLink - Journal Article

3.	 WSJ review by Walt Mossberg

4.	 Ghotit.com

5.	 Baase, Sara. A Gift of Fire: Social, Legal, and Ethical Issues for Computing and the Internet. 3. Upper Saddle River: Prentice Hall, 2007. Pages 357-358. 

6.	 NIU.edu Retired faulty page, accessed on May 6, 2009

7.	 About.com. Accessed on July 31, 2008

8.	Is Spell Check Creating a Generation of Dummies?" Education.com

## پیوند به بیرون

*	PSU.edu, Computer Programs for Detecting and Correcting Spelling Errors
*	Norvig.com, "How to Write a Spelling Corrector", by Peter Norvig
*	BBK.ac.uk, "Spellchecking by computer", by Roger Mitton
*	CBSNews.com, Spell-Check Crutch Curtails Correctness, by Lloyd de Vries
*	NIU.edu, Candidate for a Pullet Surprise - Complete corrected poem

رده:املا
رده:پردازش زبان‌های طبیعی
رده:غلط‌یاب‌ها
رده:نرم‌افزار کاربردی
رده:ویژگی‌های ویرایشگر متن