डेटा और स्प्रेडशीट · CSV क्लीनर
डुप्लिकेट पंक्ति हटाना कैसे काम करता है: सटीक मिलान, रिक्त स्थान और केस
· यह काम किस प्रकार करता है
CAसवी डेटा-सफाई डुप्लिकेट
दो पंक्तियाँ समान दिख सकती हैं और फिर भी बाइट दर बाइट मेल नहीं खा सकतीं। यह पोस्ट बताती है कि एक सफाई टूल के लिए 'डुप्लिकेट' का क्या मतलब है, कैसे व्हाइटस्पेस, केस और फ़ॉर्मेटिंग गलत गैर-मिलान बनाते हैं, और डेटा कैसे तैयार करें ताकि डी-डुप्लीकेशन आपके इरादे को पूरा कर सके।
'डुप्लिकेट हटाएं' ने पीछे स्पष्ट दोहराव छोड़ दिया - क्यों एक पिछला स्थान या एक बड़ा अक्षर दो पंक्तियों को अलग बनाता है
एक संपर्क निर्यात दो पंक्तियाँ प्रदर्शित कर सकता है जो समान दिखाई देती हैं जबकि एक ईमेल एक स्थान के साथ समाप्त होता है या एक उपनाम एक बड़े अक्षर का उपयोग करता है। डुप्लिकेट बटन मानवीय समानता लागू नहीं करता. भेजे गए पेज पर यह प्रत्येक सेल के पूर्ण स्ट्रिंग मान की तुलना करता है, केस और रिक्त स्थान उस समय भी महत्वपूर्ण होते हैं।
यह बताता है कि पहले क्लिक के बाद स्पष्ट रूप से स्पष्ट दोहराव क्यों रह सकता है। टूल एक जोखिम भरे निर्णय से बच रहा है: केस बदलने या चयनित फ़ील्ड को अनदेखा करने से उन रिकॉर्ड्स को मर्ज किया जा सकता है जो केवल संबंधित दिखते हैं। स्रोत की समीक्षा करें, वह सामान्यीकरण चुनें जो आप वास्तव में चाहते हैं, और उन संपादनों के बाद सटीक निष्कासन को फिर से चलाएँ।
सटीक मिलान क्या तुलना करता है - प्रत्येक फ़ील्ड और प्रत्येक वर्ण, जिसमें अदृश्य वाले जैसे कि गैर-ब्रेकिंग रिक्त स्थान और भटके हुए BOM बाइट्स शामिल हैं
प्रत्येक पंक्ति को उसकी सभी कोशिकाओं से निर्मित एक पहचान प्राप्त होती है। कार्यान्वयन उन्हें एक शून्य वर्ण के साथ जोड़ता है जो कानूनी CSV पाठ नहीं है, सामान्य गलती से बचता है जहां अल्पविराम वाला एक कक्ष दो अलग-अलग कक्षों से टकराता है। एक दूसरी समान पहचान छोड़ दी गई है; पहली पंक्ति को अपरिवर्तित रखा गया है.
रूपरेखा में अदृश्य गैर-ब्रेकिंग रिक्त स्थान और भटके हुए BOM बाइट्स का उल्लेख किया गया है जैसे कि सभी को विशेष उपचार प्राप्त होता है। जब आप ट्रिम चुनते हैं तो JavaScript ट्रिमिंग आसपास के यूनिकोड व्हाइटस्पेस को हटा सकती है, लेकिन पार्सर का स्पष्ट BOM नियम फ़ाइल की शुरुआत में केवल U+FEFF को हटा देता है। यह मनमाने ढंग से छिपे बाइट्स के लिए प्रत्येक सेल को स्कैन नहीं करता है।
सटीक तुलना संपूर्ण सेल स्ट्रिंग्स को कवर करती है; केवल एक प्रमुख फ़ाइल BOM को विशेष रूप से हटा दिया गया है
आदेश मायने रखता है. व्हाईटस्पेस को ट्रिम करने से प्रत्येक सेल में अग्रणी और अनुगामी स्थान हटा दिया जाता है, जबकि रिक्त स्थान को संक्षिप्त करने से आंतरिक व्हाईटस्पेस रन भी एक सामान्य स्थान में बदल जाता है। डुप्लिकेट हटाने से पहले या तो लागू करने से पहले की अलग-अलग पंक्तियाँ समान हो सकती हैं। रनिंग रिमूवल पहले दोनों को संरक्षित करता है, क्योंकि उनके मूल तार भिन्न होते हैं।
पैनल केस फ़ोल्डिंग, Windows-1252 मरम्मत या यूनिकोड सामान्यीकरण को उजागर नहीं करता है। हालाँकि अंतर्निहित लाइब्रेरी में केस-असंवेदनशील तुलना के लिए एक विकल्प है, लेकिन रूट डिफ़ॉल्ट सटीक फ़ंक्शन को कॉल करता है। यह दावा कि यह पेज केस या एन्कोडिंग को मानकीकृत करता है, इसलिए विज़िटर द्वारा वास्तव में उपयोग किए जा सकने वाले नियंत्रणों से अधिक होगा।
पहले रिक्त स्थान को ट्रिम या संक्षिप्त करें; पैनल केस या लीगेCAन्कोडिंग को सामान्य नहीं करता है
संपूर्ण-पंक्ति समानता एक ग्राहक की पहचान करने के समान नहीं है। एक ईमेल साझा करने वाली लेकिन अलग-अलग टाइमस्टैम्प वाली दो पंक्तियाँ रखी गई हैं क्योंकि कम से कम एक सेल अलग है। लाइब्रेरी चयनित कॉलमों की तुलना कर सकती है, फिर भी प्रकाशित डुप्लिकेट पेज कुंजी-कॉलम चयनकर्ता को उजागर नहीं करता है, इसलिए यह उस जोड़ी पर निर्णय नहीं दे सकता है।
यह एक खोई हुई जादुई चाल के बजाय एक मूल्यवान सीमा है। नवीनतम रिकॉर्ड चुनने, फ़ील्ड को मर्ज करने या उपनामों को एक व्यक्ति के रूप में मानने के लिए एक व्यावसायिक नियम और अक्सर ऑडिट ट्रेल की आवश्यकता होती है। उन विरोधों को समीक्षा के लिए निर्यात करें या उन्हें सटीक डुप्लिकेट के रूप में छिपाने के बजाय गंतव्य सिस्टम के दस्तावेज़ित मर्ज वर्कफ़्लो का उपयोग करें।
आदेश और उत्तरजीविता - डुप्लिकेट हटा दिए जाने पर कौन सी प्रतिलिपि रखी जाती है, और 'अंतिम अद्यतन' डेटा के लिए यह क्यों मायने रखता है
जब सटीक डुप्लिकेट होते हैं, तो पहली उपस्थिति बनी रहती है और बाद की प्रतियां हटा दी जाती हैं। जीवित पंक्तियाँ अपना मूल क्रम बनाए रखती हैं। यदि कोई नया संस्करण बाद में दिखाई देता है लेकिन एक फ़ील्ड में भी भिन्न है, तो यह डुप्लिकेट नहीं है और बना रहता है; यदि यह सेल स्तर पर बाइट-दर-बाइट बराबर है, तो किसी भी कॉपी को बनाए रखने से समान डेटा प्राप्त होता है।
प्रथम-प्रतिलिपि नियम तब भी क्रियाशील रूप से मायने रखता है जब पंक्ति क्रम कोशिकाओं के बाहर उद्गम को रिकॉर्ड करता है। सफाई से पहले एक अछूता निर्यात रखें, और प्रत्येक क्रिया के बाद गिनती का निरीक्षण करें। ToolAcre का पूर्ववत स्टैक वर्तमान टैब में बीस परिवर्तनों को बरकरार रखता है, लेकिन यदि सत्र बंद हो जाता है तो डाउनलोड किया गया मूल टिकाऊ संदर्भ होता है।
कार्यान्वित उदाहरण - निकट-डुप्लिकेट के साथ एक संपर्क निर्यात, सामान्यीकृत ताकि सटीक डी-डुप्लीकेशन उन्हें पकड़ सके, उन पंक्तियों के साथ जिन्हें अभी भी मानव समीक्षा की आवश्यकता है सूचीबद्ध
Ada@example.com, एक पंक्ति में Ada, एक सेकंड में बिल्कुल वही दो सेल, और ada@example.com प्लस Ada के साथ तीसरे में एक स्थान के साथ एक छोटा परीक्षण बनाएं। सटीक निष्कासन केवल दूसरी पंक्ति को गिराता है। फिर ट्रिमिंग से पिछला स्थान हट जाता है, लेकिन लोअरकेस ईमेल अभी भी तीसरी पंक्ति को अलग रखता है।
वह परिणाम यांत्रिक निश्चितता को मानवीय निर्णय से अलग करता है। यदि आपके सिस्टम में पते केस-असंवेदनशील माने जाते हैं, तो उस नियम को अन्यत्र लागू करें और उसका दस्तावेजीकरण करें। क्लीनर का प्रमाण सरल है: यह साबित कर सकता है कि समान पंक्ति सरणियाँ बनाए गए मानों को परिवर्तित किए बिना उनकी पहली घटना में कम हो जाती हैं।
इसमें क्या शामिल नहीं है - अस्पष्ट मिलान, टाइपो सहनशीलता और परस्पर विरोधी रिकॉर्ड का विलय
अस्पष्ट नाम, टाइपो सहिष्णुता, ध्वन्यात्मक मिलान और संघर्ष विलय इस ऑपरेशन से बाहर हैं। यह यह नहीं मानता है कि "रॉबर्ट" और "बॉब" एक ही व्यक्ति को संदर्भित कर सकते हैं, न ही यह समानता के लिए दो पते प्रदान करता है। वे तकनीकें झूठी सकारात्मकताएं पैदा कर सकती हैं और एक फ्लैट निर्यात में अनुपलब्ध संदर्भ की आवश्यकता होती है।
निम्न-स्तरीय फ़ंक्शन में समर्थन के बावजूद कुंजी-कॉलम डिडुप्लीकेशन भी इस पेज से अनुपस्थित है। लेखों में उस मार्ग का वर्णन होना चाहिए जिसका पाठक उपयोग कर सकता है, न कि बिना किसी नियंत्रण वाले अव्यक्त मापदंडों का। पहचान समाधान के लिए, एक उद्देश्य-निर्मित समीक्षा प्रक्रिया का चयन करें जहां मिलान साक्ष्य और उत्तरजीवी नियम दिखाई देते हैं।
डी-डुप्लीकेशन उतना ही अच्छा है जितना इससे पहले सामान्यीकरण - ToolAcre CSV क्लीनर का डुप्लिकेट निष्कासन इसके एन्कोडिंग और हेडर मरम्मत के बाद कैसे फिट बैठता है
ToolAcre के विश्वसनीय अनुक्रम का निरीक्षण किया जाता है, चुने गए रिक्त स्थान को सामान्य किया जाता है, फिर सटीक दोहराव को हटा दिया जाता है। एन्कोडिंग मरम्मत और स्वचालित हेडर मरम्मत छिपे हुए प्रारंभिक चरण नहीं हैं। पार्सर एक अग्रणी UTF-8 BOM को हटाता है, एक सीमांकक का पता लगाता है और संरचनात्मक समस्याओं की रिपोर्ट करता है; यह क्षतिग्रस्त वर्ण एन्कोडिंग की पुनर्व्याख्या नहीं करता है।
हटाने के बाद, पंक्ति गणना की तुलना करें और डाउनलोड से पहले बचे हुए लोगों का पूर्वावलोकन करें। जो गायब हुआ वह उस समय मौजूद तारों के नीचे मौजूद हर कोशिका में समान रूप से समान था। जो कुछ बचता है उसमें वैध निकट-डुप्लिकेट शामिल हो सकते हैं, और उन अनिश्चित रिकॉर्ड को रखना किसी धारणा पर ग्राहक डेटा को चुपचाप विलय करने से अधिक सुरक्षित है।