غلط‌یاب

از ویکی‌پدیا، دانشنامهٔ آزاد
پرش به: ناوبری، جستجو

غلطیاب، در دنیای محاسبات رایانه‌ای، برنامه‌ای کاربردی است که کلمات یک متن را که دارای غلط املایی هستند، تشخیص می‌دهد. غلط‌یاب‌ها می‌توانند به تنهایی روی بلوکی از یک متن یا به عنوان بخشی از یک برنامه بزرگ‌تر، مانند واژه‌پرداز، نرم‌افزار ایمیل، لغت‌نامهٔ الکترونیک و یا موتور جستجو به کار روند.

عمل‌کرد[ویرایش]

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

طراحی[ویرایش]

غلط‌یاب بطور عادی از دو قسمت تشکیل شده:

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

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

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

تاریخچه[ویرایش]

اولین غلط‌یابها به صورت گسترده در اواخر دههٔ ۷۰ روی کامپیوترهای مرکزی استفاده شدند.چند سال بعد گروهی متشکل از ۶ زبان‌شناس از دانشگاه جورج تون سیستم غلط‌یابی برای آی‌بی‌ام طراحی کردند که از آن در ساخت پکیج‌های IBM PC محصول سال ۱۹۸۱ استفاده کرد. غلط یاب‌ها برای اولین بار در کامپیوترهای شخصی CP/M و TRS-80 در سال ۱۹۸۰ و یک سال بعد در ۱۹۸۱ در همهٔ پکیج‌های سری IBM PC مورد استفاده قرار گرفتند.توسعه دهندگان دیگر نیز همزمان با توسعهٔ سریع بازار نرم‌افزار به سمت تولید پکیجهای OEM و محصولات end-userبرای استفاده در رایانه‌های شخصی، مکینتاش، VAX و UNIX هجوم بردند.این غلط‌یابها روی کامپیوترهای شخصی مستقلاً به عنوان یک برنامه عمل میکردند، در صورت وجود حافظهٔ کافی بعضی حتی میتوانستند در حالت TSR واژه پرداز به صورت مستقل کار کنند. با وجود این پکیج‌های غلط‌یاب تنها مدت کمی مورد استقبال قرار گرفت، در اواسط دههٔ ۱۹۸۰ توسعه دهندگان بزرگ بسته‌های نرم‌افزاری واژه پرداز، مثل Word Star وWord Perfect غلط یابها را به صورت رسمی در پکیج‌های محصولاتشان ثبت کردند ودر عرض مدت کوتاهی آن را از انگلیسی به زبان‌های اروپایی و حتی آسیایی نیز گسترش دادند، علی‌رغم توسعه‌های مزبور، محصول جدید هنوز در قسمتهای ریخت‌شناسی و ریشه شناسی، ناقص بودو این نقص مخصوصا در زبانهایی مثل بلغاری و فنلاندی که مملو از ترکیب ریشه‌ها است، دوچندان ایجاد مشکل میکرد. هرچند که نتیجهٔ سرمایه گذاری برای عرضهٔ واژه پردازهای شامل غلط‌یاب، دربازار کشوری مثل ایسلند توجیه اقتصادی نداشت با این حال کمپانی هایی مثل : word perfect در راستای استراتژی جهانی سازی محصولاتشان، به تلاش خود ادامه میدادند تا بازار کشورهای بیشتری را به تسخیر درآورند. به تازگی، استفاده از غلط یابها به جز واژه پرداز ها، به دنیای مرورگرهای وب نیز راهٔ یافته، از آن جمله میتوان به Firefox2.0 اشاره کرد که به کاربر این امکان را میدهد تا در حین تایپ کلمات از غلط یاب استفاده کند، وقتی که در حال ویرایش ویکی متن، نوشتن در سایتهای ارائه دهندهٔ ایمیل، نوشتن در بلاگها و شبکه‌های اجتماعی هستید دارید از غلط‌یاب استفاده میکنید، همچنین برنامه‌های مرورگر وبی مثل : گوگل کروم، konqueror، opera و email client هایی مثل: kmail و pidgin با استفاده از موتور جستجو ی GNU-ASPELL به جرگهٔ پشتیبانی کنندگان سرویس غلط‌یاب پیوسته اند و آن را به تمام نرم‌افزارهای کاربردی همراه و بسیاری از نرم‌افزارهای کاربردی شخص ثالث خود اضافه کرده.

