डबल-कॉलम पीडीएफ को क्रमिक रूप से क्यों निकाला जाता है? पहले निर्देशांक रखें, और फिर पढ़ने के क्रम के बारे में बात करें
समझाएं कि डबल-कॉलम पीडीएफ टेक्स्ट क्रमबद्धता प्रारूप की अर्थपूर्ण संरचना की कमी से उत्पन्न होती है, स्पष्ट करें कि सॉर्ट पैरामीटर केवल एक ज्यामितीय सॉर्ट है। समन्वय विभाजन पर आधारित एक सिंथेटिक पायथन उदाहरण अनुक्रम पुनर्गठन तर्क को प्रदर्शित करने, लागू सीमाओं और मैन्युअल समीक्षा लाल रेखाओं को स्पष्ट करने और एक व्यावहारिक स्वीकृति पथ प्रदान करने के लिए प्रदान किया जाता है जो ओमनीडॉक अनुवाद वर्कफ़्लो को जोड़ता है।
डबल-कॉलम पीडीएफ से निकाले गए पाठ अनुक्रम अक्सर गलत तरीके से पहचाने नहीं जाते हैं, लेकिन गलत क्रम में पढ़े जाते हैं। यह आलेख उन पाठकों के लिए है, जिन्हें कागजात और रिपोर्ट जैसे डबल-कॉलम पीडीएफ से पाठ निकालने की आवश्यकता होती है, और फिर उन्हें अनुवाद या व्यवस्थित करना होता है।
पाठक आमतौर पर इस स्थिति का सामना करते हैं: बाएं कॉलम के आधे रास्ते में, अगले वाक्य के बाद दाएं कॉलम में सूत्र स्पष्टीकरण होता है। सभी पात्रों को सही ढंग से पहचाना जा सकता है, लेकिन क्रम बाधित है। यह आलेख पहले बताता है कि क्रमबद्धता क्यों होती है, और फिर निर्देशांक द्वारा विभाजन करके क्रम को पुनर्गठित करने के तरीके को प्रदर्शित करने के लिए एक सिंथेटिक उदाहरण का उपयोग करता है। अंत में, यह आपको यह तय करने में सुविधा प्रदान करने के लिए लागू सीमाएँ और स्वीकृति सूची देता है कि क्या इसका उपयोग आपकी अपनी फ़ाइलों में किया जा सकता है।
डबल-कॉलम पीडीएफ को क्रमिक रूप से क्यों निकाला जाता है? एक वाक्य का निष्कर्ष
पहले निर्देशांक और स्रोत पृष्ठ रखें, और फिर क्षेत्रीय नियमों के अनुसार क्रमबद्ध करें। पूरे पृष्ठ को सीधे एक लंबी स्ट्रिंग में संपीड़ित न करें।
| आपकी स्थिति | अनुशंसित प्रथाएँ | कारण |
|---|---|---|
| साधारण दो-स्तंभ का पेपर, पाठ क्रमबद्धता | किसी अनुभाग के बाएँ कॉलम को पहले पढ़ें, फिर दाएँ कॉलम को पढ़ें | बारी-बारी से लाइन-दर-लाइन जोड़ने से पैराग्राफ नष्ट हो जाएंगे |
| बस इसे एक त्वरित प्रयास देना चाहता था | sort को चालू और बंद करने के परिणामों की तुलना करें | sort केवल ज्यामितीय सॉर्टिंग करता है, जो नियम पृष्ठों के लिए उपयुक्त है |
| पृष्ठों में क्रॉस-कॉलम शीर्षक, साइड नोट्स और फ़ुटनोट हैं | क्षेत्र के अनुसार अलग-अलग प्रक्रिया करें और क्षेत्रीय संबंधों की जांच करें | अकेले ज्यामितीय छँटाई इन सामग्रियों की विशेषता निर्धारित नहीं कर सकती है। |
| अनुवाद मॉडल को सौंपने की आवश्यकता है | निर्देशांक और पृष्ठ क्रमांक रखें, पहले क्रम व्यवस्थित करें और फिर अनुवाद करें | गलत क्रम में संदर्भों को मॉडल बदलकर भी सुधारना मुश्किल है। |
ऑर्डर क्यों गड़बड़ा गया?
पीडीएफ पाठ के प्रत्येक पैराग्राफ की स्थिति को रिकॉर्ड करता है, न कि "यह कौन सा पैराग्राफ है और यह किस कॉलम से संबंधित है?" जब निष्कर्षण उपकरण निर्देशांक द्वारा आउटपुट करता है, यदि कोई क्षेत्र नियम नहीं हैं, तो बाएं और दाएं कॉलम में पाठ को इंटरलेस किया जा सकता है।
ऐसी समस्याएँ आवश्यक रूप से पहचान चरण के दौरान उत्पन्न नहीं होती हैं। हो सकता है कि सभी शब्दों का उल्लेख सही ढंग से किया गया हो, लेकिन गलत क्रम में। इसलिए, समाधान विचार को मान्यता या अनुवाद लिंक को बार-बार बदलने के बजाय सॉर्टिंग और ज़ोनिंग पर केंद्रित किया जाना चाहिए।
पहले निर्देशांक रखें, और फिर पढ़ने के क्रम के बारे में बात करें
आदेश देने की समस्या को हल करने से पहले, पाठ के निर्देशांक और मूल पृष्ठ को सुरक्षित रखें। पूरे पृष्ठ को एक लंबी स्ट्रिंग में संपीड़ित करने में जल्दबाजी न करें।
- क्षेत्र के स्वामित्व के बाद के निर्णय की सुविधा के लिए प्रत्येक टेक्स्ट ब्लॉक के चार निर्देशांक रखें।
- बैकट्रैकिंग और मैन्युअल सत्यापन की सुविधा के लिए स्रोत पृष्ठ संख्या रखें।
- एक बार जब क्षेत्रीय जानकारी खो जाती है, तो बाद के अनुवादों को गलत संदर्भ मिलेगा, और अनुवाद मॉडल को बदलने से इसका समाधान नहीं हो पाएगा।
सॉर्ट=ट्रू प्रयास करने लायक है, लेकिन यह लेआउट समझने वाला नहीं है
PyMuPDF टेक्स्ट, शब्द, ब्लॉक इत्यादि जैसे विभिन्न निष्कर्षण फॉर्म प्रदान करता है। sort की विशिष्ट प्रोसेसिंग आउटपुट प्रकार और संस्करण के साथ भिन्न होती है। इसे आम तौर पर एक निश्चित टाइपसेटिंग एल्गोरिदम के रूप में वर्णित नहीं किया जा सकता है, न ही इसे सभी दस्तावेजों के पढ़ने के क्रम को बहाल करने का वादा किया जा सकता है।
उपयोग के लिए सुझाव इस प्रकार हैं:
- नियम पृष्ठ के लिए, आप पहले सॉर्टिंग को चालू और बंद करने के परिणामों की तुलना कर सकते हैं।
- क्रॉस-कॉलम शीर्षक, साइड नोट्स और फ़ुटनोट वाले पृष्ठों के लिए, क्षेत्र संबंध को फिर से जांचना होगा।
- पीडीएफ में संरचनात्मक टैग हो सकते हैं, लेकिन इसका मतलब यह नहीं है कि वर्तमान में उपयोग किया जाने वाला निष्कर्षण इंटरफ़ेस स्वचालित रूप से आपको आवश्यक सिमेंटिक पैराग्राफ ट्री देगा।
यह आलेख सार्वभौमिक लेआउट मान्यता को लागू नहीं करता है, बल्कि केवल "मौजूदा क्षेत्रीय नियमों के अनुसार कैसे क्रमबद्ध करें" प्रदर्शित करता है और क्षमताओं की सीमाओं को स्पष्ट रूप से समझाता है। इंटरफ़ेस और निष्कर्षण फॉर्म के लिए, कृपया PyMuPDF आधिकारिक पाठ निष्कर्षण गाइड देखें।
समस्या को समझाने के लिए पांच संश्लेषित टेक्स्ट ब्लॉक का उपयोग करें
उदाहरण पृष्ठ 600 अंक चौड़ा है, जिसमें स्तंभों के बीच 300-बिंदु की सीमा है; शीर्ष के 80 बिंदुओं के भीतर क्रॉस-कॉलम शीर्षक क्षेत्र है, और उसके नीचे पाठ क्षेत्र है। इनपुट को जानबूझकर खंगाला गया है: दाएं कॉलम में दूसरा पैराग्राफ पहले आता है, और बाएं कॉलम में पहला पैराग्राफ आखिरी में आता है। प्रत्येक टुपल में आयत और पाठ के चार निर्देशांक होते हैं। यह प्रदर्शन उद्देश्यों के लिए परिभाषित एक सरलीकृत संरचना है और get_text("blocks") के पूर्ण रिटर्न मूल्य के बराबर नहीं है।
अपेक्षित परिणाम होना चाहिए: शीर्षक, बाएं कॉलम में पहला पैराग्राफ, बाएं कॉलम में दूसरा पैराग्राफ, दाएं कॉलम में पहला पैराग्राफ, दाएं कॉलम में दूसरा पैराग्राफ। स्तंभ की सीमाओं को पार करने वाले पाठ के ब्लॉकों को चुपचाप छोड़े जाने या बाएं स्तंभ में रखे जाने के बजाय अपवाद सूची में जाना चाहिए।
एक छोटा सा उदाहरण जो पूरी तरह से चल सकता है
निम्न उदाहरण केवल पायथन मानक लाइब्रेरी का उपयोग करता है। PyMuPDF को एकीकृत करते समय, आप ब्लॉक निष्कर्षण परिणामों से पहले पांच फ़ील्ड को बनाए रख सकते हैं और पहले गैर-पाठ ब्लॉक को बाहर कर सकते हैं। उदाहरण बाहरी फ़ाइलों को नहीं खोलता है, OCR की आवश्यकता नहीं है, और स्वचालित रूप से स्तंभ सीमाओं का अनुमान नहीं लगाता है।
def order_known_layout(blocks, split_x=300, title_bottom=80):
groups = {"title": [], "left": [], "right": []}
rejected = []
for block in blocks:
x0, y0, x1, y1, text = block
if x1 <= x0 or y1 <= y0:
rejected.append(block)
continue
if y1 <= title_bottom:
region = "title"
elif y0 < title_bottom:
rejected.append(block)
continue
elif x1 <= split_x:
region = "left"
elif x0 >= split_x:
region = "right"
else:
rejected.append(block)
continue
groups[region].append(block)
ordered = []
for region in ("title", "left", "right"):
ordered.extend(sorted(groups[region], key=lambda b: (b[1], b[0])))
return [b[4] for b in ordered], rejected
sample = [(330, 160, 550, 190, "R2"), (40, 100, 270, 130, "L1"),
(40, 20, 550, 50, "TITLE"), (330, 100, 550, 130, "R1"),
(40, 160, 270, 190, "L2")]
ordered, rejected = order_known_layout(sample)
assert ordered == ["TITLE", "L1", "L2", "R1", "R2"]
assert rejected == []
wide = (40, 220, 550, 250, "FULL WIDTH BODY")
assert order_known_layout(sample + [wide])[1] == [wide]
assert order_known_layout([]) == ([], [])
print("known-layout examples: 3 assertions passed")
उदाहरण में 80 और 300 मान इस समग्र पृष्ठ की सेटिंग्स से आते हैं, जो सभी पीडीएफ पर लागू अनुभव सीमा नहीं हैं। जब अगले पृष्ठ पर बाएँ और दाएँ स्तंभों की चौड़ाई बदलती है, तो पिछले पृष्ठ के मापदंडों का उपयोग करने से "प्रोग्राम सामान्य रूप से चल रहा है लेकिन सामग्री त्रुटियां" हो सकती हैं। क्षेत्रीय नियमों को पृष्ठ का पालन करना चाहिए, कम से कम नियम संस्करण और पृष्ठ आकार रिकॉर्ड करना चाहिए।
📊 कोर तुलना
| हैंडलिंग के तरीके | क्या किया जा सकता है? | क्या ध्यान दिया जाना चाहिए? |
|---|---|---|
सीधे sort=True का उपयोग करें | निर्देशांक के आधार पर ज्यामितीय रूप से क्रमबद्ध करें; पहले नियम पृष्ठ का प्रयास करें | मैं बाधा शीर्षक, साइड नोट्स और फुटनोट के स्वामित्व को नहीं समझता |
| समन्वय विभाजन द्वारा क्रमबद्ध करें | पहले क्षेत्र को विभाजित करें, फिर आसान निरीक्षण के लिए खंड द्वारा पढ़ें | विभाजन सीमा पृष्ठ पर निर्भर करती है और इसे प्रति-पृष्ठ के आधार पर सत्यापित करने की आवश्यकता होती है |
| मैन्युअल रूप से एनोटेट किए गए पढ़ने का क्रम | परिणाम सबसे अधिक नियंत्रणीय हैं और प्रमुख दस्तावेजों को सत्यापित करने के लिए उपयुक्त हैं | उच्च लागत, स्पॉट चेक और बेंचमार्किंग के लिए उपयुक्त |
स्वीकृति के दौरान केवल त्रुटियों को न देखें
| निरीक्षण आइटम | क्या देखा जाना चाहिए | यदि यह आवश्यकताओं को पूरा नहीं करता है तो क्या करें |
|---|---|---|
| क्षेत्रीय व्यवस्था | शीर्षक के बाद, पहले पूर्ण बाएँ बार, फिर पूर्ण दाएँ बार | विभाजन नियमों की जाँच करें; पैच को पैच करने के लिए स्ट्रिंग्स की अदला-बदली पर भरोसा न करें |
| सामग्री में निरंतरता | स्वीकृत ब्लॉकों की संख्या और अस्वीकृत ब्लॉकों की संख्या इनपुट ब्लॉकों की संख्या के बराबर होती है | डिलीवरी को ब्लॉक करें और मूक लापता ब्लॉकों की जांच करें |
| बाधाओं का मुख्य पाठ | अस्वीकृति सूची में दिखाई दें | बाधा अनुभाग या मैन्युअल निर्णय जोड़ें |
| रोटेशन और काटना | इनपुट ब्लॉक और विभाजन एक ही समन्वय प्रणाली का उपयोग करते हैं | सबसे पहले, निर्देशांक को एकीकृत करें, फिर समावेशन निर्णय लें |
| शीर्षलेख और फुटनोट | व्यावसायिक नियमों के अनुसार अलग से वर्गीकरण | नीचे दिए गए सभी टेक्स्ट को एक साथ न हटाएं |
वास्तविक कागजात में, इस तरह की एक संरचना भी दिखाई दे सकती है: बीच में एक बाधा आरेख डालें, और छवि के नीचे डबल कॉलम को पुनरारंभ करें। इस बिंदु पर, आपको पहले पृष्ठ को ऊपरी और निचले वर्गों में विभाजित करना होगा और फिर उन्हें अलग-अलग क्रमबद्ध करना होगा। इस लेख में एक बार का तीन-खंड विभाजन पर्याप्त नहीं है। चीनी ऊर्ध्वाधर लेआउट, दाएं से बाएं पाठ और जटिल सीमा नोटों का उपयोग यहां निर्देशों को पढ़ने के लिए नहीं किया जाना चाहिए।
🎯 कौन सा तरीका आपको सूट करता है?
यदि आप ......
- केवल एकल या डबल-कॉलम पृष्ठ जिन्हें केवल नियमों को संभालने की आवश्यकता होती है: पहले
sortको सक्षम करने और बंद करने के परिणामों की तुलना करें, फिर तय करें कि विभाजन नियमों का उपयोग करना है या नहीं। - क्रॉसबार शीर्षक, चार्ट या फ़ुटनोट के साथ कागजात संभालना: पृष्ठों को अनुभाग के अनुसार विभाजित करें और क्रॉसबार सामग्री के लिए अपवाद सूचियाँ सेट करें।
- आपको अनुवाद दूसरों को सौंपना होगा: निर्देशांक और पृष्ठ संख्याएँ रखें, स्वीकृति चेकलिस्ट के अनुसार प्रत्येक आइटम की जाँच करें, और केवल यह न देखें कि ऑपरेशन त्रुटि है या नहीं।
- यदि आप स्वयं स्क्रिप्ट बनाए नहीं रखना चाहते हैं: आप सीधे तैयार दस्तावेज़ अनुवाद टूल का उपयोग कर सकते हैं और उसी अनुक्रमिक चेकलिस्ट के साथ अनुवाद की जांच कर सकते हैं।
ओमनीडॉक अनुवाद वर्कफ़्लो कैसे प्राप्त करें
स्व-निर्मित लिपियों का मूल्य स्वीकृति नियमों को स्पष्ट रूप से बताने में निहित है; तैयार अनुवाद उपकरणों का मूल्य दस्तावेज़ों और अनुवादों के बीच के चरणों को कम करने में निहित है। दोनों संघर्ष नहीं करते हैं। ओमनीडॉक (उत्पाद प्रविष्टि) एक दस्तावेज़ अनुवाद पोर्टल प्रदान करता है, और आधिकारिक वेबसाइट ओसीआर, शब्दावली और द्विभाषी तुलना जैसी सुविधाएँ भी पेश करती है। आप चेकलिस्ट के एक ही सेट का उपयोग करके अनुवाद को अपलोड करने और जांचने के अधिकार के साथ एक असंवेदनशील कागज का चयन कर सकते हैं।
मुख्य जांचों में शामिल हैं:
- जांचें कि बाधा शीर्षक के बाद प्रारंभिक वाक्य जुड़ा हुआ है या नहीं।
- क्या कैप्शन को मुख्य पाठ में मिला दिया गया है?
- जांचें कि क्या फुटनोट संदर्भ अभी भी सही स्थिति के अनुरूप हैं।
यह वितरण परिणामों का मूल्यांकन कर रहा है, न कि ओमनीडॉक के आंतरिक एल्गोरिदम का अनुमान लगा रहा है। यदि परिणाम आवश्यकताओं को पूरा नहीं करता है, तो कृपया मूल पृष्ठ और त्रुटि अनुभाग रखें, पहले पहचानें कि समस्या पहचान, छँटाई या अनुवाद में है या नहीं, और फिर तय करें कि इसे कैसे ठीक किया जाए।
❓ अक्सर पूछे जाने वाले प्रश्न (FAQ)
1. डबल-कॉलम पीडीएफ सीरियल - क्या इसकी गलत पहचान की जा रही है?
आवश्यक रूप से नहीं। सभी वर्णों को सही ढंग से पहचाना जा सकता है; समस्याएं अक्सर पढ़ने के क्रम में होती हैं, इसलिए आपको पहले क्रम और क्षेत्र के नियमों की जांच करनी चाहिए।
2. sort=True: क्या आप सीधे डबल-कॉलम ऑर्डर समस्या को हल कर सकते हैं?
इसे सामान्यीकृत नहीं किया जा सकता है। sort की हैंडलिंग आउटपुट प्रकार और संस्करण के आधार पर भिन्न होती है। यह एक लेआउट समझ नहीं है और सभी दस्तावेज़ों के पढ़ने के क्रम को पुनर्स्थापित करने का वादा नहीं कर सकता है। नियम पृष्ठों के लिए, आप इसे पहले आज़मा सकते हैं; क्रॉस-अनुभागीय सामग्री वाले पृष्ठों के लिए, आपको क्षेत्रीय संबंधों की भी जाँच करनी होगी.
3. आप पूरे पृष्ठ को एक लंबी स्ट्रिंग में संपीड़ित क्यों नहीं कर सकते?
एक बार निर्देशांक और क्षेत्र की जानकारी खो जाने के बाद, बाद के अनुवादों को केवल गलत तरीके से जुड़ा हुआ संदर्भ मिलता है, और यहां तक कि एक अलग अनुवाद मॉडल भी इसे ठीक करने में सक्षम नहीं हो सकता है।
4. क्या उदाहरण में 80 और 300 अंक सीधे अन्य पीडीएफ पर लागू किए जा सकते हैं?
नहीं। ये केवल इस समग्र पृष्ठ के लिए सेटिंग्स हैं. जब पृष्ठ का आकार या स्तंभ की चौड़ाई बदलती है, तो नियम संस्करण को सत्यापित किया जाना चाहिए और प्रति पृष्ठ अलग-अलग रिकॉर्ड किया जाना चाहिए.
📝 सारांश
डबल-कॉलम पीडीएफ ऑर्डर समस्याओं के लिए, निर्देशांक और स्रोत पृष्ठों को पहले संरक्षित किया जाना चाहिए, फिर क्षेत्रीय नियमों के साथ नियंत्रित किया जाना चाहिए, और प्रत्येक आइटम को स्वीकृति चेकलिस्ट के अनुसार चेक किया जाना चाहिए। स्व-निर्मित स्क्रिप्ट स्पष्ट रूप से नियमों को लिखने के लिए उपयुक्त हैं, जबकि तैयार किए गए उपकरण परिचालन चरणों को कम करने के लिए बेहतर हैं; दोनों का एक साथ उपयोग किया जा सकता है।
अभी अनुभव करें: मूल स्वरूपण को संरक्षित करते हुए अनुवाद शुरू करने के लिए अपना दस्तावेज़ अपलोड करें


