انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید


توزیع گنو/لینوکس اوبونتو ۲۰ ساله شد 🎉

نویسنده موضوع: طراحی نرم افزار برای بهبود خروجی ocr (نیاز به همکاری داوطلبانه)  (دفعات بازدید: 3954 بار)

0 کاربر و 1 مهمان درحال مشاهده موضوع.

آفلاین سید وحید رضا برهانی

  • High Hero Member
  • *
  • ارسال: 1668
  • جنسیت : پسر
  • یک مخالف نرم افزار اوپن سورس
سلام
من کارم گیر این ocr شد !
اومدم دیدم که ocr فارسی که نیست اومدم روی ocr عربی تست کردم خب دیدم تقریبا اگر خودم تایپ کنم بهتره! :D ولی به هر حال خروجی ocr عربی به عنوان یک پایه  می تونه چیز خوبی باشه به این دلیل که اکثر حرف  ها ی اکثر کلمات  رو درست می فهمه و فقط توی فاصله ها و گ چ پ ژ و حروفی که تایپش شبیه هم هستند به مشکل بر می خوره و از همه مهمتر اینکه اشتباه بی معنی می کنه ! (اشتباه بی معنی خیلی مهمه)
حالا من می گم اگر که بتونیم یک جیزی مثل spell check  درست کنیم (dictionary base ) خیلی می تونه کمک کنه
من نرم افزار های spellcheck فارسی رو دیدم و بدرد نمی خوره (چون هیچ کاری انجام نمی ده)
خواهشا سوالات چرایی رو اینجا نپرسید اینجا جای سوالات چگونگی است !
این چیزی که توی ذهنم هست خیلی راحت هست و هرکسی که توانایی ابتدایی توی اسکریپت نویسی یا برنامه نویسی داره و دلش می خواد بیاد کمک کنه
برای اینکار به نظرم باید ابتدا یک اسکریپت/برنامه درست کنیم که دیتابیس ها رو درست کنه : ما به سه فایل به عنوان دیتابیس(دیکشنری) نیاز داریم:
اولین دیتا بیس ، دیتا بیس حروف و کلمات اضافه است (من این اسم رو روش گذاشتم -دستور زبانم ضعیفه) که توش باید کلمات رو به صورت دستی وارد کنیم کلماتی مثل : و - از - اگر - برای و..
دیتا بیس دوم  ، دیتابیس حروف مشابه است منظورم حروفی است که نرم افزار به جای هم در نظر می گیره مثلا «ش» رو با «ثس » یا «نثر» اشتباه می گیره که خب اینم باید دستی درست بشه برای درست کردنش کافیه که چند صفحه رو ocr کنید تا ببینید که معمولا چی رو با چی اشتباه می گیره :)
دیتابیس اصلی یا دوکلمه ای : این یکی باید توسط نرم افزار درست بشه ! نحوه ی ساخت این دیتا بیس  به اینصورت پیشنهاد می شه:
اسکریپت اول باید یک فایلی که توش جملات مربوط به همون زمینه ی مطلب ocr هست رو بخونه بعد جمله ها رو باید جدا بکنه (هر جمله با نقطه تموم می شه -می شه از خروجی tr استفاده کرد) بعد باید لغات رو شناسایی کنه (هر لغت بین دو فاصله فرار داره) و از این متن باید لغات حروف اضافه رو حذف کنه و هر ، دو لغت رو (بدون ترتیب قرار گرفتن در عبارت دو کلمه ای ) شمارش کنه و در نهایت در قالب زیر توی یک قایل ذخیره کنه
فراوانی:کلمه۱*کلمه۲*
توجه کنید که لازم نیست یک کلمه از اول متن رو با یک کلمه از آخر جست و جو کنه دو کلمه ی پشت سر هم بعد از فیلتر شدن در همون جمله کفایت می کنه چون هدفم از این کار اینکه کلماتی که به هم مربوط اند رو شناسایی کنیم که بعدا اگر بین چند کلمه مشابه و درست گیر کردیم بتونیم به لحاظ آماری بفهمیم که کدوم کلمه مربوط هست !
خب این از نصف کار !
حالا باید از توی فایل خروجی ocr جملات رو شناسایی کنیم (مثل بالا) بعد لغات رو شناسایی کنیم بعد هر لغت رو توی دیتابیس اصلی جست و جو کنیم اگر کلمه معتبر بود(با توجه به لغت قبلی اش) (با توجه به فراوانی) که هیچ ولی اگر که معتبر نبود باید هر حرف رو با دیتابیس حروف مشابه عوض کنیم تا بالاخره در یک جایی کلمه معتبر شود البته پر واضح هست که یک کلمه اگر ۷-۸ حرف داشته باشه و بخواهیم هر حرف رو هم چندین بار چک کنیم خیلی زمان می بره (هر چند من ترجیح می دم کامپیوترم ۲۰ دقیقه با حداکثر توان کار کنه و من آب میوه بخورم ولی خودم ۲۰ روز تمام مشغول تایپ یا تصحیح باشم) که برای رفع این مشکل من فکر می کنم که اگر درمورد کلمات بزرگ اگر یکبار ۵۰ درصد اول کلمه رو سرچ کنیم اگر که توی دیتا بیس بود تقربا (به لحاظ فراوانی و شانس و تصادف می گم - قرار نیست که خروجی ۱۰۰ درصد باشه که!) می شه نتیجه گرفت که مشکل از نصفه ی دوم هست(۵۰ درصد آخر کلمه) (البته اگر که نصفه ی دوم توی دیتابیس اصلی نباشه)
این چیزی بود که من به ذهنم رسید اگر که کسی چیز دیگه ای به ذهنش می رسه بگه
برای بالابردن سرعت کار تاجایی که می تونید(اجباری نیست) سعی کنید که از اسکریپت و ابزار های هسته گنو استفاده کنید
حالا اگر کسی داوطلب هست همینجا اعلام کنه تا تقسیم کار کنیم و جزئیات رو بیشتر بگم


