OCR چیست؟

۱۳۸۸/۰۷/۲۷ | برچسب‌ها: | 0نظرات

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

● OCR سرنام اصطلاحی است که صورت کامل آن در واژه‌نامه‌های انگلیسی به دو صورت آمده است:
۱. Optical Character Recognition
۲. Optical Character Reader

● انواع OCR
در زبان‌های دیگر، به ویژه زبان‌هایی که با حروف لاتینی نوشته می‌شوند، سال‌هاست که از OCR استفاده می‌شود. اما در ایران تازه دو سه سالی است که به فکر استفاده از OCR در زبان فارسی افتاده‌ایم.
و اما OCR چند نوع است: یا تایپی است یا دست‌نویس. یعنی یا باید یک متن قبلاً تایپ شده را (مثل کتاب‌ها و روزنامه‌های چندین سال قبل، یا حتی متنی را که فایل تایپی آن موجود نیست و فقط پرینت آن را داریم) وارد رایانه کنیم، یا متن دست‌نویس را. متن‌های دست‌نویس هم به دو صورت «گسسته» و «پیوسته» وجود دارند: متن «دست‌نویس پیوسته» مثل همان چیزهایی است که ما هرازگاهی که دلمان تنگ می‌شود روی کاغذ می‌نویسیم، یا یک نامه، یا یک قطعه شعر و ... اما متن «دست‌نویس گسسته» همان نوشته‌‌هایی است که حروف آن جدا از هم و به صورت گسسته نوشته شده‌اند، مثل نام و نام‌خانوادگی که در فرم‌های آزمون ثبت‌نام، به صورت هر حرف داخل یک کادر، نوشته می‌شوند. طراحی OCR گسستهٔ فارسی تقریباً در مراحل پایانی کار قرار دارد ولی، OCR پیوسته ظاهراً سال‌های زیادی کار می‌برد.

● فارسی ما و مشکلات آن
قبل از اینکه به مراحل دیگر OCR بپردازیم، لازم است اندکی هم به مشکلات خط فارسی ــ یا در واقع ویژگی‌های این خط ــ بپردازیم. اول اینکه ما در فارسی حروف را به صورت چسبیده و پیوسته می‌نویسیم و این کار برای تشخیص حرف به حرف نوشته از سوی رایانه (که قرار است در مراحل بعدی آن را تایپ کند) بسیار مشکل است. تصور کنید که همین کلمه ساده «است» را به حالت‌های مختلف می‌شود نوشت: یکی برای «س» دندانه می‌گذارد، یکی نمی‌گذارد، یکی آن را می‌کشد و یکی نمی‌کشد و... حالا اگر همین صورت‌های مختلف «س» به «ت» هم بچسبند، تشخیص حروف برای ما انسان‌ها هم سخت می‌شود، چه رسد به رایانه.

● شباهت حروف
مشکل دیگر خط ما این است که حرف‌های فارسی بسیار به هم شبیه‌اند. مثلاً در نظر بگیرید که تفاوت «ر» با «ز» با «ذ» یا «ب» با «ت» تنها در یک نقطه است، و چون نقطه جزء بسیار کوچکی است، اگر یک خط یا حتی یک لک کوچک روی کاغذ بیفتد، تشخیص حروف از هم بسیار دشوار می‌شود و دردسر جدی برای بازشناسی حروف توسط رایانه ایجاد می‌کند. اینها تازه مشکلات خط فارسی است. دربارهٔ اعداد فارسی هم این مشکل وجود دارد: صفر ما یک نقطه کوچک است که می‌تواند رایانه را به اشتباه بیندازد؛ اعداد ۴، ۳، ۲، ۱ هم بسیار به هم شبیه هستند و تنها تفاوتشان یک دندانه کوچک است.
به دلایل گفته شده OCR درمرحلهٔ کنونی در کشور ما مربوط به «دست‌نویس‌های گسسته» یا متن‌های تایپی پیوسته است، و تا بازشناسی متن‌های دست‌نویس پیوسته توسط کامپیوتر راه زیادی در پیش است، چون در دست‌نویس‌های گسسته، اگرچه حروف به هم شباهت دارند، حداقل جداجدا نوشته شده‌اند. در متن‌های پیوسته تایپی هم مشکل کشیده شدن یک حرف یا شکسته نوشته شدن حروف را نداریم. البته به گفته مسئولان شرکت «پایا» در حال حاضر هم نرم‌افزارهایی وجود دارد که متن دست‌نویس پیوسته را تبدیل به حروف جدا ازهم و گسسته می‌کنند، ولی ضریب خطای این نرم‌افزارها زیاد است و به شکل صنعتی درنیامده‌اند.

