1. مهمان گرامی، جهت ارسال پست، دانلود و سایر امکانات ویژه کاربران عضو، ثبت نام کنید.
    بستن اطلاعیه

زبان فارسي و OCR

شروع موضوع توسط MiTra ‏29/6/11 در انجمن مهندسی کامپیوتر

  1. پیشکسوت انجمن کاربر ارزشمند❤

    تاریخ عضویت:
    ‏11/11/10
    ارسال ها:
    11,734
    تشکر شده:
    3,539
    امتیاز دستاورد:
    113
    r و زبان فارسي
    فرض كنيد كه ما متني را روي كاغذ داريم و مي‌خواهيم آن را وارد رايانه كنيم. اولين روشي كه به ذهن مي‌رسد اين است كه متن را به تايپيست بدهيم تا با كامپيوتر تايپ كند. اما آيا مي‌شود عين همان متن را وارد رايانه بكنيم تا نيازي به تايپ نباشد؟
    البته دستگاه «اسكنر» مي‌تواند تصويري از آن متن را وارد رايانه كند، تا اينجا بخشي از مشكل ما حل شده است. اما رايانه كه نه عقلي دارد و نه «زبان» مي‌فهمد، نمي‌تواند حروف و كلمات را از هم تشخيص دهد.
    مثلاً اگر از كامپيوتر بخواهيم به ما بگويد كه در متن اسكن‌شده كلمة «علي» چند بار آمده است، بي‌آنكه شرمنده شود، مي‌گويد نمي‌توانم تشخيص بدهم! در واقع اين «تصوير ديجيتال‌شده» بايد به «تصوير قابل پردازش» تبديل شود. موضوع اصلي 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 حذف مي‌شود يا پيغام مي‌آيد كه: «اين كلمه اشتباه است» در صورتي كه ممكن است مثلاً نام «هشام» در بين نام‌هاي ايراني وجود داشته باشد، ولي قبلاً در بانك اطلاعاتي ثبت نشده باشد.