نرم افزاری که نشه سیخ انگولکش کرد (به هر دلیلی چه به‌خاطر قانون و چه پیچیدگی یا توسعه سریع)نرم افزار آزاد نیست حالا مهم نیست چه بنیادی یا چه افرادی اون رو نوشته باشند یا GPL باشه یانه!
نرم افزار آزاد یک جنبش هست نه یک تیکه کاغذ پاره(GPL)
حق فهمیدن از حق خوندن مهمتره

آفلاین امیرحسین گودرزی

  • ناظر انجمن
  • *
  • ارسال: 743
  • جنسیت : پسر
  • Devops engineer and AI enthusiastic
سلام سید عزیز
ایده‌ی چنین کاری مدت‌ها پیش به ذهنم زده شده بود
اما یه محیط مجتمع که علاوه بر او‌سی‌آر کردن ،گفتار به نوشتار هم بکنه اونم با ساپورت فارسی که بعد اینا به کمک یه دستیار میان که کارهاتو ب حرف بهش می‌فهمونی و ... و اون میشه منشی‌ات و کاراتو راست و ریست می‌کنه و برات فایل پیدا می‌کنه و گوگل می‌گرده و ...
چند وقتی دنبالش بود و یه سری چیز پیدا کردم
اگه می‌خوای بگو تا در این مورد فایلامو بگردم تا پیداشون کنم و بدم بهت

یا علی


آفلاین سید وحید رضا برهانی

  • High Hero Member
  • *
  • ارسال: 1668
  • جنسیت : پسر
  • یک مخالف نرم افزار اوپن سورس
سلام
 ایده ی باحالیه :) اگر درمورد ocr کدهات رو پیدا کردی بفرست
ممنون

نرم افزاری که نشه سیخ انگولکش کرد (به هر دلیلی چه به‌خاطر قانون و چه پیچیدگی یا توسعه سریع)نرم افزار آزاد نیست حالا مهم نیست چه بنیادی یا چه افرادی اون رو نوشته باشند یا GPL باشه یانه!
نرم افزار آزاد یک جنبش هست نه یک تیکه کاغذ پاره(GPL)
حق فهمیدن از حق خوندن مهمتره

آفلاین Ghost Shadow

  • High Hero Member
  • *
  • ارسال: 1803
  • جنسیت : پسر
  • Linux is Secured By Design
این ایده بسیار عالی هست.حتی تو خود ویندوز هم نیاز داشتیم که چه بهتر واسه گنو/لینوکس باشه. 8)

در مورد اون منشی هم یه نرم افزار برای ویندوز بود به اسم دراگون که انگلیسی ساپورت میکرد و طرف میتونست یه کتابخانه هم برای خودش و اصطلاحاتی که داشت درست که که میومد صحبت میکرد و کلمه رو براش ذخیره میکرد. :)

تو بازار هم یه عده اومده بودن براش یه کتابخانه درست کردند واسه فینگلیش. :P

اگه این منشیه واسه گنو/لینوکس باشه که خیلی خوب میشه ولی ما الان بیشتر به اون OCR ه نیاز داریم شدید. :D

دم همتون گرم ;)

آفلاین هامد

  • Full Member
  • *
  • ارسال: 156
  • جنسیت : پسر
پروژه‌های پیشنهادی برای برنامه‌نویسی و طراحی: نرم‌افزار نویسه‌خوان نوری (OCR) برای زبان فارسی
ردیابی نوشته های فارسی در تصاویر: http://press.jamejamonline.ir/?year=1392&Month=6&Day=9 صفحه ۱۲
« آخرین ویرایش: 24 شهریور 1392، 10:33 ب‌ظ توسط هامد »

آفلاین سید وحید رضا برهانی

  • High Hero Member
  • *
  • ارسال: 1668
  • جنسیت : پسر
  • یک مخالف نرم افزار اوپن سورس
واقعا شما پست اول رو می خونید ؟ اصلا هم عنوان رو می خونید ؟ چرا برای جواب/پست دادن اینقدر عجله دارید ؟ بجا حرف ردن از پر حرفی خیلی مهمتره ! انجمن اوبونتو و سیاست کانونیکال خیلی زودتر از اونچه پیش بینی می کردم به بن‌بست خودش نزدیک شده ... دوباره می گم
من دنبال چند نفر داوطلب می گردم که کمی به اسکریپت نویسی آشنایی داشته باشند و اینجا اعلام آمادگی کنه
و مورد دیگه این اسکریپت قرار نیست که ocr باشه ! این قراره خروجی ocr رو بهبود بده نه اینکه بیام یک ocr دیگه درست کنم که نه کار من هست نه کار آدمای اینجا ! خروجی ocr عربی به عنوان یک پایه ای برای پردازش بعدی بهترین گزینه ای هست که می شناسم
نرم افزاری که نشه سیخ انگولکش کرد (به هر دلیلی چه به‌خاطر قانون و چه پیچیدگی یا توسعه سریع)نرم افزار آزاد نیست حالا مهم نیست چه بنیادی یا چه افرادی اون رو نوشته باشند یا GPL باشه یانه!
نرم افزار آزاد یک جنبش هست نه یک تیکه کاغذ پاره(GPL)
حق فهمیدن از حق خوندن مهمتره