برای فارسی ما و مشکلات آن
فرض کنید که ما متنی را روی کاغذ داریم و می خواهیم آن را وارد رایانه کنیم. اولین روشی که به ذهن می رسد این است که متن را به تایپیست بدهیم تا با کامپیوتر تایپ کند. امّا آیا می شود عین همان متن را وارد رایانه بکنیم تا نیازی به تایپ نباشد؟ البته دستگاه « اسکنر » می تواند تصویری از آن متن را وارد رایانه کند، تا اینجا بخشی از مشکل ما حل شده است. امّا رایانه که نه عقلی دارد و نه « زبان » می فهمد، نمی تواند حروف و کلمات را از هم تشخیص دهد. مثلا ً اگر از کامپیوتر بخواهیم به ما بگوید که در متن اسکن شده کلمۀ « علی » چند بار آمده است، بی آنکه شرمنده شود، می گوید نمی توانم تشخیص بدهم! در واقع این « تصویر دیجیتال شده » باید به « تصویر قابل پردازش » تبدیل شود. موضوع اصلی OCR همین است. OCR سرنام اصطلاحی است که صورت کامل آن در واژه نامه های انگلیسی به دو صورت آمده است:
- Optical Character Recognition
- Optical Character Reader
● انواع OCR در زبان های دیگر، به ویژه زبان هائی که با حروف لاتینی نوشته می شوند، سالهاست که از OCR استفاده می شود. امّا در ایران تازه دو سه سالی است که به فکر استفاده از OCR در زبان فارسی افتاده ایم. و امّا OCR چند نوع است: یا تایپی است یا دست نویس. یعنی یا باید یک متن قبلا ً تایپ شده را ( مثل کتابها و روزنامه های چندین سال قبل، یا حتی متنی را که فایل تایپی آن موجود نیست و فقط پرینت آن را داریم ) وارد رایانه کنیم، یا متن دست نویس را. متن های دست نویس هم به دو صورت « گسسته » و « پیوسته » وجود دارند: متن « دست نویس پیوسته » مثل همان چیزهائی است که ما هرازگاهی که دلمان تنگ می شود روی کاغذ می نویسیم، یا یک نامه، یا یک قطعه شعر و ... امّا متن « دست نویس گسسته » همان نوشته هائی است که حروف آن جدا از هم و به صورت گسسته نوشته شده اند، مثل نام و نام خانوادگی که در فرم های آزمون ثبت نام، بصورت هر حرف داخل یک کادر، نوشته می شوند. طراحی OCR گسستۀ فارسی تقریبا ً در مراحل پایانی کار قرار دارد ولی، OCR پیوسته ظاهرا ً سالهای زیادی کار می برد.● فارسی ما و مشکلات آن قبل از اینکه به مراحل دیگر OCR بپردازیم، لازم است اندکی هم به مشکلات خط فارسی ــ یا در واقع ویژگی های این خط ــ بپردازیم. اول اینکه ما در فارسی حروف را به صورت چسبیده و پیوسته می نویسیم و این کار برای تشخیص حرف به حرف نوشته از سوی رایانه ( که قرار است در مراحل بعدی آن را تایپ کند ) بسیار مشکل است. تصور کنید که همین کلمۀ سادۀ « است » را به حالت های مختلف می شود نوشت: یکی برای « س » دندانه می گذارد، یکی نمی گذارد، یکی آن را می کشد و یکی نمی کشد و... حالا اگر همین صورت های مختلف « س » به « ت » هم بچسبند، تشخیص حروف برای ما انسان ها هم سخت می شود، چه رسد به رایانه.● شباهت حروف مشکل دیگر خط ما این است که حرفهای فارسی بسیار به هم شبیه اند. مثلا ً در نظر بگیرید که تفاوت « ر » با « ز » با « ذ » یا « ب » با « ت » تنها در یک نقطه است، و چون نقطه جزء بسیار کوچکی است، اگر یک خط یا حتی یک لک کوچک روی کاغذ بیفتد، تشخیص حروف از هم بسیار دشوار می شود و دردسر جدی برای بازشناسی حروف توسط رایانه ایجاد می کند. اینها تازه مشکلات خط فارسی است. دربارۀ اعداد فارسی هم این مشکل وجود دارد: صفر ما یک نقطۀ کوچک است که می تواند رایانه را به اشتباه بیندازد؛ اعداد ۴، ۳، ۲، ۱ هم بسیار به هم شبیه هستند و تنها تفاوتشان یک دندانۀ کوچک است. به دلایل گفته شده OCR درمرحلۀ کنونی در کشور ما مربوط به « دست نویس های گسسته » یا متن های تایپی پیوسته است، و تا بازشناسی متن های دست نویس پیوسته توسط کامپیوتر راه زیادی در پیش است، چون در دست نویس های گسسته، اگرچه حروف به هم شباهت دارند، حداقل جدا جدا نوشته شده اند. در متن های پیوستۀ تایپی هم مشکل کشیده شدن یک حرف یا شکسته نوشته شدن حروف را نداریم. در حال حاضر هم نرم افزارهائی وجود دارد که متن دست نویس پیوسته را تبدیل به حروف جدا از هم و گسسته می کنند، ولی ضریب خطای این نرمافزارها زیاد است و به شکل صنعتی درنیامده اند.● بازشناسی حروف و الگو تا اینجا گفتیم تصویر صفحه ای که در آن حروف بطور جدا جدا ( هر حرف داخل یک کادر ) نوشته شده است، به وسیلۀ اسکن وارد رایانه می شود. مرحلۀ بعدی این است که حروف بازشناسی شوند، یعنی مکان آنها از دیگر خطوط ( مثل خطوط کادری که داخل آن نوشته شده ) بازشناسی شود، و اگر متن پیوستۀ تایپی است، حروف جدا شوند و زوائد تصویر حذف شود. مثلا ً اگر دانش آموزی « س » را به گونه ای نوشت که بیرون از کادر بود، به رایانه بفهمانیم که بی دقتی شده است؛ او باید همان حرف داخل کادر را بخواند. در مرحلۀ بعدی که « بازشناسی الگو » نام دارد، با تعدادی شرط می شود فهمید که مثلا ً حرفی « الف » است یا نه، و رایانه تشخیص می دهد که حرف « پ » است یا « ب ». برای این تشخیص لازم است که تصویر حرف « الف » با الف های نمونه ــ که قبلا ً به رایانه داده شده است ــ منطبق شود. الفبای نمونه قبلا ً از روی یک مجموعۀ بزرگ آموزشی تهیه شده و ویژگی های مشترک از آن استخراج شده است. امّا از آنجا که تنوع صورت های نوشتاری یک حرف به صورت دست نویس بسیار زیاد است، مدلی آماری استخراج می شود که در آن شباهت ویژگی های استخراج شدۀ قبلی با نمونۀ ورودی به رایانه بررسی می شود. در اینجا « بازشناسی الگو » با روش های آماری انجام می شود که روش معمول در سیستم های OCR است. اگر فکر می کنید که کار تمام شده است در اشتباهید، چون تازه می رسیم به دنبالۀ حروف. مثلا ً اگر کسی همان حرف « س » را با دنباله بنویسد، رایانه باید تشخیص دهد که این حرف فقط « س » است، یا مثلا ً « ی » هم به آن چسبیده است.● مدل سازی یا پردازش زبانی مرحلۀ بعدی « مدل سازی زبانی » یا « پردازش زبانی » نام دارد. حروف به هم چسبیده، که کلمه را درست می کنند، باید معنی دار یا شناخته شده باشند. در این مرحله بررسی می شود که چه کلماتی در زبان وجود دارد؟ چه ترکیب هائی از کلمات مجاز است؟ و... البته در مراحل پیشرفته تر، مدل سازی گرامری ( دستور زبان ) و مدل سازی معنائی هم وجود دارد که تشخیص می دهد جمله از لحاظ دستوری و معنائی درست است یا بی مفهوم است. اما در OCR گسسته ــ که بیشتر برای ثبتنام استفاده شده ــ شباهت یک کلمه به نام، نام خانوادگی، شهر و ... کافی است. برای تشخیص ترکیب های مجاز یک کلمه یا معنی دار بودن یک کلمه نیز به تهیۀ بانک های اطلاعاتی ( Data base ) نیاز داریم. در این بانکها مثلا ً تمام نامهای کوچک و بزرگ ایرانیان قبلا ً جمع آوری شده است و هنگام تطبیق یک کلمه با آن مشخص می شود که رایانه حروف آن را درست تشخیص داده یا نه. بنابراین نقش این بانک اطلاعاتی بسیار مهم است، چون اگر نامی در آن ثبت نشده باشد، کلمه ای که آن نام را شامل شود، بطور خودکار از برنامۀ OCR حذف می شود یا پیغام می آید که: « این کلمه اشتباه است » در صورتیکه ممکن است مثلا ً نام « هشام » در بین نام های ایرانی وجود داشته باشد، ولی قبلا ً در بانک اطلاعاتی ثبت نشده باشد.● بانکهای ما و دیگران مهندس « رزازی » دربارۀ مشکل بانکهای اطلاعاتی در زبان فارسی می گوید: « در دنیا برای توسعۀ OCR و ارزیابی آن، بانکهای اطلاعاتی استاندارد ساخته شده است که در آنها همۀ کلمات وجود دارند، یعنی بانک هم مشکل دیجیتال کلمه را دارد، و هم تصویرش را. امّا برای زبان فارسی، این بانکهای اطلاعاتی چه برای ارزیابی و چه برای توسعه، استاندارد شده نیست. در واقع هر کسی برای خودش یک بانک اطلاعاتی می سازد، و این نمونه های متفاوت مشکلاتی را ایجاد می کند. مثلا ً برای ثبت نام دانش آموزانی که در آزمون مدارس تیزهوشان شرکت کرده بودند، یک بانک اطلاعاتی حاوی نام های فارسی، از روی اطلاعات فرم های سالهای قبل، تهیه شد که از روی آن کلماتی که خیلی شبیه به نام های فارسی بودند تشخیص داده می شد. مثلا ً اگر رایانه کلمه ای را « مصیبت » تشخیص داد، بر اساس بانک اطلاعاتی معلوم می شود که « مصیب » بوده است که یک نام ایرانی است.● علی، ولی، قلی ... و سیب نکتۀ دیگر این است که یک بانک اطلاعاتی باید شامل تعدادی کلمات خام باشد، بلکه « بسامد » آن واژگان، یعنی میزان استعمال و تکرار کلمات در زبان و مشخصات آماری آنها هم باید ثبت شده باشد، و الا کارائی زیادی ندارد. مثلا ً « علی » نامی است که شباهت زیادی به « ولی » و « قلی » دارد. کارهای آماری در بانک اطلاعاتی باید طوری انجام شده باشد که تعداد « علی » بیشتر باشد، تا و بعد نوبت « ولی » و « قلی » برسد، چون درصد بسامدی « علی » به لحاظ آماری و کاربرد در میان نام ها بیشتر است. در OCR فارسی گسسته، اگر فقط مربوط به نامها و نام خانوادگی باشد، کار ساده تر است از حالتی که در OCR پیوسته وجود دارد. چون در OCR پیوسته هر کلمه ای ممکن است وجود داشته باشد مثل « سیب »، امّا در بانک اطلاعاتی نامها همه می دانیم که سیب نام یک شخص نیست بلکه نام یک میوه است! بنابراین در OCR همواره سعی می شود که درصد خطا کاهش یابد، تا کلمات در حد ممکن درست تشخیص داده شوند. اگرچه طراحان هنوز به صد در صد صحت نرسیده اند، ولی نگران نتایج آزمون خود نباشید، چون تمامی اطلاعات مربوط به شما چندین بار کنترل می شوند و از ساز و کار reject ( یا مردودی ) در رایانه هم استفاده می شود. در این روش اگر رایانه نتوانست کلمه ای را تشخیص دهد، می فهمد که نفهمیده است و در خروجی اش می آورد که: « من این کلمه را نفهمیده ام » و کار به سیستم دستی می رود و در آنجا تصحیح می شود. این فرایند در پست خیلی کارائی دارد. در هر جای دنیا که تفکیک نامه ها و دیگر مرسولات پستی به وسیلۀ OCR انجام می شود، بعضی از نامه ها در سیستم کامپیوتری وارد ساز و کار « مردودی » می شوند و بطور دستی مورد بررسی مجدد قرار می گیرند. هم اکنون در سطح محدودی از OCR در پست کشور ما نیز استفاده می شود، چون در پست، هم کد پستی چند رقمی و دیگر اطلاعات به صورت گسسته و داخل کادرهائی نوشته می شود، و کار آسان تر است. در مورد خطای OCR در تشخیص کلمات، مسئولان شرکت « پایا » نظر جالبی دارند: « حتی با تعبیۀ سیستم مردودی ( reject ) هم ممکن است خطائی در تشخیص کلمات وجود داشته باشد. باید در نظر داشته باشیم که هیچ سیستم پردازشگری ( از جمله انسان ) بدون خطا نیست. نکتۀ مهم این است که یک سیستم ماشینی درصد خطای کمتری نسبت به انسان داشته باشد تا جایگزین خوبی برای انسان باشد. مسئله این نیست که خطا را به صفر برسانیم. هر قدر که فناوری جلوتر می رود، میزان خطا هم بیشتر کاهش می یابد.» مدیر شرکت « دوران نوین » هم به گونه ای دیگر به همین موضوع اشاره می کند: « انتظار ما از مسئولان طرح « تکفا » آن است که با موضوع OCR واقع بینانه تر برخورد شود، و در بحث مربوط به هزینه های پروژه و انتظاراتی که از OCR می رود، واقعیت ها در نظر گرفته شود. دیدگاه کنونی مسئولان تکفا آن است که کل مشکل « خطا » تا ۱۰۰ درصد حل شود، در حالیکه فکر می کنم حل مسائل مربوط به هوش مصنوعی نیاز به روش تدریجی دارد. مثلا ً در زبان عربی هم، نرم افزار « صخر » در نسخۀ اول خود فقط تا حدود ۴۰ درصد دقت داشت، در حالیکه اکنون پس از گذشت ۱۳ سال از اولین نسخۀ آن، دقت به مرز ۹۸ درصد رسیده است.» همانطور که اشاره شد از OCR در ثبتنام آزمون «سازمان ملی استعدادهای درخشان» در سالهای ۸۱ و ۸۲ استفاده شد که از طریق آن ۰۰۰,۴۴۰ نفر به طور ماشینی ثبتنام شدند. این روش باعث شد که در سال ۸۱ (نمونه اول) ۴۵ درصد در هزینهها و ۲۵ درصد در زمان ثبتنام صرفهجویی شود. در سال بعد (۸۲) این رقم به ۵۰ درصد رسید. به نظر میآید که در چند سال آینده و با پیشرفت OCR فارسی و کاهش هر چه بیشتر خطای آن، در آزمونهای بزرگتری مانند آزمون سراسری دانشگاهها نیز بتوان از آن استفاده کرد.● سرنوشت OCR دست نویس در مورد OCR پیوستۀ دست نویس نیز روند کار به همان صورتی است که شرح دادیم، امّا آنچه کار را دشوارتر می کند، قطعه بندی و جدا جدا کردن حروف به هم چسبیده و تشخیص آنهاست. اگر این روند طی شود، این امید وجود دارد که روزی از OCR پیوستۀ دست نویس فارسی هم در سطح گسترده ای استفاده شود. البته OCR پیوستۀ دست نویس حتی در زبان انگلیسی هم هنوز به کاربرد وسیع و عملی نرسیده است. مهندس « رزازی » در این مورد می گوید: « OCR انگلیسی در سیستم عامل windows وجود دارد که همراه با office فروخته می شود، ولی فکر نکنید که نامه های اداری انگلیسی که با دست نویس نوشته شده اند همه با OCR تایپ می شوند. این کار برای به نتیجه رسیدن به حداقل یک روند ۱۰ ساله را باید طی کند. OCR فارسی یک مرحله عقب تر است، پس زمان بیشتری می برد.» مهندس « صدیق »، مدیرعامل شرکت « پایا » هم می گوید: « همین OCR فارسی گسسته هم تا چند سال پیش یک رؤیا بود، ولی دیدیم که محقق شده است و به مرور پیشرفته تر هم خواهد شد. بنابراین طراحی OCR پیوستۀ فارسی هم، اگرچه سالها طول می کشد، ولی مطمئنا ً به نتیجه خواهد رسید. این طرح یک طرح تحقیقاتی است که در دانشگاه ها دنبال می شود و هنوز به یک محصول صنعتی قابل استفاده در سطح کلان و کاربردی برای عموم نرسیده است. ولی در حال حاضر نمونه های دانشگاهی و آزمایشگاهی آن در داخل کشور وجود دارد و موضوع رسالۀ دکتری برخی از دانشجویان است.» بنابراین بین ۱۰ تا ۲۰ سال آینده، آنگونه که مسئولان شرکت « پایا » می گویند، OCR پیوستۀ دست نویس فارسی هم وارد بازار خواهد شد. دکتر فیلی هم در پاسخ به این سؤال که « آیا طراحی OCR پیوستۀ فارسی روزی تحقق خواهد یافت؟ » پاسخ می دهد: « بله ولی به تدریج. » به هر حال بر اساس قرارداد « تکفا » با شرکت های ایرانی، تا کمتر از یک ماه دیگر، نسخۀ نهائی ( البته نه صد در صد تکمیل شده ) OCR فارسی دست نویس گسسته و تایپی پیوسته ارائه خواهد شد. مدیر شرکت « دوران نوین » در این مورد می گوید: « پروژۀ OCR گسسته در مراحل پایانی خود قرار دارد ولی دارای مشکلاتی در تشخیص انواع اسکنرها و انواع فونت هاست که در حال رفع آن هستیم. این نرم افزار در حال حاضر امکان تشخیص فونت های تایپی فارسی با دقت زیاد را دارد، ولی مشکل جدی آن است که با اسکنرهای مختلف نتایج نامناسبی می دهد.» وی از اهمیت این طرح در بُعد کلان ملی هم می گوید: « با توجه به این که مشکل OCR برای بسیاری از زبان های دنیا مانند انگلیسی عملا ً حل شده است، اگر در کشور ما هم به نتیجۀ نهائی برسد در افزایش سطح اطلاعات فارسی در دنیای دیجیتالی امروز ( از جمله در اینترنت ) بسیار اهمیت خواهد داشت.