غلط‌یاب

غلط‌یاب ، در دنیای محاسبات رایانه‌ای، برنامه‌ای کاربردی است که کلمات یک متن را که دارای غلط املایی هستند، تشخیص می‌دهد. غلط‌یاب‌ها می‌توانند به تنهایی روی بلوکی از یک متن یا به عنوان بخشی از یک برنامه بزرگ‌تر، مانند واژه‌پرداز، نرم‌افزار ایمیل، لغت‌نامه الکترونیک یا موتور جستجو به کار روند.
عمل‌کرد
غلط‌یابهای ساده، کلمات خارج از متن را، جدا گانه در محتویات یک لغتنامه، یکی یکی مقایسه می‌کنند.در غلط‌یابی یک کلمه، اگر کلمه‌ای یافت نشد خطا به وجود می‌آید و در صورت تکرار دستور، نرم‌افزار نزدیکترین کلمه موجود را به عنوان جواب ترجمه میکند، برای این کار الگوریتم‌های زیادی پیشنهاد شده که  یکی از آن‌ها کلمات موجود در لغت‌نامه را که فاصله لون‌اشتاین کوچکی از کلمه اصلی دارند لیست میکند.
در اغلب نرم‌افزارهای غلط‌یاب گزینه‌ای تعبیه شده که در صورت عدم وجود کلمه در لغت‌نامه، آن را (به استثنای موارد فلگ شده)به لیست کلمات شناخته شده اضافه میکند. روش‌های جدیدتر برای غلط یابی اما ممکن است از الگوریتمهای پیچیده‌تری همچون یادگیری ماشین استفاده نمایند. به عنوان مثال این روش‌ها می‌توانند الگوی خطای یک کاربر را شناخته و خود را با آن تطبیق دهند .
طراحی
غلط‌یاب بطور عادی از دو قسمت تشکیل شده:
مجموعه‌ای از اعمال که متن را پیمایش و کلمات را استخراج می‌کنند.
الگوریتمی برای مقایسه کلمات استخراج شده از متن با لیستی از کلمات که دارای هجای صحیح هستند(مثلا: کلمات یک لغت‌نامه)
اعمال پیمایشی گاهی اوقات شامل الگوریتم‌های مستقل از زبان برای بررسی ریخت‌شناسی کلمات می‌شوند. اعمال استخراج کلمه، حتی برای زبانی مثل انگلیسی که گرامر آسانی دارد، به مواردی همچون اختصار و حالت مضاف احتیاج پیدا خواهند کرد. البته مشخص نیست که تحلیل (کاوش کلمات) مبتنی بر ریخت‌شناسی (مورفولوژی) تاثیر قابل توجهی داشته باشد.
لیست کلمات می‌تواند لیستی از کلمات ساده باشد یا اطلاعات اضافه‌تری مثل خط تیره‌گذاری، نشانه‌های لغوی و گرامری را نیز شامل شود. واسط کاربری برنامه، به عنوان قسمت الحاقی به این دو جز، به کاربران این امکان را می‌دهد که جابه‌جایی‌ها را آزمایش (موافقت) و عملیات برنامه را اصلاح کنند. البته استثنائی در مورد مثال بالا وجود دارد برنامه‌های غلط‌یابی که تنها از اطلاعات آماری استفاده می‌کنند: مثلا استفاده از این روش معمولا هم تلاش زیادی برای دسترسی به اطلاعات آماری مورد نیاز می‌طلبد و هم‌زمان ذخیره‌سازی اطلاعات در آن بیش‌تر است به همین دلیل این روش‌ها عموما کاربرد ندارند. در بعضی موارد برنامه‌های غلط‌یاب از لیست ثابتی از غلط‌های املایی و پیشنهادهایی برای اصلاحشان استفاده می‌کنند. این شیوه نسبت به شیوه‌های قبلی انعطاف کم‌تری دارد و اغلب در روش‌های اصلاح مبتنی بر کاغذ استفاده می‌شود مثل مدخل‌ها در لغت‌نامه‌ها
تاریخچه
اولین غلط‌یابها به صورت گسترده در اواخر دهه ۷۰ روی کامپیوترهای مرکزی استفاده شدند.چند سال بعد گروهی متشکل از ۶ زبان‌شناس از دانشگاه جورج تون سیستم غلط‌یابی برای آی‌بی‌ام طراحی کردند که از آن در ساخت پکیج‌های محصول سال ۱۹۸۱ استفاده کرد.
غلط یاب‌ها برای اولین بار در کامپیوترهای شخصی و
در سال ۱۹۸۰ و یک سال بعد در ۱۹۸۱ در همه پکیج‌های سری IBM PC مورد استفاده قرار گرفتند.توسعه دهندگان دیگر نیز هم‌زمان با توسعه سریع بازار نرم‌افزار به سمت تولید پکیجهای و محصولات
برای استفاده در رایانه‌های شخصی، مکینتاش، و UNIX هجوم بردند.این غلط‌یابها روی کامپیوترهای شخصی مستقلا به عنوان یک برنامه عمل میکردند، در صورت وجود حافظه کافی بعضی حتی میتوانستند در حالت واژه پرداز به صورت مستقل کار کنند.
با وجود این پکیج‌های غلط‌یاب تنها مدت کمی مورد استقبال قرار گرفت، در اواسط دهه ۱۹۸۰ توسعه دهندگان بزرگ بسته‌های نرم‌افزاری واژه پرداز، مثل Word Star وWord Perfect غلط یابها را به صورت رسمی در پکیج‌های محصولاتشان ثبت کردند و در عرض مدت کوتاهی آن را از انگلیسی به زبان‌های اروپایی و حتی آسیایی نیز گسترش دادند، علی‌رغم توسعه‌های مزبور، محصول جدید هنوز در قسمت‌های ریخت‌شناسی و ریشه شناسی، ناقص بودو این نقص مخصوصا در زبانهایی مثل بلغاری و فنلاندی که مملو از ترکیب ریشه‌ها است، دوچندان ایجاد مشکل میکرد. هرچند که نتیجه سرمایه‌گذاری برای عرضه واژه پردازهای شامل غلط‌یاب، دربازار کشوری مثل ایسلند توجیه اقتصادی نداشت با این حال کمپانی‌هایی مثل : word perfect در راستای استراتژی جهانی‌سازی محصولاتشان، به تلاش خود ادامه میدادند تا بازار کشورهای بیشتری را به تسخیر درآورند.
به تازگی، استفاده از غلط یابها به جز واژه پرداز‌ها، به دنیای مرورگرهای وب نیز راه یافته، از آن جمله میتوان به
اشاره کرد که به کاربر این امکان را می‌دهد تا در حین تایپ کلمات از غلط یاب استفاده کند، وقتی که در حال ویرایش ویکی متن، نوشتن در سایتهای ارائه دهنده ایمیل، نوشتن در بلاگها و شبکه‌های اجتماعی هستید دارید از غلط‌یاب استفاده می‌کنید، همچنین برنامه‌های مرورگر وبی مثل : گوگل کروم، ، opera و‌هایی مثل:
kmail و pidgin با استفاده از موتور جستجو ی به جرگه پشتیبانی کنندگان سرویس غلط‌یاب پیوسته‌اند و آن را به تمام و بسیاری از خود اضافه کرده.
عاملیت
اولین نسل غلط یاب‌ها به جای اصلاح کلمه نادرست تنها قادر به تشخیص آن‌ها بودند و هیچ پیشنهادی به جای کلمات نادرست ارائه نمی‌دادند. این رویه برای خطاهای تایپی، موثر، ولی برای خطاهای آوایی و منطقی راهگشا نبود، چالشی که توسعه دهندگان غلط یاب‌ها با آن مواجه بودند ارائه پیشنهادهایی مناسب به جای کلمات نادرست بود برای حل این مشکل باید کلمات را با استفاده از الگوریتمهایی _ منطبق بر الگوی اصلی شان _ به شکلی ساده و خلاصه در می‌آوردند.
به نظر منطقی می‌رسد که بررسی کنیم و ببینیم که دیکشنری‌های دارای غلط یاب کجاها بیشتر مورد استقبال عموم قرار می‌گیرند.
به‌طور کلی هرچه دیکشنری مزبور بزرگتر باشد بهتر است، طوری‌که کلمات درست، اشتباها نادرست تلقی نشوند، با این وجود در عمل یک دیکشنری مطلوب انگلیسی باید حدودا ۹۰۰۰۰ مدخل داشته باشد، اگر تعداد بیشتری وجود داشته باشد ممکن است کلماتی که غلط هجی شده‌اند به دلیل این که در بقیه زبان‌ها اشتباه محسوب شده‌اند به‌طورکلی نادیده گرفته شوند. برای مثال یک زبان‌شناس باید با تکیه بر دانش به درستی تشخیص دهد که کلمه " baht " اغلب حاصل هجای غلط کلمه " bath " است که یک اشتباه رایج سهوی و نوشتاری تایلندی‌ها می‌باشد، از طرفی همین کلمه با کمی تغییر، تبدیل به " baths " می‌شود که در فرهنگ انگلیسی به معنای حمامی عمومی است که مورد استفاده طبی دارد. پس معقول‌تر به نظر می‌رسد که عده کمی از افراد که تایلندی می‌نویسند، کمی در هنگام نوشتن به زحمت بیافتند تا این که عده زیادتری به خاطر حذف کلمه " baths " که کلمه‌ای درست محسوب می‌شود، دچار مشکل نشوند.
اولین سری از غلط یاب‌های MS-DOS غالبا در حالت چرکنویس پکیج‌های واژه پرداز استفاده شده بودند، بعد از آماده شدن یک سند، یک کاربر، متن مورد نظر را برای پیدا کردن غلط‌های موجود وارسی می‌کرد، البته بعدها مولف Oracle روش پردازش دسته‌ای را برای حل این مسئله پیشنهاد داد. مشکل این روش این بود که فقط به کاربر اجازه می‌داد تا نتایج را تنها بعد از پردازش ببیند و این که او نیز فقط می‌توانست کلماتی را که از صحت یا عدم صحتشان آگاهی داشت اصلاح نماید. زمانی که حافظه و سرعت پردازش به اندازه کافی توسعه یافت، غلط یابی به صورت و در پس زمینه قرار گرفت که نمونه بارز این مورد در تولید نرم‌افزار " Sector Software produced Spellbound " در سال ۱۹۸۷ و نرم‌افزارMicrosoft-wordدر سال ۱۹۹۵ تا به بعد بود.
در سالهای اخیر کیفیت نرم‌افزارهای غلط یاب رشد بسیار زیادی داشته به‌طوری‌که بعضی از آن‌ها می‌توانند خطاهای ساده گرامری را تشخیص دهند.
غلط یابی در زبانهای غیر انگلیسی
اغلب کلمات زبان انگلیسی که در گونه نوشتاری و رسمی به کار میروند و تک هجایی هستند، در یک دیکشنری معمولی یافت می‌شوند، تنها بعضی از لغات فنی و کلمات اصلاح شده از این قاعده مستثنی هستند .در بعضی زبانها ترکیب لغات برای ساختن لغات جدید یک اصل رایج است مثلا در زبان آلمانی اسامی مرکب اغلب با ترکیب و تغییر کلمه‌های موجود تولید می‌شوند، بعضی از ساختارهای نوشتاری زبان نمی‌توانند تفاوت کلمه‌ای را از دیگری به وضوح نمایش دهند بنابراین در این گونه موارد به الگوریتم‌های جداکننده کلمات احتیاج پیدا خواهد شد.با این تفاسیر هر کدام از این مسائل چالشهای تازه‌تری را برای تولید غلط یابها به زبان‌های غیر انگلیسی تولید می‌کند .
نقد
بعضی از منتقدان محصولات فناوری و صنعت کامپیوترها بر این باورند که استفاده از غلط یاب‌ها، تمایل به خواندن، نوشتن و سایر مهارت‌های زبانی- کلامی را از بین می‌برد. آن‌ها مدعی‌اند که راحتی کار با کامپیوترها باعث می‌شود که مردم ویرایش متون و دست نوشته‌های خود را به راحتی به یک نرم‌افزار غلط یاب واگذار کنند و نتیجه چیزی جز تنبلی افراد نخواهد بود. در مقابل این ایده، حامیان مدعی‌اند که این تغییرات، یادگیری زبانهای جدید را برای عموم مردم جهان تسهیل می‌کند و از این رو می‌تواند برای جوامع بسیار سودمند باشد. همچنین آن‌ها بر این باورند که توانایی‌هایی که در معرض فراموشی قرار می‌گیرند با تواناییهای بهتر جایگزین می‌شوند که نتیجتا سرعت و توانایی جستجوی موثرتری را به ارمغان می‌آورد .. دسته دیگر از حامیان این فناوری اذعان می‌کنند که این مهارتها در یکسری از افراد از بین نمی‌رود زیرا آن‌ها به آن نیازمندند و به‌طور منظم از آن بهره می‌برند مانند: نویسندگان، منتقدان و متخصصان زبان و زبان‌شناسی.
با وجود مطالب گفته شده، همه منتقدان پیشرفت تکنولوژی، درجبهه مخالف نیستند به عنوان مثال" Galletta et al " در مقاله خود می‌گوید: برای استفاده از غلط یاب‌ها با بهترین عملکرد، باید از مهارت زبانی – کلامی بالاتری برخوردار باشیم. این تئوری می‌گوید که تنها نویسندگانی با مهارتهای زبانی – کلامی بالا می‌توانند درستی یا نادرستی کلمات پیشنهادی ارئه شده توسط غلط یاب را تشخیص دهند.
دانشمندان برا ی آزمایش این نظریه ۲ گروه از افراد را مورد مطالعه قرار دادند. در این مطالعه از گروه اول که از بین افراد با سطح مهارت پایین انتخاب شدند خواسته شد که با کمک نرم‌افزار غلط یاب غلطهای یک متن را گزارش دهند درصورتی که از گروه دوم که دارای مهارت زبانی – کلامی بسیار بالایی بودند خواسته شد به تنهایی و بدون کمک از غلط یاب غلطها را پیدا کنند .نتیجه آزمایش کاملا برعکس تئوری " Galletta et al " بود … چرا که نتیجه گروه اول به مراتب بهتر از دومی بود و این خود خط بطلانی بر این باور بود که می‌گفت: "مهارت افراد در اثر استفاده از ابزار پیشرفته کاهش می‌یابد. "
Cupertino effect
Grammar checker
Record linkage problem
Spelling suggestion
Approximate string matching