Wednesday, 2006 August 09
نویسنده:
Hamid تعداد بازدید: 7782 بار
#مقالات متفرقه امتیاز متوسط: امتیازی داده نشده است
فرض كنید كه ما متنی را روی كاغذ داریم و میخواهیم آن را وارد رایانه
كنیم. اولین روشی كه به ذهن میرسد این است كه متن را به تایپیست بدهیم تا
با كامپیوتر تایپ كند. اما آیا میشود عین همان متن را وارد رایانه بكنیم
تا نیازی به تایپ نباشد؟
البته دستگاه «اسكنر» میتواند تصویری از آن متن را وارد رایانه كند، تا
اینجا بخشی از مشكل ما حل شده است. اما رایانه كه نه عقلی دارد و نه
«زبان» میفهمد، نمیتواند حروف و كلمات را از هم تشخیص دهد.
مثلاً اگر از كامپیوتر بخواهیم به ما بگوید كه در متن اسكنشده كلمة «علی»
چند بار آمده است، بیآنكه شرمنده شود، میگوید نمیتوانم تشخیص بدهم! در
واقع این «تصویر دیجیتالشده» باید به «تصویر قابل پردازش» تبدیل شود.
موضوع اصلی OCR همین است.
OCR سرنام اصطلاحی است كه صورت كامل آن در واژهنامههای انگلیسی به دو صورت آمده است:
1. Optical Character Recognition
2. Optical Character Reader
انواع OCR
در زبانهای دیگر، به ویژه زبانهایی كه با حروف لاتینی نوشته میشوند،
سالهاست كه از OCR استفاده میشود. اما در ایران تازه دو سه سالی است كه
به فكر استفاده از OCR در زبان فارسی افتادهایم.
و اما OCR چند نوع است: یا تایپی است یا دستنویس. یعنی یا باید یك متن
قبلاً تایپ شده را (مثل كتابها و روزنامههای چندین سال قبل، یا حتی متنی
را كه فایل تایپی آن موجود نیست و فقط پرینت آن را داریم) وارد رایانه
كنیم، یا متن دستنویس را.
متنهای دستنویس هم به دو صورت «گسسته» و «پیوسته» وجود دارند: متن
«دستنویس پیوسته» مثل همان چیزهایی است كه ما هرازگاهی كه دلمان تنگ
میشود روی كاغذ مینویسیم، یا یك نامه، یا یك قطعه شعر و ... اما متن
«دستنویس گسسته» همان نوشتههایی است كه حروف آن جدا از هم و به صورت
گسسته نوشته شدهاند، مثل نام و نامخانوادگی كه در فرمهای آزمون
ثبتنام، به صورت هر حرف داخل یك كادر، نوشته میشوند.
طراحی OCR گسستة فارسی تقریباً در مراحل پایانی كار قرار دارد ولی، OCR پیوسته ظاهراً سالهای زیادی كار میبرد.
فارسی ما و مشكلات آن
قبل از اینكه به مراحل دیگر OCR بپردازیم، لازم است اندكی هم به مشكلات خط
فارسی ــ یا در واقع ویژگیهای این خط ــ بپردازیم. اول اینكه ما در فارسی
حروف را به صورت چسبیده و پیوسته مینویسیم و این كار برای تشخیص حرف به
حرف نوشته از سوی رایانه (كه قرار است در مراحل بعدی آن را تایپ كند)
بسیار مشكل است. تصور كنید كه همین كلمه ساده «است» را به حالتهای مختلف
میشود نوشت: یكی برای «س» دندانه میگذارد، یكی نمیگذارد، یكی آن را
میكشد و یكی نمیكشد و... حالا اگر همین صورتهای مختلف «س» به «ت» هم
بچسبند، تشخیص حروف برای ما انسانها هم سخت میشود، چه رسد به رایانه.
شباهت حروف
مشكل دیگر خط ما این است كه حرفهای فارسی بسیار به هم شبیهاند. مثلاً در
نظر بگیرید كه تفاوت «ر» با «ز» با «ذ» یا «ب» با «ت» تنها در یك نقطه
است، و چون نقطه جزء بسیار كوچكی است، اگر یك خط یا حتی یك لك كوچك روی
كاغذ بیفتد، تشخیص حروف از هم بسیار دشوار میشود و دردسر جدی برای
بازشناسی حروف توسط رایانه ایجاد میكند. اینها تازه مشكلات خط فارسی است.
دربارة اعداد فارسی هم این مشكل وجود دارد: صفر ما یك نقطه كوچك است كه
میتواند رایانه را به اشتباه بیندازد؛ اعداد 4، 3، 2، 1 هم بسیار به هم
شبیه هستند و تنها تفاوتشان یك دندانه كوچك است.
به دلایل گفته شده OCR درمرحلة كنونی در كشور ما مربوط به «دستنویسهای
گسسته» یا متنهای تایپی پیوسته است، و تا بازشناسی متنهای دستنویس
پیوسته توسط كامپیوتر راه زیادی در پیش است، چون در دستنویسهای گسسته،
اگرچه حروف به هم شباهت دارند، حداقل جداجدا نوشته شدهاند. در متنهای
پیوسته تایپی هم مشكل كشیده شدن یك حرف یا شكسته نوشته شدن حروف را نداریم.
البته به گفته مسئولان شركت «پایا» در حال حاضر هم نرمافزارهایی وجود
دارد كه متن دستنویس پیوسته را تبدیل به حروف جدا ازهم و گسسته میكنند،
ولی ضریب خطای این نرمافزارها زیاد است و به شكل صنعتی درنیامدهاند.
بازشناسی حروف و الگو
تا اینجا گفتیم تصویر صفحهای كه در آن حروف به طور جداجدا (هر حرف داخل
یك كادر) نوشته شده است، به وسیلة اسكن وارد رایانه میشود. مرحلة بعدی
این است كه حروف بازشناسی شوند، یعنی مكان آنها از دیگر خطوط (مثل خطوط
كادری كه داخل آن نوشته شده) بازشناسی شود، و اگر متن پیوسته تایپی است،
حروف جدا شوند و زواید تصویر حذف شود. مثلاً اگر دانشآموزی «س» را به
گونهای نوشت كه بیرون از كادر بود، به رایانه بفهمانیم كه بیدقتی شده
است او باید همان حرف داخل كادر را بخواند.
در مرحلة بعدی كه «بازشناسی الگو» نام دارد، با تعدادی شرط میشود فهمید
كه مثلاً حرفی «الف» است یا نه، و رایانه تشخیص میدهد كه حرف «پ» است یا
«ب». برای این تشخیص لازم است كه تصویر حرف «الف» با الفهای نمونه ــ كه
قبلاً به رایانه داده شده است ــ منطبق شود. الفبای نمونه قبلاً از روی یك
مجموعه بزرگ آموزشی تهیه شده و ویژگیهای مشترك از آن استخراج شده است.
اما از آنجا كه تنوع صورتها نوشتاری یك حرف به صورت دستنویس بسیار زیاد
است، مدلی آماری استخراج میشود كه در آن شباهت ویژگیهای استخراج شدة
قبلی با نمونه ورودی به رایانه بررسی میشود. در اینجا «بازشناسی الگو» با
روشهای آماری انجام میشود كه روش معمول در سیستمهای OCR است.
اگر فكر میكنید كه كار تمام شده است در اشتباهید، چون تازه میرسیم به
دنبالة حروف. مثلاً اگر كسی همان حرف «س» را با دنباله بنویسد، رایانه
باید تشخیص دهد كه این حرف فقط «س» است، یا مثلاً «ی» هم به آن چسبیده است.
مدلسازی یا پردازش زبانی
مرحله بعدی «مدلسازی زبانی» یا «پردازش زبانی» نام دارد. حروف به هم
چسبیده، كه كلمه را درست میكنند، باید معنیدار یا شناختهشده باشند. در
این مرحله بررسی میشود كه چه كلماتی در زبان وجود دارد؟ چه تركیبهایی از
كلمات مجاز است؟ و... البته در مراحل پیشرفتهتر، مدلسازی گرامری (دستور
زبان) و مدلسازی معنایی هم وجود دارد كه تشخیص میدهد جمله از لحاظ
دستوری و معنایی درست است یا بیمفهوم است. اما در OCR گسسته ــ كه بیشتر
برای ثبتنام استفاده شده ــ شباهت یك كلمه به نام، نام خانوادگی، شهر و
... كافی است.
برای تشخیص تركیبهای مجاز یك كلمه یا معنیدار بودن یك كلمه نیز به تهیة
بانكهای اطلاعاتی (Data base) نیاز داریم. در این بانكها مثلاً تمام
نامهای كوچك و بزرگ ایرانیان قبلاً جمعآوری شده است و هنگام تطبیق یك
كلمه با آن مشخص میشود كه رایانه حروف آن را دست تشخیص داده یا نه.
بنابراین نقش این بانك اطلاعاتی بسیار مهم است، چون اگر نامی در آن ثبت
نشده باشد، كلمهای كه آن نام را شامل شود، به طور خودكار از برنامه OCR
حذف میشود یا پیغام میآید كه: «این كلمه اشتباه است» در صورتی كه ممكن
است مثلاً نام «هشام» در بین نامهای ایرانی وجود داشته باشد، ولی قبلاً
در بانك اطلاعاتی ثبت نشده باشد.
بانكهای ما و دیگران
مهندس «رزازی» دربارة مشكل بانكهای اطلاعاتی در زبان فارسی میگوید: «در
دنیا برای توسعة OCR و ارزیابی آن، بانكهای اطلاعاتی استاندارد ساخته شده
است كه در آنها همة كلمات وجود دارند، یعنی بانك هم مشكل دیجیتال كلمه را
دارد، و هم تصویرش را. اما برای زبان فارسی، این بانكهای اطلاعاتی چه
برای ارزیابی و چه برای توسعه، استاندارد شده نیست. در واقع هر كسی برای
خودش یك بانك اطلاعاتی میسازد، و این نمونههای متفاوت مشكلاتی را ایجاد
میكند. مثلاً برای ثبتنام دانشآموزانی كه در آزمون مدارس تیزهوشان شركت
كرده بودند، یك بانك اطلاعاتی حاوی نامهای فارسی، از روی اطلاعات فرمهای
سالهای قبل، تهیه شد كه از روی آن كلماتی كه خیلی شبیه به نامهای فارسی
بودند تشخیص داده میشد. مثلاً اگر رایانه كلمهای را «مصیبت» تشخیص داد،
براساس بانك اطلاعاتی معلوم میشود كه «مصیب» بوده است كه یك نام ایرانی
است.
علی، ولی، قلی ... و سیب
نكتة دیگر این است كه یك بانك اطلاعاتی باید شامل تعدادی كلمات خام باشد،
بلكه «بسامد» آن واژگان، یعنی میزان استعمال و تكرار كلمات در زبان و
مشخصات آماری آنها هم باید ثبت شده باشد، والا كارایی زیادی ندارد. مثلاً
«علی» نامی است كه شباهت زیادی به «ولی» و «قلی» دارد. كارهای آماری در
بانك اطلاعاتی باید طوری انجام شده باشد كه تعداد «علی» بیشتر باشد، تا و
بعد نوبت «ولی» و «قلی» برسد، چون درصد بسامدی «علی» به لحاظ آماری و
كاربرد در میان نامهای بیشتر است.
در OCR فارسی گسسته، اگر فقط مربوط به نامها و نامخانوادگی باشد، كار
سادهتر است از حالتی كه در OCR پیوسته وجود دارد. چون در OCR پیوسته هر
كلمهای ممكن است وجود داشته باشد مثل «سیب»، اما در بانك اطلاعاتی نامها
همه میدانیم كه سیب نام یك شخص نیست بلكه نام یك میوه است! بنابراین در
OCR همواره سعی میشود كه درصد خطا كاهش یابد، تا كلمات در حد ممكن درست
تشخیص داده شوند. اگرچه طراحان هنوز به صددرصد صحت نرسیدهاند، ولی نگران
نتایج آزمون خود نباشید، چون تمامی اطلاعات مربوط به شما چندین بار كنترل
میشوند و از سازوكار reject (یا مردودی) در رایانه هم استفاده میشود. در
این روش اگر رایانه نتوانست كلمهای را تشخیص دهد، میفهمد كه نفهمیده است
و در خروجیاش میآورد كه: «من این كلمه را نفهمیدهام» و كار به سیستم
دستی میرود و در آنجا تصحیح میشود. این فرایند در پست خیلی كارایی دارد.
در هر جای دنیا كه تفكیك نامهها و دیگر مرسولات پستی به وسیلة OCR انجام
میشود، بعضی از نامهها در سیستم كامپیوتری وارد سازوكار «مردودی»
میشوند و به طور دستی مورد بررسی مجدد قرار میگیرند. هماكنون در سطح
محدودی از OCR در پست كشور ما نیز استفاده میشود، چون در پست هم كد پستی
چندرقمی و دیگر اطلاعات به صورت گسسته و داخل كادرهایی نوشته میشود، و
كار آسانتر است.
در مورد خطای OCR در تشخیص كلمات، مسئولان شركت «پایا» نظر جالبی دارند:
«حتی با تعبیة سیستم مردودی (reject) هم ممكن است خطایی در تشخیص كلمات
وجود داشته باشد. باید در نظر داشته باشیم كه هیچ سیستم پردازشگری (از
جمله انسان) بدون خطا نیست. نكته مهم این است كه یك سیستم ماشینی درصد
خطای كمتری نسبت به انسان داشته باشد تا جایگزین خوبی برای انسان باشد.
مسئله این نیست كه خطا را به صفر برسانیم. هر قدر كه فناوری جلوتر میرود،
میزان خطا هم بیشتر كاهش مییابد.»
مدیر شركت «دوران نوین» هم به گونهای دیگر به همین موضوع اشاره میكند:
«انتظار ما از مسئولان طرح «تكفا» آن است كه با موضوع OCR واقعبینانهتر
برخورد شود، و در بحث مربوط به هزینههای پروژه و انتظاراتی كه از OCR
میرود، واقعیتها در نظر گرفته شود. دیدگاه كنونی مسئولان تكفا آن است كه
كل مشكل «خطا» تا 100درصد حل شود، در حالی كه فكر میكنم حل مسائل مربوط
به هوش مصنوعی نیاز به روش تدریجی دارد. مثلاً در زبان عربی هم، نرمافزار
«صخر» در نسخة اول خود فقط تا حدود 40درصد دقت داشت، در حالی كه اكنون پس
از گذشت 13 سال از اولین نسخه آن دقت به مرز 98 درصد رسیده است.»
همانطور كه اشاره شد از OCR در ثبتنام آزمون «سازمان ملی استعدادهای
درخشان» در سالهای 81 و 82 استفاده شد كه از طریق آن 000,440 نفر به طور
ماشینی ثبتنام شدند. این روش باعث شد كه در سال 81 (نمونه اول) 45 درصد
در هزینهها و 25 درصد در زمان ثبتنام صرفهجویی شود. در سال بعد (82)
این رقم به 50 درصد رسید. نرمافزاری كه در این آزمونها مورد استفاده
قرار گرفت برای هر كدام از موارد صحت بازشناسی متفاوتی داشت و در مجموع
كار آن خوب بود (به جدول توجه كنید):
به نظر میآید كه در چند سال آینده و با پیشرفت OCR فارسی و كاهش هر چه
بیشتر خطای آن، در آزمونهای بزرگتری مانند آزمون سراسری دانشگاهها نیز
بتوان از آن استفاده كرد.
سرنوشت OCR دستنویس
در مورد OCR پیوسته دستنویس نیز روند كار به همان صورتی است كه شرح
دادیم، اما آنچه كار را دشوارتر میكند، قطعهبندی و جداجدا كردن حروف به
هم چسبیده و تشخیص آنهاست. اگر این روند طی شود، این امید وجود دارد كه
روزی از OCR پیوسته دستنویس فارسی هم در سطح گستردهای استفاده شود.
البته OCR پیوسته دستنویس حتی در زبان انگلیسی هم هنوز به كاربرد وسیع و
عملی نرسیده است. مهندس «رزازی» دراین مورد میگوید: « OCRانگلیسی در
سیستم عامل windows وجود دارد كه همراه با office فروخته میشود، ولی فكر
نكنید كه نامههای اداری انگلیسی كه با دستنویس نوشته شدهاند همه با OCR
تایپ میشوند. این كار برای به نتیجه رسیدن به حداقل یك روند 10 ساله را
باید طی كند. OCR فارسی یك مرحله عقبتر است، پس زمان بیشتری میبرد.»
مهندس «صدیق»، مدیرعامل شركت «پایا» هم میگوید: «همین OCR فارسی گسسته هم
تا چند سال پیش یك رؤیا بود، ولی دیدیم كه محقق شده است و به مرور
پیشرفتهتر هم خواهد شد. بنابراین طراحی OCR پیوسته فارسی هم، اگرچه
سالها طول میكشد، ولی مطمئناً به نتیجه خواهد رسید. این طرح یك طرح
تحقیقاتی است كه در دانشگاهها دنبال میشود و هنوز به یك محصول صنعتی
قابل استفاده در سطح كلان و كاربردی برای عموم نرسیده است. ولی در حال
حاضر نمونههای دانشگاهی و آزمایشگاهی آن در داخل كشور وجود دارد و موضوع
رساله دكتری برخی از دانشجویان است.»
بنابراین بین 10 تا 20 سال آینده، آنگونه كه مسئولان شركت «پایا» میگویند، OCR پیوسته دستنویس فارسی هم وارد بازار خواهد شد.
دكتر فیلی هم در پاسخ به این سؤال كه «آیا طراحی OCR پیوستة فارسی روزی تحقق خواهد یافت؟» پاسخ میدهد: «بله ولی به تدریج.»
به هر حال براساس قرارداد «تكفا» با شركتهای ایرانی، تا كمتر از یك ماه
دیگر، نسخهنهایی (البته نه صددرصد تكمیلشده) OCR فارسی دستنویس گسسته و
تایپی پیوسته ارائه خواهد شد. مدیر شركت «دوران نوین» در این مورد
میگوید: «پروژة OCR گسسته در مراحل پایانی خود قرار دارد ولی دارای
مشكلاتی در تشخیص انواع اسكنرها و انواع فونتهاست كه در حال رفع آن
هستیم. این نرمافزار در حال حاضر امكان تشخیص فونتهای تایپی فارسی با
دقت زیاد را دارد، ولی مشكل جدی آن است كه با اسكنرهای مختلف نتایج
نامناسبی میدهد.» وی از اهمیت این طرح در بعد كلان ملی هم میگوید: «با
توجه به این كه مشكل OCR برای بسیاری از زبانهای دنیا مانند انگلیسی
عملاً حل شده است، اگر در كشور ما هم به نتیجة نهایی برسد در افزایش سطح
اطلاعات فارسی در دنیای دیجیتالی امروز (از جمله در اینترنت) بسیار اهمیت
خواهد داشت.