EN

۶ دقیقه مطالعه

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

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

برگه‌ای کاغذ روی شیشه یک اسکنر که از زیر روشن شده است.
عکس: Mikhail Nilov، Pexels

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

چرا فارسی دشوارتر است

  • حروف به هم می‌پیوندند و شکل آن‌ها تغییر می‌کند. بیشتر حروف فارسی در ابتدا، میانه و پایان واژه شکل متفاوتی دارند و بسیاری از آن‌ها فقط در تعداد یا جای نقطه با هم تفاوت دارند (ب پ ت ث، ج چ ح خ). یک لکه کوچک یا نقطه‌ای کم‌رنگ، یک حرف را به حرف دیگری تبدیل می‌کند.
  • نیم‌فاصله. واژه‌هایی مانند «می‌شود» یا «کتاب‌ها» نویسه‌ای نادیدنی به نام فاصله مجازی (ZWNJ) دارند که بخش‌های واژه را بدون فاصله کامل از هم جدا نگه می‌دارد. OCR اغلب این نویسه را حذف می‌کند و بخش‌ها را به هم می‌چسباند یا به جای آن فاصله کامل می‌گذارد. متن همچنان تقریباً درست به نظر می‌رسد، اما جست‌وجو و شمارش واژه‌ها دچار خطا می‌شود.
  • حروف عربی و فارسی. در یونیکد، ی و ک فارسی با ي و ك عربی نویسه‌های جداگانه‌ای هستند که یکسان یا تقریباً یکسان دیده می‌شوند. خروجی OCR و فایل‌هایی که افراد تایپ می‌کنند، اغلب این دو را درهم دارند. جست‌وجوی «کیفیت» با حروف فارسی، همان واژه را اگر با حروف عربی ذخیره شده باشد پیدا نمی‌کند.
  • ارقام. یک سند ممکن است ارقام فارسی (۱۲۳)، ارقام عربی (١٢٣) و ارقام لاتین (123) را گاهی در یک صفحه داشته باشد. این ارقام باید درست تشخیص داده شوند و سپس به یک شکل یکسان ذخیره شوند.
  • متن راست‌به‌چپ همراه با بخش‌های چپ‌به‌راست. اعداد، کدها، نشانی‌های ایمیل و واژه‌های انگلیسی درون یک سطر فارسی در جهت مخالف نوشته می‌شوند. OCR ممکن است ترتیب آن‌ها را جابه‌جا کند و این خطا دقیقاً در مهم‌ترین بخش‌ها، یعنی مبلغ‌ها، تاریخ‌ها و شماره‌های مرجع، اهمیت پیدا می‌کند.
  • قلم‌ها و دست‌خط. قلم‌های تزئینی، نستعلیق و دست‌خط بسیار دشوارتر از متن چاپی ساده با قلم‌های نسخ‌مانند هستند. به‌ویژه دست‌خط برای بیشتر ابزارها هنوز قابل اعتماد نیست.

چه عواملی نتیجه را بهتر می‌کند

بخش بزرگی از کیفیت پیش از اجرای OCR تعیین می‌شود:

  • تصویری صاف و واضح. اسکنر از گوشی بهتر است. اگر از گوشی استفاده می‌کنید، صفحه را صاف نگه دارید، کادر را با صفحه پر کنید و از سایه و زاویه پرهیز کنید. وضوح ۳۰۰ dpi برای اسکن صفحه‌های چاپی معمولی، انتخابی رایج و معقول است.
  • نور یکنواخت و کنتراست مناسب. متن خاکستری روی کاغذ خاکستری، مهری که روی متن خورده و صفحه‌هایی که بارها کپی شده‌اند، همگی از دقت می‌کاهند.
  • تنظیم درست زبان. بسیاری از ابزارها باید بدانند صفحه فارسی است. اگر روی انگلیسی تنظیم بمانند، خروجی بی‌معنا می‌دهند. صفحه‌ای که فارسی و انگلیسی را با هم دارد، باید روی هر دو زبان تنظیم شود.
  • صفحه‌های صاف و بدون چرخش. ابتدا چرخش و کجی صفحه را اصلاح کنید. چند درجه کجی ممکن است تشخیص سطرها را مختل کند.

تشخیص حروف فقط نیمی از کار است

خروجی خام تقریباً همیشه پیش از استفاده به پاک‌سازی نیاز دارد:

  1. یکدست کردن حروف. ي و ك عربی را به ی و ک فارسی تبدیل کنید و اعراب و نویسه‌های نادیدنی اضافه‌ای را که OCR افزوده است حذف کنید.
  2. اصلاح نیم‌فاصله‌ها. فاصله مجازی را در الگوهای رایج، مانند پیشوند «می»، پسوند «ها» و «ترین»، بازگردانید و فاصله‌های کاملی را که باید نیم‌فاصله باشند حذف کنید. قاعده‌ها موارد رایج را پوشش می‌دهند و یک فهرست واژه موارد بیشتری را.
  3. انتخاب یک شکل برای ارقام. ارقام را برای جست‌وجو و محاسبه به یک شکل ذخیره کنید و برای نمایش، به همان شکلی نشان دهید که خواننده انتظار دارد.
  4. حفظ ساختار. جدول‌ها، ستون‌ها و فیلدهای فرم وقتی به سطرهای ساده متن تبدیل شوند، معنای خود را از دست می‌دهند. در فرم‌ها و فاکتورها، استخراج هر فیلد در قالب یک رکورد ساختاریافته اغلب از متن ساده مفیدتر است.

یکدست‌سازی متن را در مقاله پردازش متن فارسی با هوش مصنوعی با جزئیات بیشتری شرح داده‌ایم.

جایگاه مدل‌های جدیدتر

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

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

پیش از تکیه بر خروجی، آن را بررسی کنید

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

برای گفت‌وگو درباره تبدیل اسناد فارسی سازمان شما به متن قابل جست‌وجو، با ما در تماس باشید.

موضوعاتهوش مصنوعیزبان فارسیOCR

بازگشت به صفحه اصلی