PDF एनोटेशन
Potato में pdf डिस्प्ले प्रकार से PDF एनोटेट करें, जिसमें स्पैन हाइलाइटिंग, पेज पर बाउंडिंग बॉक्स, पेज-पार लिंकिंग और स्कैन की गई फ़ाइलों के लिए OCR शामिल हैं।
pdf डिस्प्ले ब्राउज़र में PDF.js की मदद से PDF रेंडर करता है और एनोटेशन सतह को पहले से निकाले गए टेक्स्ट पर नहीं, बल्कि रेंडर हुए पेज पर रखता है। एनोटेटर असली दस्तावेज़ देखता है, जिसके कॉलम, टेबल, आकृतियाँ और पेज-ब्रेक ज्यों के त्यों रहते हैं, और वह उसी जगह लेबल लगाता है। इस डिस्प्ले को एक ही अनिवार्य कुंजी चाहिए, यानी वह फ़ील्ड जिसमें PDF का पथ या URL है, और बाकी सब कुछ डिस्प्ले विकल्प है।
instance_display:
fields:
- key: pdf
type: pdf
label: "Document"
display_options:
view_mode: scroll
max_height: 760
zoom: page-widthview_mode scroll, paginated या side-by-side लेता है। लगातार स्क्रॉल हर पेज को एक ही कंटेनर में जमा देता है, जो तब मायने रखता है जब किसी एनोटेशन को पेज-ब्रेक के पार जाना पड़े। पेजिनेटेड व्यू नेविगेशन नियंत्रणों के साथ एक बार में एक पेज दिखाता है और लंबे दस्तावेज़ों के लिए ठीक रहता है, जहाँ एनोटेटर पेज-दर-पेज काम करता है।
तीन एनोटेशन मोड
annotation_mode तय करता है कि एनोटेटर क्या बना सकता है, और यही वह विकल्प है जो कार्य की शक्ल नहीं, बल्कि कार्य को ही बदल देता है। डिफ़ॉल्ट span है।
| मोड | एनोटेटर क्या करता है | किससे जुड़ा है |
|---|---|---|
span | टेक्स्ट चुनता है और उस पर लेबल लगाता है | PDF.js की टेक्स्ट लेयर |
bounding_box | पेज पर कहीं भी एक बॉक्स बनाता है | पेज निर्देशांक |
link | पहले एंकर लगाता है, फिर उन्हें जोड़ता है | टेक्स्ट स्पैन और पेज क्षेत्र |
स्पैन मोड इस पर निर्भर है कि PDF में टेक्स्ट लेयर हो, जो वर्ड प्रोसेसर या टाइपसेटिंग सिस्टम से बने किसी भी PDF में होती है और स्कैन में नहीं होती। बाउंडिंग-बॉक्स मोड इस पर निर्भर नहीं है, इसलिए स्कैन किए गए पेज को बिना किसी टेक्स्ट निष्कर्षण के भी क्षेत्र के हिसाब से लेबल किया जा सकता है।
चूँकि pdf डिस्प्ले स्पैन को दूसरे डिस्प्ले वाले .text-content रैपर के बजाय PDF.js टेक्स्ट लेयर के ज़रिए एंकर करता है, यह span_target फ़्लैग स्वीकार नहीं करता। स्पैन एनोटेशन फिर भी काम करता है, PDF की अपनी टेक्स्ट लेयर के माध्यम से।
पेज-पार लिंकिंग
लिंक मोड उन संबंधों के लिए है जो पेजों के आर-पार जाते हैं, जैसे पेज 2 पर कोई दावा जो पेज 9 की किसी आकृति पर टिका हो। एनोटेटर पहले एंकर चिह्नित करता है, फिर उनके बीच टाइप किए हुए लिंक खींचता है, और Potato एंकरों और लिंकों को अलग-अलग स्कीमा नामों के तहत दर्ज करता है।
instance_display:
fields:
- key: pdf
type: pdf
label: "Document"
display_options:
annotation_mode: link
view_mode: scroll
enable_text_anchors: true
enable_region_anchors: true
anchor_schema: pdf_anchors
link_schema: pdf_links
anchor_labels:
- name: claim
color: "#dc2626"
- name: figure
color: "#2563eb"
link_types:
- name: refers_to
directed: true
color: "#dc2626"
allowed_source_labels: [claim]
allowed_target_labels: [figure]allowed_source_labels और allowed_target_labels यह सीमित करते हैं कि कोई लिंक प्रकार किन एंकरों को जोड़ सकता है, और इसी तरह कोई दिशानिर्देश ऐसी चीज़ बन जाता है जिसे इंटरफ़ेस लागू करता है, न कि ऐसी चीज़ जिसे एनोटेटर को याद रखना पड़े। ऊपर की तरह कॉन्फ़िगर किया गया refers_to लिंक केवल claim से शुरू हो सकता है और केवल figure पर खत्म हो सकता है, इसलिए किसी आकृति से वापस किसी दावे तक खींचा गया लिंक अस्वीकार कर दिया जाता है। same_as जैसे सममित संबंध के लिए directed: false सेट करें।
एंकर दो तरह के होते हैं और दोनों को अलग-अलग बंद किया जा सकता है। enable_text_anchors किसी टेक्स्ट स्पैन को हाइलाइट करने देता है, और enable_region_anchors क्षेत्र बॉक्स बनाने देता है, जो किसी आकृति या टेबल के लिए ज़रूरी है। एक पूरा हल किया हुआ उदाहरण अपस्ट्रीम में examples/advanced/pdf-link-scroll/ पर मिलता है।
स्कैन किए गए दस्तावेज़ और OCR
ocr डिफ़ॉल्ट रूप से बंद है, और Potato इसे केवल लिंक मोड में पढ़ता है। सेट होने पर शब्द सर्वर की ओर निकाले जाते हैं और उनसे क्लाइंट टेक्स्ट लेयर बनाई जाती है, जिससे बिना एम्बेडेड टेक्स्ट वाला स्कैन भी टेक्स्ट एंकर ले सकता है। यह विकल्प false, true या auto लेता है, और Potato किसी भी अन्य मान को अस्वीकार कर देता है।
instance_display:
fields:
- key: pdf
type: pdf
display_options:
annotation_mode: link
ocr: auto
ocr_dpi: 200
ocr_lang: engतीनों सेटिंग्स में फ़र्क इस बात का है कि पास कब चलता है। false अकेले एम्बेडेड टेक्स्ट लेयर का उपयोग करता है, true हमेशा OCR चलाता है, और auto केवल तभी OCR पर लौटता है जब एम्बेडेड टेक्स्ट लेयर खाली लौटे। मिश्रित कॉर्पस पर auto बेहतर है, क्योंकि OCR धीमा है और इसके लिए Tesseract इंस्टॉल होना चाहिए। ocr_dpi यह नियंत्रित करता है कि OCR के पढ़ने से पहले हर पेज किस रिज़ॉल्यूशन पर रास्टराइज़ किया जाए, और इसे बढ़ाने से हर पेज पर समय लगता है। ocr_lang Tesseract भाषा कोड लेता है और डिफ़ॉल्ट रूप से eng है।
डिस्प्ले विकल्प
| विकल्प | डिफ़ॉल्ट | प्रभाव |
|---|---|---|
view_mode | scroll | scroll, paginated या side-by-side |
max_height | 700 | कंटेनर की ऊँचाई, पिक्सेल में |
max_width | कोई नहीं | कंटेनर की चौड़ाई |
text_layer | true | टेक्स्ट चयन सक्षम करता है |
show_page_controls | true | पेज नेविगेशन नियंत्रण |
initial_page | 1 | सबसे पहले दिखाया जाने वाला पेज |
zoom | auto | auto, page-fit, page-width या कोई प्रतिशत |
annotation_mode | span | span, bounding_box या link |
bbox_min_size | 10 | स्वीकार किया जाने वाला सबसे छोटा बॉक्स, पिक्सेल में |
bbox_colors | कोई नहीं | प्रति लेबल बॉक्स रंग |
show_bbox_labels | true | बॉक्सों पर लेबल बनाता है |
thumbnail_sidebar | true | पेजिनेटेड व्यू में पेज थंबनेल |
enable_text_anchors | true | टेक्स्ट स्पैन लिंक एंकर के रूप में उपयोग योग्य |
enable_region_anchors | true | क्षेत्र बॉक्स लिंक एंकर के रूप में उपयोग योग्य |
anchor_schema | pdf_anchors | एंकरों पर दर्ज किया गया स्कीमा |
link_schema | pdf_links | लिंकों पर दर्ज किया गया स्कीमा |
ocr | false | false, true या auto |
ocr_dpi | 200 | OCR रेंडरिंग रिज़ॉल्यूशन |
ocr_lang | eng | Tesseract भाषा कोड |
Word और Markdown फ़ाइलें
DOCX या Markdown फ़ाइल इसके बजाय document डिस्प्ले का उपयोग करती है, जो दस्तावेज़ की शीर्षक और अनुच्छेद संरचना बनाए रखता है और span_target स्वीकार भी करता है। यह annotation_mode को span या bounding_box के रूप में पढ़ता है, और show_outline मुख्य भाग के शीर्षकों से विषय-सूची बनाता है। Potato रेंडर किए गए मार्कअप को एनोटेटर तक पहुँचने से पहले एक अनुमति-सूची से गुज़ारता है, इसलिए निष्पादन योग्य टैग वाला कोई कॉर्पस फ़ील्ड चलाया नहीं जाता, बल्कि हटा दिया जाता है।
instance_display:
fields:
- key: report
type: document
label: "Report"
display_options:
show_outline: true
max_height: 600आगे पढ़ें
- इंस्टेंस डिस्प्ले हर डिस्प्ले प्रकार सूचीबद्ध करता है और बताता है कि उनमें से कौन-से स्पैन टारगेट स्वीकार करते हैं।
- स्पैन एनोटेशन उन लेबल विकल्पों को कवर करता है जो कोई स्पैन स्कीमा लेता है।
- दस्तावेज़ कैसे एनोटेट करें एक दस्तावेज़-समीक्षा कार्य को शुरू से अंत तक करके दिखाता है।
- कार्यान्वयन के विवरण के लिए स्रोत दस्तावेज़ीकरण देखें।