अरबी PDFs के साथ काम करना
आप एक अरबी अनुबंध खोलते हैं, एक पैराग्राफ का चयन करते हैं, उसे कॉपी करते हैं, और उसे ईमेल में पेस्ट कर देते हैं। जो चीज़ वहाँ पहुँचती है, वह अक्षरों की disconnected पंक्तियाँ होती हैं — या सही अक्षर गलत क्रम में होते हैं, या वर्णों की एक श्रृंखला होती है जो लगभग सही दिखती है लेकिन नहीं होती। PDF पूरी तरह से प्रदर्शित होता है। जिस पल आप टेक्स्ट निकालने की कोशिश करते हैं, यह बिखर जाता है। यह आपके सॉफ़्टवेयर का टूटना नहीं है। यह एक वास्तव में कठिन समस्या है जो सामने आ रही है।
अरबी लैटिन लिपि से क्यों अधिक कठिन है
अंग्रेजी को टेक्स्ट सिस्टम से बहुत कम मांग होती है: अक्षर एक पंक्ति में, बाएँ से दाएँ बैठते हैं, और हर जगह उनका आकार एक जैसा होता है। अरबी काफी अधिक मांग करता है, और इन सभी विशेषताओं में से प्रत्येक वह जगह है जहाँ उपकरण गलत होते हैं:
- यह प्रकृति से कर्सिव है। अक्षर आपस में जुड़ते हैं। यह सजावटी नहीं है — यह जिस तरह से लिपि काम करती है, वह है।
- अक्षर स्थिति के अनुसार अपना आकार बदलते हैं। एक ही अक्षर के चार रूप हो सकते हैं: अकेले खड़ा, शब्द की शुरुआत में, बीच में, अंत में। एक ही अक्षर, एक ही अर्थ, चार अलग-अलग चित्र।
- यह दाएँ से बाएँ चलता है — लेकिन सब कुछ नहीं। संख्याएँ और एम्बेडेड लैटिन शब्द दाएँ से बाएँ टेक्स्ट के अंदर बाएँ से दाएँ चलते हैं।
- डायक्रिटिक्स वैकल्पिक और अर्थपूर्ण होते हैं। छोटे स्वर चिह्न मौजूद या अनुपस्थित हो सकते हैं, और वे पढ़ने के तरीके को बदल देते हैं।
इसलिए अरबी का सही ढंग से प्रदर्शन करने के लिए रेंडरर को अपने पड़ोसियों के आधार पर हर अक्षर के लिए सही आकार चुनना पड़ता है, फिर मिश्रित-दिशा वाले रन (mixed-direction runs) को सुसंगत रूप से व्यवस्थित करना पड़ता है। दोनों चरणों में ही समस्या आती है।
शेपिंग (Shaping), और क्यों copy-paste काम नहीं करता
यहाँ तंत्र बताया गया है, क्योंकि इसे जानने से हर लक्षण समझ में आ जाएगा जिसका आप सामना करेंगे।
टेक्स्ट को तार्किक क्रम (logical order) में स्टोर किया जाता है — वह क्रम जिसमें आप इसे बोलते हैं। ड्रा करने से पहले, सॉफ्टवेयर शेपिंग (shaping) लागू करता है: प्रत्येक अक्षर के लिए सही स्थितिगत रूप चुनना, और bidi (द्विदिश एल्गोरिथम), जो यह पता लगाता है कि दाएँ-से-बाएँ और बाएँ-से-दाएँ रन लाइन पर कैसे इंटरलीव होते हैं।
हालांकि, एक PDF आपकी वाक्य संरचना को स्टोर नहीं करता। यह ग्लिफ़ (glyphs) — फ़ॉन्ट में इंडेक्स — के साथ-साथ स्थान भी स्टोर करता है। शेपिंग पहले ही हो चुकी होती है और उसमें पक्की कर दी जाती है। टेक्स्ट वापस कॉपी करने के लिए, रीडर को ग्लिफ़ से चरित्र तक का एक मैप चाहिए होता है, जिसे फ़ाइल ToUnicode टेबल के रूप में शामिल कर सकती है। और यही मुख्य बात है:
- कोई मैप नहीं, कोई टेक्स्ट नहीं। यदि जनरेटर ने इसे शामिल नहीं किया था, तो एक्सट्रैक्शन से अक्षर नहीं, बल्कि ग्लिफ़ नंबर मिलते हैं। आपको कचरा मिलता है जो ठीक से रेंडर होता है और जिसका कोई मतलब नहीं होता।
- गलत चीज़ का मैप। कुछ जनरेटर ग्लाइफ्स को प्रस्तुति रूपों (presentation forms) में मैप करते हैं — जो एक पुराना यूनिकोड ब्लॉक है जिसमें प्रत्येक प्री-शेप किया गया वेरिएंट अलग से रखा जाता है। इस तरह निकाला गया टेक्स्ट स्क्रीन पर सही दिखता है लेकिन यह सामान्य अरबी नहीं होता: सर्च इसे मैच नहीं करेगा, और अन्य सॉफ्टवेयर इसे ठीक से हैंडल नहीं करेंगे।
- क्रम खो गया। यदि फ़ाइल ग्लाइफ्स को रिवर्स करने की जानकारी के बिना विज़ुअल ऑर्डर में स्टोर करती है, तो आपको पढ़ने के क्रम के बजाय ड्राइंग के क्रम में अक्षर मिलते हैं — यह क्लासिक "पीछे की ओर" पेस्ट होता है।
- जोड़ टूटे। निष्कर्षण (Extraction) जो उनके कनेक्शन के बिना अलग-थलग अक्षरों को पुनर्प्राप्त करता है, वह disconnected वर्णों की एक पंक्ति बनाता है, जिनमें से प्रत्येक व्यक्तिगत रूप से सही होता है।
ध्यान दें कि इसका क्या मतलब है: कि अरबी PDF से ठीक से कॉपी होती है या नहीं, यह उस चीज़ पर निर्भर करता था जिसने फ़ाइल बनाई थी, अक्सर कई साल पहले। कोई भी रीडर उस जानकारी को पूरी तरह से पुनर्प्राप्त नहीं कर सकता जिसे जनरेटर ने हटा दिया था।
वह क्या कर सकते हैं जो एक ऐसी फ़ाइल के साथ है जो अपना टेक्स्ट नहीं दे रही
- पहले निकालने की कोशिश करें। यदि दस्तावेज़ किसी सक्षम जनरेटर द्वारा बनाया गया था, तो टेक्स्ट वहाँ होता है और साफ़-सुथरा कॉपी हो जाता है। इससे पहले कि आप कुछ भारी काम करें, हमेशा तीस सेकंड का समय देना लायक होता है।
- एक अलग रीडर का प्रयास करें। रीडर्स इस बात में भिन्न होते हैं कि वे शेपिंग को कितनी अच्छी तरह रिवर्स करते हैं और bidi को कैसे संभालते हैं। एक फ़ाइल जो एक से खराब पेस्ट होती है, वह दूसरे से सही ढंग से पेस्ट हो सकती है।
- यदि यह scan है, तो यह कभी टेक्स्ट नहीं था। तब कॉपी करने की कोई भी मात्रा काम नहीं करेगी, और OCR एकमात्र रास्ता है — नीचे देखें।
- यदि निष्कर्षण से प्रस्तुति रूप (presentation forms) मिलते हैं, तो आपके पास पाठ होता है, लेकिन अजीब तरह का। इसे सामान्य बनाने की आवश्यकता हो सकती है ताकि यह सामान्य अरबी के साथ खोज योग्य बन सके।
अरबी OCR: अधिक कठिन और स्पष्ट
जब दस्तावेज़ scan किया गया होता है, तो पहचान ही एकमात्र रास्ता होती है — और अंग्रेजी की तुलना में अरबी के लिए यह काफी कठिन है। ऊपर दिए गए हर फीचर इंजन के खिलाफ काम करता है: अक्षर जुड़ते हैं, इसलिए वर्णों के बीच काटने के लिए कोई साफ अंतराल नहीं होता; आकार स्थिति के अनुसार बदलते हैं, जिससे पहचानने योग्य चीज़ें कई गुना बढ़ जाती हैं; ऊपर और नीचे के बिंदु अन्यथा समान अक्षरों में अंतर बताते हैं, इसलिए scanर के शोर का एक कण भी शब्द बदल सकता है; विसर्ग (diacritics) मौजूद हो सकते हैं या नहीं भी।
व्यावहारिक परिणाम स्पष्ट रूप से बताना लायक हैं:
- scan गुणवत्ता सामान्य से भी अधिक मायने रखती है। 300 dpi, उच्च कंट्रास्ट, सीधा। अरबी के साथ, एक औसत scan खराब नहीं होता।
- अरबी मॉडल का उपयोग करें। OCR Arabic — अरबी पाठ पर अंग्रेजी मॉडल कुछ भी उपयोगी उत्पन्न नहीं करता है।
- प्रूफरीड करने की अपेक्षा रखें। साफ मशीन-प्रिंटेड अरबी अच्छे परिणाम देती है। अच्छा का मतलब उत्तम नहीं होता, और त्रुटियाँ स्पष्ट बकवास के बजाय एकल-बिंदु अंतर होती हैं जो अर्थ बदल सकती हैं।
- हस्तलेखन संभव नहीं है। यह किसी भी भाषा में समर्थित उपयोग मामला नहीं है, और विशेष रूप से अरबी हस्तलेखन के लिए ऐसा ही है।
OCR आपके अपने डिवाइस पर चलता है और यह CyvoDocOps Pro का हिस्सा है; क्योंकि Pro को App Store या Google Play के माध्यम से खरीदा जाता है न कि वेब पर, इसलिए OCR टूल्स मोबाइल ऐप में होते हैं। यह जानने के लिए कि पहचान कैसे काम करती है, कृपया scan किए गए PDF को सर्च करने योग्य बनाना देखें।
RTL दस्तावेज़ों में स्टैम्प और एनोटेशन
अरबी व्यावसायिक दस्तावेज़ पश्चिमी दस्तावेज़ों की तुलना में स्टैम्प और सील पर बहुत अधिक निर्भर करते हैं — जैसे अनुमोदन, रसीदें, आधिकारिक समर्थन। इन्हें PDF में जोड़ने से अपनी चुनौतियाँ आती हैं: स्टैम्प के अंदर का टेक्स्ट सही शेपिंग (shaping) मांगता है, और प्लेसमेंट कन्वेंशन पढ़ने की दिशा का पालन करते हैं, इसलिए जो स्टैम्प बाएं-से-दाएं पेज पर स्वाभाविक दिखता है वह दाएं-से-बाएं वाले पर अजीब लग सकता है।
अरबी स्टैम्प शेपिंग को संभालता है ताकि टेक्स्ट अलग अक्षरों की लाइन के बजाय जुड़े हुए अरबी के रूप में रेंडर हो — यह वह विफलता मोड है जो आपको उन टूल्स से मिलता है जो अरबी को लैटिन मानते हैं जिसमें विभिन्न अक्षर होते हैं। तारीख स्टैम्प और नाम के पहले अक्षर जैसे संबंधित टूल्स भी इसी पैटर्न का पालन करते हैं।
अरबी दस्तावेज़ों के लिए व्यावहारिक आदतें
- स्रोत को बनाए रखें। जिस सॉफ़्टवेयर ने इसे बनाया है, उससे मूल फ़ाइल हमेशा किसी भी बाद में प्राप्त किए गए टेक्स्ट से बेहतर पाठ देगी।
- कमीशन करने से पहले एक्सट्रैक्शन का परीक्षण करें। यदि कोई कार्यप्रवाह अरबी PDF को सर्च करने पर निर्भर करता है, तो इसे बनाने से पहले यह जांच लें कि क्या टेक्स्ट वास्तव में एक नमूने से बाहर आता है।
- scan की तुलना में वास्तविक टेक्स्ट को प्राथमिकता दें। एक जन्मजात-डिजिटल अरबी PDF हर बार scan किए गए दस्तावेज़ से बेहतर होता है। केवल तभी scan करें जब कागज़ एकमात्र स्रोत हो।
- मिश्रित सामग्री वाले दस्तावेज़। वे दस्तावेज़ जिनमें अरबी के साथ अंग्रेजी शब्द, इनवॉइस नंबर और तारीखें मिली हुई होती हैं, उनमें bidi समस्याएँ केंद्रित होती हैं। उन लाइनों की विशेष रूप से जाँच करें।
- सिर्फ़ दिखावे पर न जाएँ। एक फ़ाइल जो बहुत अच्छी दिखती है, वह फिर भी scan हो सकती है, या उसमें इस्तेमाल करने योग्य टेक्स्ट लेयर नहीं हो सकता। कोई शब्द चुनने का प्रयास करें — अगर कुछ हाइलाइट नहीं होता है, तो यह एक तस्वीर है।
यहाँ स्थानीय प्रोसेसिंग क्यों मायने रखती है
अरबी भाषा के दस्तावेज़ जिन्हें इस तरह के काम की ज़रूरत होती है, वे आमतौर पर आधिकारिक होते हैं: अनुबंध (contracts), सरकारी कागजात, वाणिज्यिक पंजीकरण, ID दस्तावेज़, नोटरीकृत रिकॉर्ड। यह ठीक वही श्रेणी है जहाँ किसी थर्ड-पार्टी सेवा पर upload करना सबसे कम उपयुक्त होता है — और जहाँ "हम एक घंटे बाद हटा देते हैं" ऐसा वादा है जिसे आप ऑडिट नहीं कर सकते। CyvoDocOps में, समर्थित ऑपरेशन आपके browser में स्थानीय रूप से चलते हैं, और मोबाइल ऐप में ऑन-डिवाइस OCR scan को कहीं भी भेजे बिना प्रोसेस करता है। उपलब्ध सुविधाओं के लिए अरबी PDF टूल्स देखें।
अक्सर पूछे जाने वाले प्रश्न
जब मैं इसे PDF से कॉपी करता हूँ तो अरबी टेक्स्ट अलग क्यों आता है?
क्योंकि PDF प्री-शेप्ड ग्लाइफ़ स्टोर करता है और वास्तविक अक्षरों तक का मैप या तो गायब होता है या गलत। पेज सही ढंग से बनता है; मूल टेक्स्ट को पुनर्निर्मित करने के लिए आवश्यक जानकारी फ़ाइल बनाते समय हटा दी गई थी।
जब मैं इसे पेस्ट करता हूँ तो पाठ उल्टा क्यों होता है?
फ़ाइल में संग्रहीत ग्लिफ़ (glyphs) ड्राइंग ऑर्डर में होते हैं और पढ़ने का क्रम पुनर्प्राप्त करने के लिए पर्याप्त जानकारी नहीं होती। कुछ रीडर इसे सही ढंग से उलट देते हैं और कुछ नहीं — एक अलग रीडर आज़माना एक वास्तविक समाधान है।
क्या अरबी OCR अंग्रेजी जितना सटीक होता है?
नहीं, और कोई भी जो अन्यथा दावा करता है वह अति-घोषित कर रहा है। जुड़े हुए अक्षर, स्थिति पर निर्भर आकार और अर्थ ले जाने वाले बिंदु सभी इसे कठिन बनाते हैं। साफ़ मुद्रित scan अच्छे परिणाम देते हैं जिन्हें अभी भी प्रूफरीडिंग की आवश्यकता होती है।
क्या मैं एक अरबी scan किए गए PDF में खोज कर सकता हूँ?
जब तक इसमें टेक्स्ट लेयर नहीं हो जाती। इसे जोड़ने के लिए OCR चलाएँ — हालांकि ध्यान दें कि किसी OCR किए गए दस्तावेज़ में नकारात्मक खोज परिणाम यह साबित नहीं करता है कि शब्द अनुपस्थित है।
क्या मेरे अरबी दस्तावेज़ upload हुए हैं?
नहीं। समर्थित वेब ऑपरेशन आपके browser में स्थानीय रूप से चलते हैं, और मोबाइल ऐप में OCR आपके डिवाइस पर चलता है। दस्तावेज़ को किसी सर्वर पर नहीं भेजा जाता है।