RAG के लिए दस्तावेज़ क्लीनर
एक दस्तावेज़ क्लीनर पुनर्प्राप्ति-संवर्धित उत्पादन (RAG) के लिए PDF तैयार करता है: यह पाठ निकालता है, हर पृष्ठ पर दोहराए जाने वाले हेडर, फ़ुटर और पृष्ठ संख्याएँ ढूँढ़ता है, डुप्लिकेट अनुच्छेदों को चिह्नित करता है, और पाठ को खंडों में बाँटकर एम्बेड किए जाने से पहले उन्हें हटाने देता है। नीचे एक PDF डालें और सफ़ाई पूरी तरह आपके ब्राउज़र में होती है — फ़ाइल कभी आपके डिवाइस को नहीं छोड़ती और कुछ भी अपलोड नहीं होता। फ़र्नीचर एम्बेडिंग को क्यों विषाक्त करता है, इसके लिए RAG से पहले दस्तावेज़ साफ़ करें पढ़ें, संरचना को PDF सुलभता परीक्षक से जाँचें, या किसी फ़ाइल को पहले दस्तावेज़ फ़ोरेंसिक से निरीक्षण करें।
अंतिम अपडेट:
या फ़ाइल को इस बॉक्स में कहीं भी छोड़ें। फ़ाइल इस डिवाइस पर पढ़ी जाती है और कभी अपलोड नहीं होती। सीमा: 20 MB।
दस्तावेज़ एक नज़र में
चुनें कि क्या हटाना है
टिक किए गए आइटम साफ़ किए गए आउटपुट से हटा दिए जाते हैं। पूर्वावलोकन आपके टिक बदलते ही अपडेट होता है।
साफ़ किया गया पूर्वावलोकन और डाउनलोड
क्लीनर क्या हटाता है, और यह क्यों महत्त्वपूर्ण है
हर लंबा PDF फ़र्नीचर लिए होता है: रिपोर्ट के शीर्षक वाला हेडर, गोपनीयता सूचना वाला फ़ुटर, कोने में बढ़ती हुई पृष्ठ संख्या। मानव पाठक के लिए वह फ़र्नीचर दिशा-बोध है। एम्बेडिंग मॉडल के लिए वह हर एक पृष्ठ पर पूरी ताक़त से दोहराया जाने वाला शोर है, इसलिए वही हेडर पंक्ति दर्जनों बार खंडों में बँटती है, एम्बेड होती है और संग्रहित होती है, उन वेक्टरों को पतला करती है जिन्हें वास्तविक सामग्री का वर्णन करना चाहिए, और पुनर्प्राप्ति परिणामों में ऐसे प्रकट होती है मानो वह जानकारी हो। यह क्लीनर फ़र्नीचर को एक सरल, निरीक्षण-योग्य नियम वाली पहचान समस्या के रूप में देखता है: एक छोटी पंक्ति जो कम से कम साठ प्रतिशत पृष्ठों पर (और कम से कम दो पर) प्रकट होती है, हटाने के उम्मीदवार के रूप में सूचीबद्ध होती है, और वह जाएगी या नहीं, यह आप तय करते हैं। कुछ भी चुपचाप नहीं हटाया जाता — हर उम्मीदवार अपने पाठ, अपने पृष्ठों और अपनी गिनती के साथ दिखाया जाता है, इससे पहले कि आप उसे टिक करें या हटाएँ।
पृष्ठ संख्याओं को अपना उम्मीदवार मिलता है क्योंकि वे कभी शाब्दिक रूप से नहीं दोहरातीं: पहला पृष्ठ 1 कहता है, दूसरा 2, इसलिए दोहराव का नियम उन्हें कभी पकड़ नहीं पाएगा, और फिर भी एक खंड जो एक अकेली संख्या या “कुल 40 में से पृष्ठ 7” वाली पंक्ति पर समाप्त होता है, एम्बेडिंग को कुछ नहीं सिखाता और उस मॉडल को भ्रमित कर सकता है जो उसे तथ्य के रूप में वापस उद्धृत करता है। क्लीनर सामान्य पैटर्नों से मिलान करता है — उस पृष्ठ के बराबर एक अकेली संख्या जिस पर वह बैठी है, और “N of M” और “N / M” रूप — और हर मिलान को एक ही उम्मीदवार में समूहित करता है। डुप्लिकेट अनुच्छेद तीसरी श्रेणी हैं: दोहराई गई अस्वीकरण सूचना, डुप्लिकेट सारांश या वह कॉपी किया गया खंड जो एक दस्तावेज़ में दो बार प्रकट होता है। डुप्लिकेट कभी भी डिफ़ॉल्ट रूप से टिक नहीं होते, क्योंकि दोहराया गया अनुच्छेद कभी-कभी जानबूझकर होता है — उदाहरण के लिए एक चेतावनी जिसे दो अध्यायों में प्रकट होना चाहिए — इसलिए क्लीनर उन्हें चिह्नित करता है और निर्णय आपके लिए छोड़ देता है, हटाते समय पहली उपस्थिति को बनाए रखता है।
निष्कर्षण कैसे काम करता है, और यह कहाँ अनुमानित है
निष्कर्षण अनुमानित है, और यह पृष्ठ इसके विपरीत दिखावा नहीं करेगा। क्लीनर PDF सामग्री धाराओं को स्थानीय रूप से डिकोड करता है, पाठ दिखाने वाले ऑपरेशन पढ़ता है और दिखाए गए पाठ के हर समूह को एक पंक्ति के रूप में मानता है। यह मॉडल तेज़ है और सामान्य वर्ड प्रोसेसरों और निर्यातकों द्वारा बनाई गई रिपोर्टों, नियमावलियों और शोधपत्रों के लिए पर्याप्त अच्छा है, लेकिन इसकी ईमानदार सीमाएँ हैं: बहु-स्तंभ लेआउट पढ़ने के क्रम के बजाय संग्रहण क्रम में आ सकते हैं, लिगेचर और कस्टम फ़ॉन्ट एन्कोडिंग अलग-अलग वर्णों को बिगाड़ सकते हैं, और एक स्कैन किया गया PDF — जिसके पृष्ठ पाठ नहीं, तस्वीरें हैं — कोई पंक्ति ही नहीं देता। जब ऐसा होता है, तो उपकरण परिणाम गढ़ने के बजाय इसे स्पष्ट रूप से कहता है: शून्य पंक्तियों वाला परिणाम का अर्थ है कि दस्तावेज़ को, किसी भी क्लीनर के मदद कर पाने से पहले, OCR की आवश्यकता है। इस पहले संस्करण में फ़र्नीचर पहचान स्थिति पर भी ध्यान नहीं देती: एक छोटी पंक्ति इस आधार पर आँकी जाती है कि वह कितने पृष्ठों पर दोहराती है, न कि इस आधार पर कि वह पृष्ठ पर कहाँ बैठी है, इसलिए मुख्य भाग के अंदर सचमुच दोहराया गया एक छोटा शीर्षक सूचीबद्ध हो सकता है — ठीक यही कारण है कि हर उम्मीदवार आपके द्वारा टिक हटाने के लिए है।
आउटपुट RAG पाइपलाइन के अगले चरण के लिए बनाया गया है। साफ़ किए गए पाठ का डाउनलोड बची हुई पंक्तियों को पृष्ठ दर पृष्ठ, पृष्ठों के बीच एक खाली पंक्ति के साथ जोड़ता है, ताकि आप उसे पढ़ सकें, उसकी तुलना कर सकें या उसे अपने स्प्लिटर को दे सकें। JSONL डाउनलोड एक कदम आगे जाता है: यह साफ़ किए गए पाठ को लगभग आठ सौ वर्णों के खंडों में बाँधता है, जहाँ तक हो सके वाक्य के बीच में नहीं बल्कि अनुच्छेद की सीमाओं पर बाँटता है, और {"text": "..."} के रूप में प्रति पंक्ति एक JSON ऑब्जेक्ट लिखता है — वह रूप जिसे अधिकांश एम्बेडिंग स्क्रिप्ट और वेक्टर-स्टोर लोडर सीधे स्वीकार करते हैं। खंड का आकार एक समझौता है, कोई नियम नहीं: आठ सौ वर्ण इतने छोटे हैं कि एक खंड आम तौर पर एक विचार को समेटता है, और इतने बड़े हैं कि वह विचार अपना संदर्भ बनाए रखता है। साथी लेख आकार, ओवरलैप और सीमाओं को अधिक गहराई से समझाता है।
गोपनीयता और दायरा जानबूझकर संकीर्ण रखे गए हैं। फ़ाइल इस पृष्ठ पर, आपके डिवाइस पर पार्स होती है; उसका विश्लेषण कोई नेटवर्क अनुरोध नहीं करता, इसलिए आंतरिक रिपोर्ट, अनुबंधों के मसौदे और व्यक्तिगत दस्तावेज़ वहीं रहते हैं जहाँ वे हैं। पहला संस्करण केवल PDF स्वीकार करता है, क्योंकि फ़र्नीचर की समस्या वहीं सबसे गंभीर है और वहीं एक ब्राउज़र-स्थानीय पार्सर अभी भी पाठ को विश्वसनीय रूप से वापस पा सकता है; वर्ड-प्रोसेसर और HTML स्रोतों को उन उपकरणों में साफ़ करना बेहतर है जिन्होंने उन्हें बनाया, या पहले उन्हें PDF में बदलना बेहतर है। क्लीनर गुणवत्ता का भी न्याय नहीं करता: यह उस पाठ का सारांश, पुनर्लेखन या सुधार नहीं करेगा जिसे वह रखता है, और यह तय नहीं करता कि कोई दस्तावेज़ एम्बेड होने योग्य है भी या नहीं। यह एक यांत्रिक काम करता है — जो दोहराता है उसे हटा देना, जो अद्वितीय है उसे रखना, खंड आपको सौंप देना — और हर चरण पर अपना काम दिखाता है, ताकि विवेक के निर्णय उस व्यक्ति के पास रहें जो दस्तावेज़ को जानता है।
तीन प्रकार के उम्मीदवार एक नज़र में
| दोहराया जाने वाला फ़र्नीचर | एक छोटी पंक्ति (अधिकतम 120 वर्ण) जो कम से कम 60% पृष्ठों पर और कम से कम दो पृष्ठों पर दोहराई जाती है: हेडर, फ़ुटर, अस्वीकरण और वॉटरमार्क। डिफ़ॉल्ट रूप से हटाने के लिए टिक की गई। |
| पृष्ठ संख्याएँ | “कुल M में से पृष्ठ N”, “N / M”, या उस पृष्ठ के बराबर एक अकेली संख्या से मिलती पंक्तियाँ, एक ही उम्मीदवार में समूहित। डिफ़ॉल्ट रूप से हटाने के लिए टिक की गई। |
| डुप्लिकेट अनुच्छेद | कम से कम 40 वर्णों का एक ब्लॉक जो दस्तावेज़ में कहीं भी कम से कम दो बार प्रकट होता है। कभी भी डिफ़ॉल्ट रूप से टिक नहीं होता; हटाने पर पहली उपस्थिति बनी रहती है। |
| आउटपुट | पृष्ठों को एक खाली पंक्ति से अलग किया गया साफ़ सादा पाठ, और अनुच्छेद सीमाओं पर बँटे लगभग 800-वर्ण वाले JSONL खंड, प्रति पंक्ति एक {"text": "..."} ऑब्जेक्ट। |
अक्सर पूछे जाने वाले प्रश्न
क्या मेरा PDF कहीं अपलोड होता है?
नहीं। फ़ाइल इस पृष्ठ पर, आपके डिवाइस पर खोली, डिकोड और साफ़ की जाती है, और कुछ भी अपलोड, प्रेषित या संग्रहित नहीं होता। पृष्ठ लोड हो जाने के बाद यह ऑफ़लाइन काम करता है, जो आंतरिक रिपोर्टों और व्यक्तिगत दस्तावेज़ों के लिए सही रूप है।
उपकरण को मेरे PDF में पाठ क्यों नहीं मिला?
लगभग निश्चित रूप से इसलिए क्योंकि PDF पाठ के बजाय स्कैन की गई छवियों से बना है: हर पृष्ठ एक तस्वीर है और निकालने के लिए कोई पाठ ऑपरेशन नहीं हैं। उपकरण अनुमान लगाने के बजाय शून्य पंक्तियों की रिपोर्ट करता है। पहले दस्तावेज़ पर OCR चलाएँ ताकि पृष्ठों पर एक वास्तविक पाठ परत हो, फिर परिणाम को साफ़ करें।
क्या सफ़ाई गलती से असली शीर्षक हटा देगी?
यह एक छोटी पंक्ति को सूचीबद्ध कर सकता है जो अक्सर दोहराती है, जिसमें दोहराया गया खंड शीर्षक भी शामिल है, क्योंकि पहचान स्थिति पर नहीं, दोहराव पर आधारित है। इसीलिए जब तक आप पुष्टि नहीं करते, कुछ भी नहीं हटाया जाता: हर उम्मीदवार अपना पाठ, पृष्ठ और गिनती दिखाता है, और टिक हटाने से हर उपस्थिति बनी रहती है।
डुप्लिकेट अनुच्छेद डिफ़ॉल्ट रूप से क्यों नहीं हटाए जाते?
क्योंकि दोहराव कभी-कभी स्वयं उद्देश्य होता है: एक सुरक्षा चेतावनी, एक कानूनी सूचना या एक सारांश जानबूझकर दोहराया जा सकता है। डुप्लिकेट उनके स्थानों के साथ चिह्नित होते हैं ताकि आप न्याय कर सकें; यदि आप किसी एक को टिक करते हैं, तो क्लीनर पहली उपस्थिति रखता है और बाद की प्रतियाँ हटा देता है।
JSONL निर्यात किस खंड आकार का उपयोग करता है?
प्रति खंड लगभग 800 वर्ण, अनुच्छेद सीमाओं पर बाँधे गए ताकि कोई खंड शायद ही कभी वाक्य के बीच में समाप्त हो। यह एम्बेडिंग के लिए एक समझदार डिफ़ॉल्ट है, कोई सार्वभौमिक इष्टतम नहीं — साथी लेख आपके अपने कॉर्पस और रिट्रीवर के लिए आकार और ओवरलैप चुनने के तरीके को कवर करता है।