5

मेरे पास एक प्रश्न है जो कुछ हद तक उच्च स्तर है, इसलिए मैं जितना संभव हो उतना विशिष्ट होने की कोशिश करूंगा।जानकारी के कई कॉलम के साथ फ़ज़ी रिकॉर्डिंग

मैं बहुत सारे शोध कर रहा हूं जिसमें हेडर जानकारी के साथ अलग-अलग डेटा सेट शामिल हैं जो एक ही इकाई, आमतौर पर एक कंपनी या वित्तीय सुरक्षा को संदर्भित करता है। इस रिकॉर्ड लिंकिंग में आमतौर पर हेडर जानकारी शामिल होती है जिसमें नाम एकमात्र आम प्राथमिक पहचानकर्ता होता है, लेकिन जहां कुछ माध्यमिक जानकारी अक्सर उपलब्ध होती है (जैसे शहर और राज्य, संचालन की तिथियां, सापेक्ष आकार इत्यादि)। ये मैचों आमतौर पर एक से अधिक होते हैं, लेकिन एक-से-एक या यहां तक ​​कि कई से भी हो सकते हैं। मैंने आमतौर पर हाथ से या साफ किए गए सबस्ट्रिंग की बहुत मूल पाठ तुलना के साथ यह मिलान किया है। मैंने कभी-कभी लेवेनशेटिन दूरी माप की तरह एक साधारण मिलान करने वाले एल्गोरिदम का उपयोग किया है, लेकिन मुझे इसका कुछ हिस्सा कभी नहीं मिला है, क्योंकि मेरे पास इसे लागू करने का एक अच्छा औपचारिक तरीका नहीं था।

मेरा अनुमान है कि यह एक आम बात है और इस तरह की चीज करने के लिए कुछ औपचारिक प्रक्रियाएं विकसित की जानी चाहिए। मैंने इस विषय पर कुछ अकादमिक पत्र पढ़े हैं जो दिए गए दृष्टिकोणों की सैद्धांतिक उपयुक्तता से निपटते हैं, लेकिन मुझे कोई अच्छा स्रोत नहीं मिला है जो नुस्खा या कम से कम एक व्यावहारिक रूपरेखा के माध्यम से चलता है।

  • किसी को भी बहु-आयामी फजी रिकॉर्ड मिलान को लागू करने, एक पुस्तक या एक वेबसाइट या एक प्रकाशित लेख की तरह काम कर रहे या कागज के लिए एक अच्छा स्रोत पता है:

    मेरा प्रश्न पीछा कर रहा है?

  • मैं कुछ ऐसा पसंद करूंगा जिसमें व्यावहारिक उदाहरण और एक अच्छी तरह से परिभाषित दृष्टिकोण था।

  • दृष्टिकोण मध्यवर्ती चरणों में सुधार के लिए मानव जांच के साथ पुनरावृत्त हो सकता है।

  • ( संपादित करें) संबंधित डेटा सांख्यिकीय विश्लेषण के लिए उपयोग किया जाता है। इस प्रकार, शोर का थोड़ा सा ठीक है, लेकिन कम "गलत गैर-मैचों" पर कम "गलत मिलान" के लिए एक मजबूत वरीयता है।

  • यदि वे पाइथन में थे तो यह शानदार होगा, लेकिन आवश्यक नहीं होगा।

एक आखिरी बात, अगर यह मायने रखता है, कि मैं कम्प्यूटेशनल दक्षता के बारे में ज्यादा परवाह नहीं है। मैं इस गतिशील रूप से कार्यान्वित नहीं कर रहा हूं और मैं आमतौर पर कुछ हज़ार रिकॉर्ड से निपट रहा हूं।

+0

गलत मिलान/झूठी सकारात्मक से बचने के लिए आपके लिए कितना महत्वपूर्ण है? – Tim

+0

अच्छा सवाल। मैं _fairly_ महत्वपूर्ण कहूंगा। मैं सांख्यिकीय विश्लेषण करने के लिए मिलान करता हूं। इस प्रकार, शोर का थोड़ा सा ठीक है, लेकिन कम "गलत मिलान" पर कम "गलत मिलान" के लिए एक मजबूत वरीयता है। आदर्श रूप से, मैं आक्रामकता को समायोजित कर सकता हूं। – WildGunman

उत्तर

2

एक सामान्य विधि जो "कुछ हज़ार रिकॉर्ड" के लिए बहुत महंगी नहीं होनी चाहिए cosine similarity होगी। हालांकि टेक्स्ट दस्तावेज़ों की तुलना करने के लिए अक्सर उपयोग किया जाता है, लेकिन आप किसी भी प्रकार के डेटा के साथ काम करने के लिए इसे आसानी से संशोधित कर सकते हैं।

लिंक किए गए विकिपीडिया लेख विवरण पर बहुत अधिक स्पैस है, लेकिन लिंक के बाद और कुछ खोज करने से आपको कुछ अच्छी जानकारी मिल जाएगी। संभावित रूप से एक कार्यान्वयन जिसे आप अपने उद्देश्यों के अनुरूप संशोधित कर सकते हैं। वास्तव में, Simple implementation of N-Gram, tf-idf and Cosine similarity in Python

एक सरल गणना, और जो आपके उद्देश्यों के लिए "पर्याप्त पर्याप्त" हो सकता है, Jaccard index पर एक नज़र डालें। प्राथमिक अंतर यह है कि आम तौर पर कोसाइन समानता किसी दस्तावेज़ में और दस्तावेज़ों के पूरे सेट में शब्द का उपयोग करने की संख्या को ध्यान में रखती है, जबकि जैककार्ड इंडेक्स केवल इस बात की परवाह करता है कि दस्तावेज़ में एक विशेष शब्द है। अन्य मतभेद हैं, लेकिन वह मुझे सबसे महत्वपूर्ण मानता है।

1

समस्या यह है कि आपके पास प्रत्येक कॉलम के लिए कम से कम एक दूरी है, और आप उन दूरी को एक इष्टतम तरीके से जोड़ना चाहते हैं ताकि यह इंगित किया जा सके कि रिकॉर्ड की एक जोड़ी एक ही चीज़ है या नहीं।

यह वर्गीकरण की समस्या है, इसे करने के कई तरीके हैं, लेकिन logistic regression सरल तरीकों में से एक है। क्लासिफ़र को प्रशिक्षित करने के लिए, आपको रिकॉर्ड के कुछ जोड़े को या तो मैचों के रूप में लेबल करने की आवश्यकता होगी या नहीं।

dedupe python library आपको रिकॉर्ड लिंक के कठिन कार्य के इस और अन्य हिस्सों को करने में मदद करता है। प्रलेखन में एक सुंदर good overview of how to approach the problem of record linkage comprehensively है।

संबंधित मुद्दे