عاملیت[ویرایش]

اولین نسل غلط یابها به جای اصلاح کلمهٔ نادرست تنها قادر به تشحیص آنها بودندوهیچ پیشنهادی به جای کلمات نادرست ارائه نمی‌دادند.این رویه برای خطاهای تایپی، موثر، ولی برای خطاهای آوایی و منطقی راهگشا نبود، چالشی که توسعه دهندگان غلط یاب‌ها با آن مواجه بودند ارائه پیشنهادهایی مناسب به جای کلمات نادرست بود برای حل این مشکل باید کلمات را با استفاده از الگوریتمهایی _ منطبق بر الگوی اصلی شان _ به شکلی ساده و خلاصه در میآوردند. به نظر منطقی میرسد که بررسی کنیم و ببینیم که دیکشنری‌های دارای غلط یاب کجاها بیشتر مورد استقبال عموم قرار میگیرند. به طور کلی هرچه دیکشنری مزبور بزرگتر باشد بهتر است، طوری که کلمات درست، اشتباهاً نادرست تلقی نشوند، با این وجود در عمل یک دیکشنری مطلوب انگلیسی باید حدوداً 90000 مدخل داشته باشد، اگر تعداد بیشتری وجود داشته باشد ممکن است کلماتی که غلط هجی شده اند به دلیل این که در بقیه زبان‌ها اشتباه محسوب شده اند به طورکلی نادیده گرفته شوند . برای مثال یک زبان شناس باید با تکیه بر دانش زبان‌شناسی اصل گرا به درستی تشخیص دهد که کلمهٔ " baht " اغلب حاصل هجای غلط کلمهٔ " bath " است که یک اشتباه رایج سهوی و نوشتاری تایلندی‌ها می‌باشد، از طرفی همین کلمه با کمی تغییر، تبدیل به " baths " می‌شود که در فرهنگ انگلیسی به معنای حمامی عمومی است که مورد استفادهٔ طبی دارد. پس معقول تر به نظر میرسد که عدهٔ کمی از افراد که تایلندی مینویسند، کمی در هنگام نوشتن به زحمت بیافتند تا این که عدهٔ زیادتری به خاطر حذف کلمهٔ " baths " که کلمه ای درست محسوب می‌شود، دچار مشکل نشوند. اولین سری از غلط یاب‌های MS-DOS غالباً در حالت چرکنویس پکیج‌های واژه پرداز استفاده شده بودند، بعد از آماده شدن یک سند، یک کاربر، متن مورد نظر را برای پیدا کردن غلط‌های موجود وارسی میکرد، البته بعدها مولف Oracle روش پردازش دسته ای را برای حل این مساله پیشنهاد داد.مشکل این روش این بود که فقط به کاربر اجازه میداد تا نتایج را تنها بعد از پردازش ببیند و این که او نیز فقط میتوانست کلماتی را که از صحت یا عدم صحتشان آگاهی داشت اصلاح نماید.زمانی که حافظه و سرعت پردازش به اندازهٔ کافی توسعه یافت، غلط یابی به صورت تعاملی و در پس زمینه قرار گرفت که نمونهٔ بارز این مورد در تولید نرم‌افزار " Sector Software produced Spellbound " در سال 1987 و نرم‌افزارMicrosoft-wordدر سال 1995 تا به بعد بود. در سالهای اخیر کیفیت نرم‌افزارهای غلط یاب رشد بسیار زیادی داشته به طوری که بعضی از آنها میتوانند خطاهای سادهٔ گرامری را تشخیص دهند

غلط یابی در زبانهای غیر انگلیسی[ویرایش]

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

نقد[ویرایش]

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

جستارهای وابسته[ویرایش]

  • Grammar checker
  • Record linkage problem
  • Spelling suggestion
  • Category:Spelling checking programs

Simple spell-checker (21 lines), with explanation and references

منابع[ویرایش]

1. "Georgetown U Faculty & Staff: The Center for Language, Education & Development". 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. ISBN 0-13-600848-8

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