Warning: Declaration of tie_mega_menu_walker::start_el(&$output, $item, $depth, $args, $id = 0) should be compatible with Walker_Nav_Menu::start_el(&$output, $item, $depth = 0, $args = Array, $id = 0) in /home3/afgsaane/public_html/wp-content/themes/jarida/functions/theme-functions.php on line 1904
بررسی تکنولوژی OCR و زبان فارسی - انجمن علمی دانشجویان افغانستان

بیاندیش …

تمام افکار خود را روی کاری که دارید انجام می دهید متمرکز کنید. پرتوهای خورشید تا متمرکز نشوند نمی سوزانند.

— گراهام بل
خانه / فنی مهندسی / بررسی تکنولوژی OCR و زبان فارسی
بررسی تکنولوژی OCR و زبان فارسی

بررسی تکنولوژی OCR و زبان فارسی

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

برای درک بهتر تعریف OCR را از سایت ویکیپدیا مرور میکنیم:

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

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

سامانهٔ نویسه‌خوان مثل یک نفر ماشین‌نویس، متن سند را می‌خواند و آن را به قالب مناسب برای ذخیره در رایانه تبدیل می‌کند. معمولاً یک روبشگر، تصویر سند را برای OCR فراهم می‌کند. سامانهٔ نویسه‌خوان، اشیاء موجود در تصویر سند را که ارقام، حروف، علائم و کلمات هستند، بازشناسی کرده و رشته‌ی متناظر با آن‌ها را در قالب مناسب ذخیره می‌کند. یک فایل تصویری، حجم زیادی دارد و جستجوی متنی در آن ممکن نیست. این در حالی است که فایل خروجی سامانهٔ نویسه‌خوان بسیار کم حجم و قابل جستجو است.

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

۱٫ Optical Character Recognition
۲٫ Optical Character Reader

انواع OCR

در زبان‌های دیگر، به ویژه زبان‌هایی که با حروف لاتینی نوشته می‌شوند، سال‌هاست که از OCR استفاده می‌شود. اما در مورد زبان فارسی تازه دو سه سالی است که به فکر استفاده از OCR افتاده‌ایم، البته شرکت های بزرگ نرم افزاری که نرم افزارهای OCR را تولید می کنند، جهت رشد و توسعه نرم افزاری خودشون چند سالی هست که روی زبان های مختلف از جمله فارسی هم تمرکز کرده اند.

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

فارسی ما و مشکلات آن

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

شباهت حروف

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

بازشناسی حروف و الگو

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

مدل‌سازی یا پردازش زبانی

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

علی، ولی، قلی … و سیب

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

به نظر می‌آید که در چند سال آینده و با پیشرفت OCR فارسی و کاهش هر چه بیشتر خطای آن، در آزمون‌های بزرگ‌تری مانند آزمون سراسری دانشگاه‌ها نیز بتوان از آن استفاده کرد.

سرنوشت OCR دست‌نویس

در مورد OCR پیوسته دست‌نویس نیز روند کار به همان صورتی است که شرح دادیم، اما آنچه کار را دشوارتر می‌کند، قطعه‌بندی و جداجدا کردن حروف به هم چسبیده و تشخیص آنهاست. اگر این روند طی شود، این امید وجود دارد که روزی از OCR پیوسته دست‌نویس فارسی هم در سطح گسترده‌ای استفاده شود. البته OCR پیوسته دست‌نویس حتی در زبان انگلیسی هم هنوز به کاربرد وسیع و عملی نرسیده است. OCRانگلیسی در سیستم عامل windows وجود دارد که همراه با office فروخته می‌شود، ولی فکر نکنید که نامه‌های اداری انگلیسی که با دست‌نویس نوشته شده‌اند همه با OCR تایپ می‌شوند. این کار برای به نتیجه رسیدن به حداقل یک روند ۱۰ ساله را باید طی کند. OCR فارسی یک مرحله عقب‌تر است، پس زمان بیشتری می‌برد.
همین OCR فارسی گسسته هم تا چند سال پیش یک رؤیا بود، ولی دیدیم که محقق شده است و به مرور پیشرفته‌تر هم خواهد شد. بنابراین طراحی OCR پیوسته فارسی هم، اگرچه سال‌ها طول می‌کشد، ولی مطمئناً به نتیجه خواهد رسید. این طرح یک طرح تحقیقاتی است که در دانشگاه‌ها دنبال می‌شود و هنوز به یک محصول صنعتی قابل استفاده در سطح کلان و کاربردی برای عموم نرسیده است. ولی در حال حاضر نمونه‌های دانشگاهی و آزمایشگاهی آن در داخل کشور وجود دارد و موضوع رساله دکتری برخی از دانشجویان است.
بنابراین بین ۱۰ تا ۲۰ سال آینده، احتمالا OCR پیوسته دست‌نویس فارسی هم وارد بازار خواهد شد.

منابع:

wikipedia.org

iranwsis.org

فرض کنید که ما متنی را روی کاغذ داریم و می‌خواهیم آن را وارد رایانه کنیم. اولین روشی که به ذهن می‌رسد این است که متن را به تایپیست بدهیم تا با کامپیوتر تایپ کند. اما آیا می‌شود عین همان متن را وارد کامپیوتر بکنیم تا نیازی به تایپ نباشد؟ البته دستگاه «اسکنر» می‌تواند تصویری …

بررسی کلی

طراحی OCR فارسی گسسته
طراحی OCR فارسی پیوسته
مدل سازی حروف

شرح مختصر: بررسی تکنولوژی OCR و زبان فارسی

امتیاز کاربر: 2.65 ( 1 رای)
2

درباره امیر حمزه

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

۱ دیدگاه

  1. من به مدت زیادی از او سی آر های انگلیسی استفاده کرده ام، اگر با دوربین دیجیتال و خرج کمی وقت عکس گرفته شود نتیجه بدی به دست نمی دهد و اگر با اسکنر باشد که دیگر عالی خواهد بود.
    ولی برای فارسی برنامه ها هنوز خیلی نیاز به کار دارند، ولی در دسترس هستند گرچه مبالغ زیادی برای تهیه شان باید پرداخت و همچنین مقداری وقت برای تصحیح متون باید صرف کرد. مثلا ارزان ترین آنها را که تهیه کردم حدود ۱۲۰ هزار تومان شد ولی باز هم برایم جذاب است و از آن استفاده می کنم.

دیدگاهتان را ثبت کنید

آدرس ایمیل شما منتشر نخواهد شدعلامتدارها لازمند *

*

theme
رفتن به بالا

Warning: Parameter 1 to W3_Plugin_TotalCache::ob_callback() expected to be a reference, value given in /home3/afgsaane/public_html/wp-includes/functions.php on line 3510