● بازشناسی حروف و الگو
تا اینجا گفتیم تصویر صفحه‌ای که در آن حروف به طور جداجدا (هر حرف داخل یک کادر) نوشته شده است، به وسیلهٔ اسکن وارد رایانه می‌شود. مرحلهٔ بعدی این است که حروف بازشناسی شوند، یعنی مکان آنها از دیگر خطوط (مثل خطوط کادری که داخل آن نوشته شده) بازشناسی شود، و اگر متن پیوسته تایپی است، حروف جدا شوند و زواید تصویر حذف شود. مثلاً اگر دانش‌آموزی «س» را به گونه‌ای نوشت که بیرون از کادر بود، به رایانه بفهمانیم که بی‌دقتی شده است او باید همان حرف داخل کادر را بخواند.
در مرحلهٔ بعدی که «بازشناسی الگو» نام دارد، با تعدادی شرط می‌شود فهمید که مثلاً حرفی «الف» است یا نه، و رایانه تشخیص می‌دهد که حرف «پ» است یا «ب». برای این تشخیص لازم است که تصویر حرف «الف» با الف‌های نمونه ــ که قبلاً به رایانه داده شده است ــ منطبق شود. الفبای نمونه قبلاً از روی یک مجموعه بزرگ آموزشی تهیه شده و ویژگی‌های مشترک از آن استخراج شده است.
اما از آنجا که تنوع صورت‌ها نوشتاری یک حرف به صورت دست‌‌نویس بسیار زیاد است، مدلی آماری استخراج می‌شود که در آن شباهت ویژگی‌های استخراج‌ شدهٔ قبلی با نمونه ورودی به رایانه بررسی می‌شود. در اینجا «بازشناسی الگو» با روش‌های آماری انجام می‌شود که روش معمول در سیستم‌های OCR است.
اگر فکر می‌کنید که کار تمام شده است در اشتباهید، چون تازه می‌رسیم به دنبالهٔ حروف. مثلاً اگر کسی همان حرف «س» را با دنباله بنویسد، رایانه باید تشخیص دهد که این حرف فقط «س» است، یا مثلاً «ی» هم به آن چسبیده است.

● مدل‌سازی یا پردازش زبانی
مرحله بعدی «مدل‌سازی زبانی» یا «پردازش زبانی» نام دارد. حروف به هم چسبیده، که کلمه را درست می‌کنند، باید معنی‌دار یا شناخته‌شده باشند. در این مرحله بررسی می‌شود که چه کلماتی در زبان وجود دارد؟ چه ترکیب‌هایی از کلمات مجاز است؟
و... البته در مراحل پیشرفته‌تر، مدل‌سازی گرامری (دستور زبان) و مدل‌سازی معنایی هم وجود دارد که تشخیص می‌دهد جمله از لحاظ دستوری و معنایی درست است یا بی‌مفهوم است. اما در OCR گسسته ــ که بیشتر برای ثبت‌نام استفاده شده ــ شباهت یک کلمه به نام، نام خانوادگی، شهر و ... کافی است.
برای تشخیص ترکیب‌های مجاز یک کلمه یا معنی‌دار بودن یک کلمه نیز به تهیهٔ بانک‌های اطلاعاتی (Data base) نیاز داریم. در این بانک‌ها مثلاً تمام نام‌های کوچک و بزرگ ایرانیان قبلاً جمع‌آوری شده است و هنگام تطبیق یک کلمه با آن مشخص می‌شود که رایانه حروف آن را دست تشخیص داده یا نه. بنابراین نقش این بانک اطلاعاتی بسیار مهم است، چون اگر نامی در آن ثبت نشده باشد، کلمه‌ای که آن نام را شامل شود، به طور خودکار از برنامه OCR حذف می‌شود یا پیغام می‌آید که: «این کلمه اشتباه است» در صورتی که ممکن است مثلاً نام «هشام» در بین نام‌های ایرانی وجود داشته باشد، ولی قبلاً در بانک اطلاعاتی ثبت نشده باشد.

● بانک‌های ما و دیگران
مهندس «رزازی» دربارهٔ مشکل بانک‌های اطلاعاتی در زبان فارسی می‌گوید: «در دنیا برای توسعهٔ OCR و ارزیابی آن، بانک‌های اطلاعاتی استاندارد ساخته شده است که در آنها همهٔ کلمات وجود دارند، یعنی بانک هم مشکل دیجیتال کلمه را دارد، و هم تصویرش را. اما برای زبان فارسی، این بانک‌های اطلاعاتی چه برای ارزیابی و چه برای توسعه، استاندارد شده نیست. در واقع هر کسی برای خودش یک بانک اطلاعاتی می‌سازد، و این نمونه‌های متفاوت مشکلاتی را ایجاد می‌کند.
مثلاً برای ثبت‌نام دانش‌آموزانی که در آزمون مدارس تیزهوشان شرکت کرده بودند، یک بانک اطلاعاتی حاوی نام‌های فارسی، از روی اطلاعات فرم‌های سال‌های قبل، تهیه شد که از روی آن کلماتی که خیلی شبیه به نام‌های فارسی بودند تشخیص داده می‌شد. مثلاً اگر رایانه کلمه‌ای را «مصیبت» تشخیص داد، براساس بانک اطلاعاتی معلوم می‌شود که «مصیب» بوده است که یک نام ایرانی است.

0 نظرات:

ارسال یک نظر

مطالب قبلي