प्रेरणा
मैं ऐसे डेटासेट के साथ काम करता हूं जिसमें व्यक्तिगत रूप से पहचान योग्य जानकारी (पीआईआई) होती है और कभी-कभी किसी तीसरे पक्ष के साथ एक डेटासेट का हिस्सा साझा करने की आवश्यकता होती है, इस तरह से कि पीआईआई को उजागर नहीं करता है और मेरे नियोक्ता को दायित्व के अधीन करता है। यहां हमारा सामान्य दृष्टिकोण डेटा को पूरी तरह से रोकना है, या कुछ मामलों में इसके रिज़ॉल्यूशन को कम करना है; उदाहरण के लिए, संबंधित काउंटी या जनगणना पथ के साथ एक सटीक सड़क का पता लगाना।
इसका मतलब यह है कि कुछ प्रकार के विश्लेषण और प्रसंस्करण को घर में किया जाना चाहिए, तब भी जब किसी तीसरे पक्ष के पास संसाधन और विशेषज्ञता कार्य के लिए अधिक अनुकूल हो। चूंकि स्रोत डेटा का खुलासा नहीं किया गया है, जिस तरह से हम इस विश्लेषण और प्रसंस्करण के बारे में जाते हैं, उसमें पारदर्शिता का अभाव है। नतीजतन, क्यूए / क्यूसी प्रदर्शन करने, मापदंडों को समायोजित करने या शोधन करने की किसी भी तीसरे पक्ष की क्षमता बहुत सीमित हो सकती है।
अनाम डेटा को अनाम बनाना
एक कार्य में त्रुटियों और विसंगतियों को ध्यान में रखते हुए, उपयोगकर्ता-प्रस्तुत डेटा में उनके नाम से व्यक्तियों की पहचान करना शामिल है। एक निजी व्यक्ति को एक स्थान पर "डेव" के रूप में और दूसरे में "डेविड" के रूप में दर्ज किया जा सकता है, वाणिज्यिक संस्थाओं में कई अलग-अलग संक्षिप्त रूप हो सकते हैं, और हमेशा कुछ टाइपोस होते हैं। मैंने कई मानदंड के आधार पर स्क्रिप्ट विकसित की है जो निर्धारित करते हैं कि गैर-समान नामों वाले दो रिकॉर्ड एक ही व्यक्ति का प्रतिनिधित्व करते हैं, और उन्हें एक सामान्य आईडी असाइन करते हैं।
इस बिंदु पर हम नामों को रोककर और उन्हें इस व्यक्तिगत आईडी नंबर से बदलकर डेटासेट को अनाम बना सकते हैं। लेकिन इसका मतलब है कि प्राप्तकर्ता को मैच की ताकत के बारे में लगभग कोई जानकारी नहीं है। हम बिना किसी पहचान के अधिक से अधिक जानकारी के पारित होने में सक्षम होना पसंद करेंगे।
क्या काम नहीं करता
उदाहरण के लिए, एडिटिंग डिस्टेंस को सुरक्षित रखते हुए स्ट्रिंग्स को एन्क्रिप्ट करना बहुत अच्छा होगा। इस तरह, तीसरे पक्ष अपने स्वयं के क्यूए / क्यूसी में से कुछ कर सकते हैं, या अपने स्वयं के आगे प्रसंस्करण करने का विकल्प चुन सकते हैं, कभी पहुंच के बिना (या संभावित रूप से रिवर्स-इंजीनियर होने में सक्षम) पीआईआई। शायद हम संपादित दूरी <= 2 के साथ इन-हाउस से मेल खाते हैं, और प्राप्तकर्ता दूरी को संपादित करने के लिए उस सहिष्णुता के कसाव को देखना चाहता है।
लेकिन एकमात्र तरीका जिससे मैं परिचित हूं वह यह है ROT13 (अधिक सामान्यतः, किसी भी शिफ्ट सिफर ), जो शायद ही एन्क्रिप्शन के रूप में गिना जाता है; यह नामों को उल्टा लिखने जैसा है और कहा जा रहा है, "वादा करो कि तुम कागज को नहीं पलटोगे?"
एक और बुरा समाधान सब कुछ संक्षिप्त करना होगा। "एलेन रॉबर्ट्स" "ईआर" और इसके आगे बन जाता है। यह एक खराब समाधान है क्योंकि कुछ मामलों में सार्वजनिक डेटा के साथ मिलकर, किसी व्यक्ति की पहचान को प्रकट करेगा, और अन्य मामलों में यह बहुत अस्पष्ट है; "बेंजामिन ओथेलो एम्स" और "बैंक ऑफ अमेरिका" में एक ही प्रारंभिक अक्षर होंगे, लेकिन उनके नाम अन्यथा असमान हैं। इसलिए यह उन चीजों में से नहीं है जो हम चाहते हैं।
एक अयोग्य विकल्प नाम की कुछ विशेषताओं को ट्रैक करने के लिए अतिरिक्त फ़ील्ड पेश करना है, जैसे:
+-----+----+-------------------+-----------+--------+
| Row | ID | Name | WordChars | Origin |
+-----+----+-------------------+-----------+--------+
| 1 | 17 | "AMELIA BEDELIA" | (6, 7) | Eng |
+-----+----+-------------------+-----------+--------+
| 2 | 18 | "CHRISTOPH BAUER" | (9, 5) | Ger |
+-----+----+-------------------+-----------+--------+
| 3 | 18 | "C J BAUER" | (1, 1, 5) | Ger |
+-----+----+-------------------+-----------+--------+
| 4 | 19 | "FRANZ HELLER" | (5, 6) | Ger |
+-----+----+-------------------+-----------+--------+
मैं इसे "अशुभ" कहता हूं क्योंकि यह अनुमान लगाने की आवश्यकता है कि कौन से गुण दिलचस्प हो सकते हैं और यह अपेक्षाकृत मोटे हैं। यदि नाम हटा दिए जाते हैं, तो बहुत अधिक नहीं है कि आप यथोचित रूप से पंक्तियों 2 और 3 के बीच मैच की ताकत के बारे में निष्कर्ष निकाल सकते हैं, या पंक्तियों 2 और 4 के बीच की दूरी के बारे में (यानी, वे मिलान के कितने करीब हैं)।
निष्कर्ष
लक्ष्य स्ट्रिंग्स को इस तरह से बदलना है कि मूल स्ट्रिंग के कई उपयोगी गुणों को मूल स्ट्रिंग का अवलोकन करते समय संभव के रूप में संरक्षित किया जाता है। डिक्रिप्शन असंभव होना चाहिए, या इतना अव्यवहारिक होना चाहिए कि प्रभावी रूप से असंभव हो, कोई फर्क नहीं पड़ता कि डेटा सेट का आकार। विशेष रूप से, एक विधि जो मनमानी तार के बीच संपादित दूरी को बनाए रखती है, बहुत उपयोगी होगी।
मुझे कुछ ऐसे कागजात मिले हैं जो प्रासंगिक हो सकते हैं, लेकिन वे मेरे सिर पर थोड़े हैं: