لەم بابەتە باسێکی کورتی چیرۆکی ماڵپەری ژیر دەکەین و چۆنیەتی کارکردنی هەروەها هەوڵ دەدەم کە هەموو بەشەکانی بە یەک دوو رستە شیبکەمەوە لەگەڵ ئەوەش چۆنیەتی کارکدنیان لەگەڵ یەکتری
مێژوو
لە ٢٠٢٠ کاتی کۆڕۆنا و کەرەنتین من و @muhammad وەک زۆربەی خەڵکی کاتێکی زۆرمان لەبەردەست بوو خەریکی کۆکردنەوە و دروستکردنی کۆرپسێکی زمانی کوردی بووین بۆ ئەوەی لە کوردسپێڵ (هەڵچنی زمانی کوردی بوو spellchecker) بەکاری بهێنین بۆ ئەم مەبەستە سەیری کۆمەڵێک کتێبی دەزگای ئاراسمان کرد لەگەڵ کۆمەڵێک سەرچاوەی دیکە فایلەکان هەموویان PDF بوون و نووسینەکەی ناوی ستاندارد نەبوو بەشێوەیەک هەمووی تێکەڵ دەبوو لەکاتی کۆپی کردن، @muhammad حەزی دەکرد پرۆگرامێک بنووسێت کە ئەم جۆرە فایلانە چاک بکات دوای هەوڵدانێکی زۆر بۆمان دەرکەوت کە چاکردنی ئەم جۆرە فایلانە کارێکی دروست نیە، ئەوەی جێگەی تێبینیە لەم هەنگاوە سەرەتاییانە @muhammad هەوڵی دەدا و من تەنها بە بیرۆکە و هەندێک جار بیرکردنەوە لەو مەسەلەیە بەشدار بووم.
بیرۆکە
لەکاتی قسەکردنمان ئەو بیرۆکەیە هات ئەگەر بێت و وێنەی ئەم کتێبانە وەرگرین بە ڕێگایەک لە ڕێگایەکان بیکەینەوە بە نووسین ئەوا دەتوانین کۆرپسێکی باش دروست بکەین ئەم تەکنەلۆجیایە پێی دەگوترێت OCR بۆ زۆربەی زمانەکان هەیە بەڵام بۆ زمانی کوردی شێوەزاری سۆرانی نەبوو بۆیە بڕیارماندا هەوڵێکی لەگەڵ بدەین و بزانین دەگەین بە چی بەتایبەتی ئەمە یەکەمین کارمان دەبوو لەو بوارە بۆیە چێژێکی تایبەتی هەبوو.
دەسپێک
دوای بڕیاردان دەستمان بە گەڕان کرد بۆ ماڵپەر و ئاپپ یاخود هەر شتێک کە پشتگیری زمانی کوردی بکات بەڵام شتێکی وامان نەدۆزیەوە بڕیارماندا خۆمان دروستی بکەین کەمێک کارمان لەسەری کرد بەڵام لە هەمان کاتدا وەشانێکی نوێی Tesseract-OCR بڵاوکرایەوە لەم وەشانە بەتایبەتی پشتگیری بۆ Cursive languages باشتر کرابوو ئەم جۆرە زمانەنە ئەوانەن کە پیتەکانیان بەیەکەو نوساوە وەک زمانی کوردی و عەرەبی و فارسی و هیتر وادیاربوو هیوایەک هەیە دوای کەمێک گەڕانی زیاتر کەسێکمان دۆزیەوە کە مۆدێڵێکی زمانی کوردی سۆرانی دروست کردبوو کاتێک مۆدێڵەکەمان بەکارهێنا وادیاربوو ئەمە تەنها Proof of concept ە بەواتای ئەوەی تەنها سەلماندنی ئەوەیە کە کاردەکات ئەم هەنگاوە کارێکی زۆری لەکۆڵکردینەوە ئێستا بەدڵنیایەوە دەتوانین مۆدێڵێکی تایبەت بەخۆمان دروست بکەین.
دروستکردنی مۆدێڵێکی تایبەت بۆ زمانی کوردی
پێویستە ئەوە بڵێم کە ئێمە پێشووتر کۆمەڵێک ئامرازمان دروست کردبوو بۆ کۆکردنەوەی تێکستی کوردی لە هەر ماڵپەڕێک Crawler، بە بەکارهێنانی ئەم ئامرازە کۆرپسێکمان دروست کردبوو هەروەها ئامرازێکی دیکە بۆ گۆڕینی نووسینەکە بۆ ستانداردی یونیکۆد ئەم ئامرەزەیان ناوی BeKurdi بوو ئەمانە هەموویان یارمەتیدەربوون لەوەی کۆمەڵێک نووسنی کوردی کۆبکەینەوە و بەکاریبهێنین وەک دەسپێکێک هەرچەندە کۆمەڵێک خاوێنکردنەوەی دیکەمان کرد ئەمە ڵەگەڵ ئەوەی tesseract پێویستی بە هەندێک داتای دیکەیە لەسەر کۆرپسەکە unigram و biagram بۆ ئەم مەبەستە ئەم پرۆژەیەمان دروست کرد لەسەر گیتهەب بەناوی Zhir-Langdata-Generator.
هەنگاوی دوای ئەوە بریتی بوو لە ڕێکخستنی Tesseract-OCR بۆ دروستکردنی مۆدێڵێکی تایبەت بە زمانی کوردی ئەمەیان یەکێک لە گرانترین هەنگاوەکان بوو دوای هەوڵدانێکی زۆر توانیمان پرۆژەیەک دروست بکەین کە تایبەتە بە راهێنانی مۆدێڵی زمانی کوردی بەناوی Zhir-Bootcamp ئەم پرۆژەیە هەموو پێداویستیەکانی تێدایە لەگەڵ بەستەری بەسوود بۆ خوێندنەوەی زیاتر لەسەر چۆنیەتی دروستکردنی مۆدێڵکی تایبەت.
تێبینیەکی گرنگ ئەوەیە Tesseract-OCR لەسەر سیستەمی ویندۆز کارناکات دەبێت لینیکس یاخود ماک بێت بۆ ئەوەی لەسەر ویندۆز راهێنانەکە بکەیت پێویستە سیستەمی لینیکس لەسەر ویندۆز دابمەزرێنیت.
دوای زانینی هەموو ئەمانە ئێمە سێرڤەرێکمان بەکرێ گرت لەسەر ماڵپەری Vultr.com کە خزمەتگوزاریەکی زۆر باش پێشکەش دەکات بە نرخێکی زۆر گونجاویش، سێرڤەرێکی 32GB ی لەگەڵ 8 vCPU ئەمەش لەبەر ئەوەیە پێوستی دەکرد چەند رۆژێک بە بەردەوامی پرۆسەی دروستکرن و راهێنانی مۆدێڵەکە بەردەوام ببێت، دوای ڕێکخستنی هەموو ئەمانە توانیمان دەس بە پرۆسەی راهێنانی tesseract بکەین.
کێشەیەکی دیکە هاتە پێش ئەویش ئەوە بوو بۆ زانینی باری راهێنانەکە پێویست بوو هەموو جارێک داخڵی سێرڤەرەکە ببین لە ڕێگای ssh و هەندێک جار رادەوەستا لەبەر نەمانی میمۆری یاخود هەندێک کێشەی تەکنیکی دیکە چوونکە لەسەر کۆمەڵێک سێرڤەری جیاواز تاقیکردنەوەمان کرد بۆیە بڕیارماندا بە درووستکردنی داشبۆردێکی وێب کە پرۆسەی راهێنانەکە نیشان بدات وەکو لیستێکی سادە ناومان لێنا Zhir-Training-Dashboard کە بە Nodejs و Expressjs نوسراوە.
بەم شێوەیە دوای تێپەڕبوونی چەند رۆژێک tesseract کۆمەڵێک فایل دروست دەکات پێیان دەڵێت checkpoint کە دەتوانین بیگۆڕین بۆ مۆدێڵ کە دەکرێت بەکاربهێندرێت و ئەنجامەکەی ئەوە بوو کۆمەڵێک مۆدێڵمان دروست کرد بۆ زمانی کوردی لە checkpoint ە جیاوازەکان و لە پرۆژەی Zhir-Models دەتوانیت بیاندۆزیتەوە.
tesseract چۆن کاردەکات؟
تێسەراکت فایلێکی executable ە کە فایلێکی مۆدێڵ وەردەگرێت لەگەڵ ئەو وێنەیەی کە دەتەوێت نووسینەکانی لەناو دەربهێنیت و ئەنجامەکەشی فایلێکی تێکستە بەڵام دەتوانیت بە هەندێک دەسکاری فایلی وۆرد و PDF یش دروست بکەیت.
هەنگاوی داهاتوو چییە؟
دوای چەند تاقیکردنەوەیەک بڕیارماندا بیکەین بە ماڵپەڕێک کە خەڵکی دەتوانن وێنە بنێرن و ژیر وێنەکان دەدات بە تێسەراکت دوای ئەوە ئەنجامەکەی دەداتەوە بە بەکارهێنەر ئەمە بیرۆکەیەکی جوانە بەڵام کۆمەڵێک کێشە دێتە پێش لەوانە
- تێسەراکت میمۆریەکی(بیرگە) زۆر دەبات
- چی دەبێت ئەگەر کۆمەڵێک بەکارهێنەر بەیەکەوە وێنەیان نارد؟
- چی دەبێت ئەگەر کۆمەڵێک بەکارهێنەر بەیەکەوە وێنەیان نارد؟
- چی دەبێت ئەگەر بەکارهێنەر PDF ێکی نارد؟
بەشە جیاوازەکانی ژیر
دوای بیرکردنەوە بڕیارماندا ژیر بەم شێوەیە دروست بکەین ئەو چەند بەشەی هەبێت
- بەشی پێشەوە (ماڵپەر) Web UI: ئەمە ماڵپەری ژیرە کە بەکارهێنەران دەیبینن و کاری لەگەڵ دەکەن بە ReactJS, NextJS دروست کراوە
- بەشی Web API : ئەمە بەشی API ماڵپەرەکەیە کاتێک بەکارهێنەر هەندێک وێنە دەنێرێت ماڵپەرەکە داتایەکە بۆ ئەمە دەنێرێت و ئەم بەشە هەڵدەستێت بە زیادکردنی زانیاری لە بنکەدراوە و باکردنی وێنەکان بۆ S3
- Zhir DB: بنکەدراوەیەکی Mysql ە کە هەموو بەشەکانی ژیر بەیەکەوە دەبەستێتەوە
- Zhir files storage: ئەمە هەژمارێکی S3 ئەمازۆنە کە فایلەکانی تێدا هەڵدەگرین
- Cranelift: گرنگرتین بەشە لە ژیر کە کرداری ناسینەوەکە دەکات بە وردی باسی ئەم بەشە دەکەین
- Zhir Py: هەندێک سکریپتی Python نن کە وێنەکان خاوێن دەکەنەوە پێش ئەوەی بنێردرێن بۆ Tesseract
- Tesseract Executable: ئەمە فایلی تێسەراکتە کە مۆدێڵێک و وێنەیەک وەردەرگێت و ئەنجامەکەی وەک فایل دروست دەکات
Cranelift ی ژیر چیە ؟
پرۆژەیەکی .NETە کە بە بەردەوامی سەیری بنکەدراوەی ژیر دەکات بۆ دۆزینەوەی ئەو وێنانەی کە تازە نێردراون، دوای ئەوە هەڵدەستێت بە دابەزاندنی ئەم وێنانە لە S3 و هەڵگرتنیان بۆ فۆلدەری /temp لەسەر سێرڤەر(ڕاژە) پاشان ئەم وێنانە دەخاتە ناو Zhir Py و دەرئەنجامەکەی وەک چەند فایلێکی نوێ هەڵدەگرێت، لەکۆتاییدا ئەم فایلە نوێناینە دەخاتە ناو Tesseract Executable دەرئەنجامەکان وەک فایلی نوێ لەناو فۆڵدەرێک هەڵدەگیرێن لەسەر ڕاژە تاوەکو ئێرە بەشە گرنگەی کرد ئێستە پێویستە ئەم ئەنجامە بگەڕێنینەوە بۆ بەکارهێنەر بۆ ئەم مەبەستە cranelift فایلە نوێیەکان باردەکات بۆ S3 و لە بنکەدراوە هەنێک زانیاری دەربارەی وێنەکە نوێ دەکاتەوە.
بەشی Web API
لە بەشی سەرەوە کەمێک باسی API ژیرمان کرد بەڵام هەندێک کاری دیکەش دەکات لەوانە
- بە بەردەوامی سەیری بنکەدراوە دەکات بۆ ئەو وێنانەی کە تەواو بوون لە لایەن cranelift
- API ێکی کراوە بۆ گەشەپێدەران کە بتوانن بە شێوەیەکی ئاسان وێنە بنێرن بۆ بەکارهێنانی لە بەشە جیاوازەکان
داهاتووی ژیر
لەگەڵ ئەوەی بڕیارماندا ماڵپەری ژیر دابخەین و هەموو کۆدەکە سەرچاوەکراوە بکەین، بیرۆکەیەک هەیە کە دەمانەوێت بیکەین بە پرۆگرامێکی Desktop بەڵام ئەمە تەنها بیرۆکەیەو کاری دەوێت بە ئەگەری زۆرەوە پرۆگرامی Desktop ەکەش سەرچاوەکراوە دەبێت.
کۆتایی
بەشێوەیەکی گشتی ئەمە چیرۆک و ئەو پێداویستیە بوو کە وایکرد ژیر دروست بکەین و چۆنیەتی کارکردنی بە شێوەیەکی گشتی، زۆر وردەکاری دیکە هەن لەکاتی سەیرکدنی کۆدی ژیر دەیبینیت، هەموو سەرچاوە کۆدی ژیر کراوەیە و لەسەر گیتهەب هەیە هەموو لایەک ئازادن لە بەکارهێنان و بڵاوکردنەوە و دەسکاریکردنی پرۆژەکان و بەکارهێنانی بۆ مەبەستی گشتی و تایبەتی ئەم لیستەی خوارەوە هەموو بەشە جیاوازەکانی ژیرن لەسەر گیتهەب
- https://github.com/hesta-io/Zhir-API
- https://github.com/hesta-io/zhir-cranelift
- https://github.com/hesta-io/zhir-benchmark
- https://github.com/hesta-io/zhir-py
- https://github.com/hesta-io/zhir-models
- https://github.com/hesta-io/Zhir-Training-Dashboard
- https://github.com/AramRafeq/Zhir-Web
- https://github.com/hesta-io/Zhir-Langdata-Generator
- https://github.com/hesta-io/zhir-bootcamp
بۆچوونەکان