این نرمافزار به همراه کتابخانه کد و فایلهای پشتیبان و جانبی آن از طریق وبگاه http://www.virastyar.ir عرضه شده و در دسترس کاربران و توسعهدهندگان قرار دارد. نوشتار پیش روی، پس از مقدمهای کوتاه، به مقایسه و تطبیق ویژگیهای ویراستیار در کنار برخی نرمافزارهای مشابه میپردازد.
خطایابی املایی چیست؟
در ابتدا لازم است مختصری به فرایند خطایابی املایی بپردازیم. عبارت «خطایابی املایی» به یافتن خطای املایی و ارائه پیشنهاد مناسب برای جایگزینی با واژه خطا اطلاق میشود. خطایابی املایی به طور عام در سه مرحله صورت میپذیرد:
- یافتن خطا: رایجترین روش یافتن خطا جستجوی واژههای متن در یک واژهنامه از واژههای صحیح زبان است. تنها نکتهای که در این مرحله باید مورد توجه قرار گیرد، واژههای تصریف شده (یا در مواردی واژههای اشتقاقی) هستند که ممکن است در واژهنامه وجود نداشته باشند. از این رو، تصریفهای صحیح واژهها باید به واژهنامه افزوده شود یا هنگام جستجو در واژهنامه، واژههای تصریف شده ریشهیابی شوند.
- تولید پیشنهاد جایگزین: در این مرحله بر مبنای واژه دارای خطای املایی، فهرستی از واژههای مشابه تولید میشوند که جهت صحتسنجی، فهرست جاری در واژهنامه جستجو شده تا واژههای صحیح زبان به عنوان پیشنهادات جایگزینی استخراج شوند.
- مرتبسازی پیشنهادات: در این مرحله پیشنهادات جایگزینی بر حسب میزان شباهت با واژه دارای خطای املایی، میزان کاربرد، بافت متن و مواردی از این دست مرتب میشوند تا پیشنهادی که احتمال جایگزینی آن با واژه دارای خطای املایی است، نزدیکتر به سرِ فهرست باشد.
این مراحل به طور کلی، فرا زبانی هستند و با در اختیار داشتن الفبای زبان مقصد میتوان یک خطایاب ساده و عام را در زمانی بسیار کوتاه برای هر زبانی تولید نمود. نکاتی که به طور کلی خطایابی را کاراتر و پیچیدهتر میکنند، در نظر گرفتن قواعد تصریف و اشتقاق زبان مقصد و ارائه یک روش مرتبسازی پیشنهادات بر اساس ویژگیهای زبان مقصد است. از این رو، هیچ خطایاب با کاربرد عام، نمیتواند بهترین نتایج را برای زبانی خاص ارائه کند. البته خطایابها میتوانند روشهای متفاوتی را برای هر یک از مراحل سهگانه فوق در نظر بگیرند که موجب بهبود کارایی خطایابهایِ با کاربردهای خاص خواهد شد. نکته بسیار مهمی که در مورد هر خطایاب املایی از جمله ویراستیار باید مورد توجه قرار گیرد، این است که کارایی این خطایابها به طور عمده در حوزه واژهنامه آنها است؛ تشخیص و تصحیح خطا و ارائه پیشنهادات جایگزینی، تنها در دایره واژگان موجود در واژهنامه آنها صورت میپذیرد. همچنین اگر واژهنامه این خطایابها به هر دلیل شامل واژهای نادرست باشد، خطایاب آن واژه را یک واژه صحیح زبان در نظر میگیرد. برای کسب اطلاعات بیشتر در مورد ساز و کار خطایاب ویراستیار میتوانید به کتاب «خطایابی املایی خودکار در زبان فارسی» با اطلاعات کتابشناسی زیر مراجعه کنید:
Omid Kashefi, Mitra Nasri, Kamiar Kanani, Sina Iravanian, Mehrdad Senobari, Towards Automatic Persian Spell Checker, SCICT: Tehran, Iran, 2010, ISBN: 978-964-884-634-8.
قلمرو «ویراستیار»
سؤال دیگری که ممکن است به ذهن خطور کند، این است که چرا ویراستیار در حال حاضر تنها برای سیستمعامل ویندوز و مایکروسافت وُرد طراحی شده است. دلیل این امر، نسبت بسیار بیشتر کاربران مایکروسافت وُرد در مقایسه با دیگر ویرایشگران متن مانند OOo Writer یا توزیعهای مختلف TeX در ایران است. ویرایشگران متن مبتنی بر TeX، فاقد یک محیط خاص برای ویرایش هستند. از این رو، میتوان متون مورد استفاده در آنها را با استفاده از وُرد خطایابی نمود و یا با توجه به پیادهسازی رابطهای سازگار با ISpell در ویراستیار، از ویرایشگرهایی همچون Notepad++ برای خطایابی متون ساختیافته برای TeX استفاده نمود. با توجه به متنباز بودن ویراستیار میتوان یک نسخه از آن را بر روی سیستمعاملهای Unix-like نیز مطابق ساخت تا کاربران ویرایشگر OOo نیز بتوانند به دلیل پیادهسازی رابطهای سازگار با ISpell بهراحتی از ویراستیار استفاده نمایند. گفتني است که ویراستیار بهزودی ازEnchant نیز پشتیبانی خواهد کرد.
«ویراستیار» در مقام مقایسه
در این گزارش به مقایسه مبتنی بر قابلیتِ ویراستیار با نرمافزارهایِ ذيل ميپردازيم: 1. ویراسباز؛ 2. مجموعه زبانی مایکروسافت یا Microsoft Language Interface Pack (LIP) for Persian که پشتیبانی از خطایابی فارسی را به خطایاب مایکروسافت وُرد اضافه میکند؛ 3. Aspell و Hunspell که خطایابهایی بر پایه ISpell و MySpell هستند و به طور عمده در نرمافزارهای متنباز و نرمافزارهایی همچون OOo Writer برای سیستم عاملهای Unix-like به کار میروند.
البته محصولات قدرتمند و مشابه دیگری همچون خطایاب املایی دانشگاه تهران که با حمایت مرکز تحقیقات مخابرات تولید شده و نيز خطایاب املایی ویرا از بنیاد روباتیک سپنتا هم موجود هستند، اما چون ما فضا را رقابتی نمیبینیم، دلیلی بر مقایسه مبتنی بر قابلیتِ ویراستیار با این محصولات نمیبینیم؛ چنانکه این محصولات نيز دارای قابلیتهای خوبی هستند. دلیل مقایسه ویراستیار به موارد فوق، تنها وجود برخی سؤالات و انتقادات مربوط به ویراستیار و موارد مورد مقایسه بوده است. در ادامه، به توضیحاتی پیرامون محصولات مشابه فوق و بررسی قابلیتهای آنها خواهیم پرداخت.
- معرفی هر یک از این محصولات:
- • ویراستیار: خطایاب املایی زبان فارسی که با حمایت شورای عالی اطلاعرسانی طراحی و پیادهسازی شده است. این خطایاب، قواعد تصریف فارسی را به طور کامل پوشش میدهد. هر واژه در زبان فارسی با در نظر گرفتن نقش واژه (ادات سخن) میتواند تا بیش از 2800 تصریف مختلف داشته باشد. قواعد تصریف زبان فارسی از قواعد ریختآواشناسی نیز متأثر میشوند. واژهنامه ویراستیار شامل 36000 واژه (ریشه) و حدود 500 بن فعل است که میتوانند بیش از 70 میلیون واژه تصریف شده و 45 هزار فعل را پوشش دهند. واژهنامه ویراستیار، خصوصاً در زمینه واژههای تخصصی، اسامی خاص و واژههای مرکب، نیازمند تکمیل است.
- • ویراسباز: ویراسباز یک ویراستار رایگان برخط (آنلاین) فارسی است. نسخه کنونی آن، یک نسخه آزمایشی است. ویراسباز، متنها را از نظر دستور خط فارسی و اصول تایپ فارسی ویرایش میکند. این نرمافزار قابلیتهای یک خطایاب را دارا نیست و این مقایسه چندان منصفانه نخواهد بود.
- • مجموعه زبانی مایکروسافت: یک بسته نرمافزاری است که پس از نصب، امکان خطایابی به زبان فارسی را به خطایاب پیشفرض مایکروسافت وُرد اضافه میکند. این محصول امکان تعریف قواعد تصریف زبان را ندارد و تنها از یک واژهنامه استفاده میکند. جزئیاتی از تعداد واژهها و نحوه کارکرد این محصول در دست نیست.
- • Aspell و Hunspell: خطایابهای پیشفرض پروژههای GNU هستند که در سیستمهای عامل Unix-like کاربرد بسياري دارند. خطایاب Aspell از مشابهت آوایی نیز برای تولید و مرتبسازی پیشنهادات استفاده میکند. خطایاب Hunspell از تحلیل ساختواژی و قواعد تصریفی، و خطتیرهگذاری (Hyphenation) پشتیبانی میکند. واژهنامه فارسی ارائه شده برای این خطایابها شامل کلمات تصریفشده فارسی است. تعداد واژههای تصریفشده 332554 واژه است؛ در حالی که تعداد واژههای تصریفشده ویراستیار، با در نظر امکان تصریف هر اسم به بیش از 2800 حالت، بیش از 70 میلیون واژه تصریفشده خواهد بود. قواعد تصریف فارسی و اصطلاحنامه فارسی نیز برای این نرمافزارها ارائه نشده است.
- اصلاح کلمات مرکب و نیمفاصله:
لازم به توضیح است که کلمات مرکب در فارسی یا به صورت پیوسته نوشته میشوند و یا با نیمفاصله. کلماتی که مابین آنها فاصله کامل درج شود، دو کلمهي مجزا هستند.
- • ویراستیار: به طور کامل پشتیبانی میکند
- • ویراسباز: امکان خطایابی املایی ندارد.
- • مجموعه زبانی مایکروسافت: پشتیبانی نمیکند. این محصول نیمفاصله را همانند فاصله شناسایی کرده و مواردی همچون: «اسبسوادی»، «معناشنایی»، «سوسکفرسایی» و «آمدینیامدیمیآمدی» را صحیح در نظر میگیرد.
- • Aspell و Hunspell: پشتیبانی میکنند.
- اصلاح فاصلهگذاری پسوندها:
این موارد از شایعترین خطاهای املایی در زبان فارسی هستند و شامل مواردی همچون با فاصله نوشتن یا پیوسته نوشتن «ها» با کلمه پیش از خود میشوند.
- • ویراستیار: پسوندهای تصریفی شامل: 1. نشانه جمع «ها»؛ 2. نشانه جمع «ان»؛ 3. ضمایر ملکی و مفعولی؛ 4. فعلهای اسنادی؛ 5. «ی» نسبت؛ 6. «ی» نکره؛ 7. «ی» بدل از کسره اضافه؛ 8. پسوندهای تفصیلی؛ 9. پسوندهای ترتیبی شمارشی؛ 10. پسوند شمارشی مبهم، به طور کامل همراه با قواعد ریختآواشناسی مورد پوشش قرار میگیرند.
به عنوان مثال، تصریف واژه «مهربان»، «قوی»، «خسته»، «موجه»، «دانشجو»، «سَرو» و «دانا» با پسوند ضمیر مفعولی اول شخص به صورت: «مهربانم»، «قویام»، «خستهام»، «موجهم»، «دانشجویم»، «سَروم» و «دانایم» مورد پوشش قرار میگیرند یا اصلاح میشوند. همچنين «شرکت ها»، «شرکتها» و «خانه ام»، به «شرکتها» و «خانهام» اصلاح میشوند. برای تسریع و تسهیل کار، ویراستیار امکان تصحیح یکباره تمامی این موارد یا موارد انتخابی را در کل متن بدون نیاز به تعامل با کاربر، علاوه بر امکان تصحیح، یکبهیک دارا است.
- • ویراسباز: مواردی همچون: «خانه ام»، «خانه م»، «دانا م»، «شرکت ام»، «خدات»، «پرندهگان» و «خانهم» در این نرمافزار قابل تصحیح نیستند.
- • مجموعه زبانی مایکروسافت: این محصول امکان تصحیح فاصلهگذاری پسوندها را که از شایعترین خطاهای املایی در زبان فارسی هستند، دارا نیست.
- • Aspell و Hunspell: این محصول امکان تصحیح فاصلهگذاری پسوندها را که از شایعترین خطاهای املایی در زبان فارسی هستند، دارا نیست.
- اصلاح فاصلهگذاری پیشوندها:
این موارد نیز از شایعترین خطاهای املایی در زبان فارسی هستند و شامل مواردی همچون: با فاصله نوشتن یا پیوسته نوشتن «می» با کلمه پس از خود یا چسباندن «به» به کلمات پس از خود مانند «بعنوان» میشوند.
- • ویراستیار: با در نظر گرفتن معنای واژهها و کاربردها پوشش داده میشود؛ به عنوان مثال، مواردی همچون: «میتوان»، «نمیتوان»، «می شود»، «نمی توانیم»، «بعنوان»، «بپردازم»، «بصورت»، «می و شراب» و «بتوانیم»، به صورت زیر تصحیح میشوند:
«میتوان»، «نمیتوان»، «میشود»، «نمیتوانیم»، «به عنوان»، «بپردازم»، «به صورت»، «می و شراب» و «بتوانیم».
- • ویراسباز: مواردی همچون: «می و شراب»، «بعنوان»، «بصورت» و «می نتوان خورد»، به صورت: «میو شراب»، «بعنوان»، «بصورت» و «مینتوان خورد» تبدیل میشوند که صحیح نیستند.
- • مجموعه زبانی مایکروسافت: این محصول امکان تصحیح فاصلهگذاری پیشوندها را که از شایعترین خطاهای املایی در زبان فارسی هستند، دارا نیست.
- • Aspell و Hunspell: این محصول امکان تصحیح فاصلهگذاری پیشوندها را که از شایعترین خطاهای املایی در زبان فارسی هستند، دارا نیست.
- پشتیبانی از قواعد صَرف فارسی:
قواعد صرف فارسی شامل تَصریف واژههای غیرفعلی و تصریف فعلها میشود. تصریف گونهای از تغییر در شکل واژه است که معنای واژه ثابت مانده و تنها از نظر شخص، شمار، زمان و مواردی از این دست تغییر مییابد، مانند: «کتابها»، «کتابم» و «کتابی» که تصریف شده واژه «کتاب» هستند یا «رفتم»، «رفتیم» و «رفتند» که تصریف شده بن فعل «رفتن» هستند. مواردی از قواعد واژهسازی که معنای واژه متفاوت از واژه ریشه است، اشتقاق نام دارند، مانند کلمات: «دانشگاه»، «دانشمند»، «دانشجو» و «دانشآموز» که همگی از ریشه «دانش» مشتق شدهاند و هر یک واژهای جدید در زبان هستند.
- • ویراستیار: به طور کامل و در تمامی حالات همراه با قواعد آوایی و ادات سخن واژهها پشتیبانی میکند.
- • ویراسباز: به صورت قواعد رشتهای به صورت بسیار محدود پشتیبانی میکند.
- • مجموعه زبانی مایکروسافت: به صورت بسیار محدود در حد صرف واژهها در واژهنامه پشتیبانی میکند؛ ولی در صورت افزودن واژه جدید، این امکان برای آن واژه میسر نیست.
- • Aspell و Hunspell: به صورت بسیار محدود در حد صرف واژهها در واژهنامه پشتیبانی میکند و در صورت افزودن واژه جدید، این امکان برای آن واژه میسر نیست.
- اصلاح خطاهای املایی ناشی از فاصلهگذاری:
- • ویراستیار: به طور کامل و بیش از هر خطایاب املایی دیگری در جهان از این امر پشتیبانی میکند. یک ترکیب 3تایی از واژهها در یک بافت متنی میتوانند 7 حالت فاصلهگذاری نادرست داشته باشد که همه این 7 مورد، از جمله مواردی همچون «منمشتعلعشقعلیامچهکنم» توسط ویراستیار مورد پوشش و اصلاح قرار میگیرند.
- • ویراسباز: امکان خطایابی املایی ندارد.
- • مجموعه زبانی مایکروسافت: تنها یک گونه از خطاهای فاصلهگذاری را (مانند «منرفتم» به «من رفتم»)، آن هم به طور ناقص، پشتیبانی میکند.
- • Aspell و Hunspell: تنها یک گونه از خطاهای فاصلهگذاری را (مانند «منرفتم» به «من رفتم»)، آن هم به طور ناقص، پشتیبانی میکنند.
- پشتیبانی و اصلاح واژههایی که اعراب یا تشدید دارند:
- • ویراستیار: به طور کامل پشتیبانی میکند.
- • ویراسباز: به طور کامل پشتیبانی میکند.
- • مجموعه زبانی مایکروسافت: به طور کامل پشتیبانی میکند.
- • Aspell و Hunspell: پشتیبانی نمیکند و اینگونه واژهها را خطا در نظر میگیرد.
- پشتیبانی از اصلاح تنوین:
گفتني است که کلمات عربی که تنوین دارند، به طور رایج بدون تنوین نوشته میشوند که اشتباه است.
- • ویراستیار: به طور کامل پشتیبانی میکند.
- • ویراسباز: به طور کامل پشتیبانی میکند.
- • مجموعه زبانی مایکروسافت: به طور کامل پشتیبانی میکند.
- • Aspell و Hunspell: پشتیبانی نمیکند و اینگونه واژهها را صحیح در نظر میگیرد.
- استفاده از خطایاب پیشفرض مایکروسافت وُرد:
- • ویراستیار: پشتیبانی نمیکند. این امر امکانپذیر نیست و یکپارچهشدن با خطایاب مایکروسافت وُرد، تنها در انحصار شرکت مایکروسافت و محصولات آن شرکت است؛ به عنوان نمونه، زیرخط موجدار که به رنگ قرمز یا سبز برای نشان دادن یک واژه دارای خطای املایی در خطایاب مایکروسافت وُرد استفاده میشود، در دیگر نرمافزارها قابل دسترسی نیست.
- • ویراسباز: پشتیبانی نمیکند.
- • مجموعه زبانی مایکروسافت: پشتیبانی میکند و در حقیقت، افزودن واژهنامه زبانهای دیگر به مایکروسافت وُرد است.
- • Aspell و Hunspell: پشتیبانی نمیکند.
- امکان ویرایش متن هنگام خطایابی:
- • ویراستیار: پشتیبانی نمیکند. این امر امکانپذیر نیست و امکان ویرایش متن هنگام خطایابی در مایکروسافت وُرد، تنها در انحصار شرکت مایکروسافت و خطایاب پیشفرض وُرد است.
- • ویراسباز: تعاملی نیست.
- • مجموعه زبانی مایکروسافت: پشتیبانی میکند.
- • Aspell و Hunspell: در OOo Writer پشتیبانی میشود؛ اما در دیگر ویرایشگرها بستگی به ویرایشگر مورد نظر دارد.
- سطح پوششِ تصحیح خطا:
این مورد به این معنا است که خطاهای املایی تا چه درجهای از خطا قابل تصحیح هستند. خطاهای در فاصله ویرایشی 1، یعنی خطاهایی که تنها 1 حرف از آنها به اشتباه حذف شده، جابهجا شده و یا تنها 1 حرف اضافی در آن واژه درج شده است. خطاهای در فاصله ویرایشی 2، خطاهایی هستند که با اشتباه در 2 حرف پیش آمدهاند. خطاهای آوایی خطاهایی هستند که واژه دارای خطا، همانند واژهی مورد نظر تلفظ میشود، مانند «قستنتنیه» به جای «قسطنطنیه». خطاهای همشکل نیز آن دسته از خطاها هستند که حروف همشکل در آنها، به دلایلی همچون اشتباه در دید، به جای یکدیگر به کار رفتهاند، مانند «سبندارمزگان» به جای «سپندارمزگان». این گونه خطاها، در بازشناسی نوری نویسهها بسیار رایج است.
- • ویراستیار: فاصله ویرایشی 2 و در مواردی همچون اصلاح «قاشقپروری» به «قاشقزنی» بیشتر از 2. پشتیبانی از خطاهای آوایی در هر فاصله ویرایشی و پشتیبانی از خطاهای ناشی از همشکل بودن حروف.
- • ویراسباز: امکان خطایابی املایی ندارد.
- • مجموعه زبانی مایکروسافت: تنها فاصله ویرایشی 1.
- • Aspell و Hunspell: فاصله ویرایشی 1 به همراه امکان خطایابی آوایی که دادگان آن برای فارسی فراهم نیست.
- رابط توسعه و برنامهنویسی:
- • ویراستیار: دارد.
- • ویراسباز: ندارد.
- • مجموعهي زبانی مایکروسافت: دارد.
- • Aspell و Hunspell: دارد.
- متنباز:
- • ویراستیار: هست.
- • ویراسباز: نیست.
- • مجموعه زبانی مایکروسافت: نیست.
- • Aspell و Hunspell: هست.
- بستر اجرا (سیستمعامل):
- • ویراستیار: Microsoft Windows and Unix-like OSes (using mono).
- • ویراسباز: رابط تحت وب دارد و مستقل از سیستمعامل است (در تمامی سیستمعاملها قابل استفاده است).
- • مجموعه زبانی مایکروسافت: Microsoft Windows
- • Aspell و Hunspell: Microsoft Windows and Unix-like OSes (using mono).
- امکان عملکرد در مایکروسافت وُرد:
- • ویراستیار: دارد.
- • ویراسباز: ندارد.
- • مجموعه زبانی مایکروسافت: دارد.
- • Aspell و Hunspell: ندارد.
جدول زیر، به طور خلاصه به مقایسه محصولات نامبرده بر اساس قابلیتهای مطرح شده میپردازد.
ویراستیار، اولین تجربه از خطایاب املایی در لایه صرف زبان بوده است که قابلیت پوشش کامل ساختواژه زبان فارسی را دارا است. این نرمافزار خدمات دیگری همچون مبدل تقویم و تاریخ، تصحیح علائم نگارشی و تبدیل پینگلیش به فارسی را نیز ارائه میکند. با این حال، ویراستیار نیازمند بهبود و تکمیل است تا نیازهای کاربران را در حوزه نگارش صحیح فارسی بهتر و بیشتر برطرف سازد. تکمیل و غنیتر کردن واژهنامه ویراستیار میتواند گامی مؤثر در بهبود عملکرد و پوشش آن باشد. هم اکنون تیم توسعه ویراستیار در حال مطالعه بر روی تحلیل پردازشی نحو زبان فارسی هستند و امید است نسخه دوم ویراستیار بتواند خطاهای نحوی در نگارش فارسی را نیز پوشش دهد.