আমি কীভাবে গোপনীয় উপাত্তগুলিতে নামগুলি বেনামে রাখার জন্য নামগুলি রূপান্তর করতে পারি, তবে নামের কিছু বৈশিষ্ট্য সংরক্ষণ করতে পারি?


42

প্রেরণা

আমি এমন ডেটাসেটের সাথে কাজ করি যা ব্যক্তিগতভাবে সনাক্তযোগ্য তথ্য (পিআইআই) ধারণ করে এবং কখনও কখনও তৃতীয় পক্ষের সাথে কোনও ডেটাসেটের অংশ ভাগ করে নেওয়া দরকার, যাতে পিআইআই প্রকাশিত হয় না এবং আমার নিয়োগকর্তাকে দায়বদ্ধ করে subject এখানে আমাদের স্বাভাবিক পদ্ধতিটি সম্পূর্ণরূপে ডেটা আটকাতে বা কিছু ক্ষেত্রে এর রেজোলিউশন হ্রাস করতে হয়; উদাহরণস্বরূপ, সম্পর্কিত কাউন্টি বা সেন্সাস ট্র্যাক্টের সাথে একটি সঠিক রাস্তার ঠিকানা প্রতিস্থাপন।

এর অর্থ এই যে কোনও তৃতীয় পক্ষের কাজের জন্য আরও উপযুক্ত এবং সংস্থান এবং দক্ষতা থাকা সত্ত্বেও নির্দিষ্ট ধরণের বিশ্লেষণ এবং প্রক্রিয়াকরণ অবশ্যই ঘরে বসে করা উচিত। যেহেতু উত্স ডেটা প্রকাশ করা হয়নি, তাই আমরা এই বিশ্লেষণ এবং প্রক্রিয়াকরণ সম্পর্কে যেভাবে চলেছি তাতে স্বচ্ছতার অভাব রয়েছে। ফলস্বরূপ, কোনও তৃতীয় পক্ষের কিউএ / কিউসি সঞ্চালন, প্যারামিটারগুলি সামঞ্জস্য করতে বা পরিশোধন করার ক্ষমতা খুব সীমিত হতে পারে।

গোপনীয় ডেটা বেনামে রাখা

অ্যাকাউন্টে ত্রুটি এবং অসঙ্গতিগুলি গ্রহণ করার সময়, একটি কাজ ব্যবহারকারীর-জমা দেওয়া ডেটাতে ব্যক্তিদের তাদের নাম দ্বারা সনাক্তকরণের সাথে জড়িত। একটি ব্যক্তিগত ব্যক্তি এক জায়গায় "ডেভ" এবং অন্য জায়গায় "ডেভিড" হিসাবে রেকর্ড হতে পারে বাণিজ্যিক সংস্থাগুলিতে বিভিন্ন রকম সংক্ষিপ্ত বিবরণ থাকতে পারে এবং সর্বদা কিছু টাইপস থাকে। আমি বেশ কয়েকটি মাপদণ্ডের ভিত্তিতে স্ক্রিপ্টগুলি তৈরি করেছি যা নির্ধারণ করে যে অ-অভিন্ন পরিচয়যুক্ত দুটি রেকর্ড একই ব্যক্তির প্রতিনিধিত্ব করে এবং তাদের একটি সাধারণ আইডি নির্ধারণ করে।

এই মুহুর্তে আমরা নামগুলি আটকে রেখে এবং এই ব্যক্তিগত আইডি নম্বর দিয়ে তাদের প্রতিস্থাপন করে ডেটাসেটকে বেনামে বানাতে পারি। তবে এর অর্থ প্রাপকের কাছে ম্যাচের শক্তি সম্পর্কিত প্রায় কোনও তথ্য নেই। আমরা পরিচয় প্রকাশ না করে যতটা সম্ভব তথ্য পাস করতে সক্ষম হতে চাই।

কি কাজ করে না

উদাহরণস্বরূপ, সম্পাদনার দূরত্ব সংরক্ষণ করার সময় স্ট্রিংগুলি এনক্রিপ্ট করতে সক্ষম হওয়াই দুর্দান্ত হবে। এইভাবে, তৃতীয় পক্ষগুলি তাদের নিজস্ব কিউএ / কিউসি কিছু করতে পারে, বা নিজেরাই আরও প্রক্রিয়াজাতকরণ বেছে নিতে পারে, কখনও অ্যাক্সেস না করে (বা সম্ভাব্য বিপরীত প্রকৌশলী করতে সক্ষম হবে) পিআইআই। সম্ভবত আমরা সম্পাদনা দূরত্ব <= 2 এর সাথে ইন-হাউস স্ট্রিংগুলি মেলে এবং প্রাপক এই সহনশীলতাটি দূরত্বকে <= 1 সম্পাদন করার জন্য আরও দৃighten় করার প্রভাবগুলি দেখতে চান to

তবে এর সাথে আমি পরিচিত একমাত্র পদ্ধতিটি হ'ল এটি রট 13 (আরও সাধারণভাবে, কোনও শিফট সাইফার ), যা খুব কমই এনক্রিপশন হিসাবে গণনা করা হয়; এটি উল্টে নাম লেখার মতো এবং বলার মতো, "প্রতিশ্রুতি দিলে আপনি কাগজটি সরিয়ে ফেলবেন না?"

আর একটি খারাপ সমাধান হ'ল সবকিছু সংক্ষিপ্ত করে দেওয়া। "এলেন রবার্টস" আরও "ইআর" হয়ে ওঠে। এটি একটি দুর্বল সমাধান কারণ কিছু ক্ষেত্রে প্রাথমিক উপাত্তগুলির সাথে মিল রেখে আদ্যক্ষেত্রগুলি কোনও ব্যক্তির পরিচয় প্রকাশ করবে এবং অন্যান্য ক্ষেত্রে এটি অত্যন্ত অস্পষ্ট; "বেঞ্জামিন ওথেলো আমেস" এবং "ব্যাংক অফ আমেরিকা" এর একই সূত্রপাত হবে তবে তাদের নাম অন্যথায় পৃথক। সুতরাং এটি আমরা যা চাই তার কোনওটিই করে না।

একটি অনুচিত বিকল্প হ'ল নামের নির্দিষ্ট বৈশিষ্ট্যগুলি ট্র্যাক করতে অতিরিক্ত ক্ষেত্র প্রবর্তন করা, যেমন:

+-----+----+-------------------+-----------+--------+
| 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    |
+-----+----+-------------------+-----------+--------+

আমি এটিকে "অবহেলিত" বলছি কারণ কোনটি গুণগুলি আকর্ষণীয় হতে পারে এবং এটি তুলনামূলকভাবে মোটা relatively যদি নামগুলি সরানো হয়, আপনি সারি 2 এবং 3 এর মধ্যে ম্যাচের শক্তি সম্পর্কে বা 2 এবং 4 সারিগুলির মধ্যে দূরত্ব সম্পর্কে (যেমন, তারা মিলানোর কতটা কাছাকাছি) সম্পর্কে যুক্তিসঙ্গতভাবে সিদ্ধান্ত নিতে পারেন না।

উপসংহার

লক্ষ্যটি এমনভাবে স্ট্রিংগুলিকে রূপান্তর করা যা মূল স্ট্রিংটিকে অস্পষ্ট করার সময় মূল স্ট্রিংয়ের যতগুলি দরকারী গুণগুলি সম্ভব হিসাবে সংরক্ষণ করা হয়। ডিক্রিপশনটি অসম্ভব হওয়া উচিত, বা কার্যকরভাবে অসম্ভব হিসাবে যতটা অযৌক্তিক হওয়া উচিত, ডেটা আকারের আকার যাই হোক না কেন। বিশেষত, একটি পদ্ধতি যা স্বেচ্ছাসেবী স্ট্রিংগুলির মধ্যে সম্পাদনার দূরত্ব সংরক্ষণ করে তা খুব কার্যকর হবে।

আমি দু'টি কাগজপত্র পেয়েছি যা প্রাসঙ্গিক হতে পারে তবে সেগুলি আমার মাথা থেকে কিছুটা বেশি:

উত্তর:


19

আমি ওপিতে উল্লেখ করেছিলাম এমন একটি উল্লেখ আমাকে একটি সম্ভাব্য সমাধানের দিকে নিয়ে গেছে যা "ব্লুম ফিল্টার ব্যবহার করে গোপনীয়তা-সংরক্ষণের রেকর্ড সংযোগ" ( ডোয়ি: 10.1186 / 1472-6947-9-41 ) এ বর্ণিত :

গোপনীয়তা-সংরক্ষণের রেকর্ড সংযোগের জন্য এনক্রিপ্ট করা শনাক্তকারীদের সাথে শনাক্তকারীদের ত্রুটির জন্য অনুমতি দেওয়ার জন্য একটি নতুন প্রোটোকল তৈরি করা হয়েছে। প্রোটোকল শনাক্তকারীদের কিউ-গ্রাম ব্লুম ফিল্টারগুলির উপর ভিত্তি করে।

নিবন্ধটি পদ্ধতি সম্পর্কে বিস্তারিতভাবে চলেছে, যা আমি এখানে আমার সর্বোত্তম দক্ষতার সংক্ষিপ্তসার করব।

একটি ব্লুম ফিল্টার বিটগুলির একটি নির্দিষ্ট দৈর্ঘ্যের সিরিজ যা স্বাধীন হ্যাশ ফাংশনগুলির একটি নির্দিষ্ট সেটের ফলাফলগুলি সংরক্ষণ করে, যার প্রতিটি একই ইনপুট মানকে গণনা করা হয়। প্রতিটি হ্যাশ ফাংশনের আউটপুট ফিল্টারের সম্ভাব্য সূচিগুলির মধ্যে থেকে একটি সূচক মান হওয়া উচিত; যেমন, আপনার যদি 10 বিটের 0-সূচিযুক্ত সিরিজ থাকে তবে হ্যাশ ফাংশনগুলির 0 থেকে 9 পর্যন্ত মানগুলি (বা ম্যাপ করা উচিত) ফিরে আসা উচিত।

ফিল্টার প্রতিটি বিট সেট 0 দিয়ে শুরু হয়। হ্যাশ ফাংশনগুলির সেট থেকে প্রতিটি ফাংশন সহ ইনপুট মানটি হ্যাশ করার পরে, কোনও হ্যাশ ফাংশন দ্বারা ফেরত একটি সূচক মানের সাথে সংশ্লিষ্ট প্রতিটি বিট 1 সেট করা হয় যদি একই সূচকটি আরও দ্বারা ফিরে আসে এক হ্যাশ ফাংশনের চেয়ে, সেই সূচীতে বিটটি একবারে সেট করা থাকে। আপনি ব্লুম ফিল্টারটিকে বিটগুলির নির্দিষ্ট পরিসরে হ্যাশগুলির সেটের একটি সুপারপজিশন হিসাবে বিবেচনা করতে পারেন।

উপরের লিঙ্কযুক্ত নিবন্ধে বর্ণিত প্রোটোকল স্ট্রিংগুলিকে এন-গ্রামে ভাগ করে, যা এই ক্ষেত্রে অক্ষরের সেট রয়েছে sets উদাহরণস্বরূপ, "hello"নিম্নলিখিত সেটটি 2-গ্রাম ফলিত হতে পারে:

["_h", "he", "el", "ll", "lo", "o_"]

সামনে-পিছনে ফাঁকা স্থানগুলি এন-গ্রাম নির্মাণের সময় সাধারণত constচ্ছিক বলে মনে হয়; কাগজে দেওয়া উদাহরণগুলি যা এই পদ্ধতির প্রস্তাব দেয় এগুলি প্যাডিং ব্যবহার করে।

প্রতিটি এন-গ্রাম ব্লুম ফিল্টার তৈরি করতে হ্যাশ করা যেতে পারে এবং ব্লুম ফিল্টারগুলির এই সেটটি স্ট্রিংয়ের জন্য ব্লুম ফিল্টার তৈরি করতে নিজেই (বিটওয়াইস বা অপারেশন) সুপারমোজ করা যেতে পারে।

যদি ফিল্টারটিতে হ্যাশ ফাংশন বা এন-গ্রাম রয়েছে তার চেয়ে অনেক বেশি বিট থাকে তবে নির্বিচারে স্ট্রিংগুলি ঠিক একই ফিল্টার উত্পাদন করার সম্ভাবনা কম। তবে, যত বেশি এন-গ্রাম দুটি স্ট্রিং মিল রয়েছে, তত বেশি বিট তাদের ফিল্টারগুলি ভাগ করে নেবে। তারপরে আপনি যে কোনও দুটি ফিল্টারকে A, Bতার ডাইস সহগের মাধ্যমে তুলনা করতে পারেন :

ডি এ, বি = ২ এএইচ / (এ + বি)

কোথায় hবিট উভয় ফিল্টার 1 সেট করা হয় যে সংখ্যা, a1 সেট বিট সংখ্যা শুধুমাত্র ফিল্টার A, এবং b1 সেট বিট সংখ্যা শুধুমাত্র ফিল্টার বি স্ট্রিং ঠিক একই হন, পাশা গুণফল 1 হবে; তারা তত বেশি পার্থক্য সহগের কাছাকাছি হবে 0

যেহেতু হ্যাশ ফাংশনগুলি অল্প সংখ্যক সম্ভাব্য বিট সূচকগুলিতে অনন্য ইনপুটগুলির ম্যাপিং করছে, বিভিন্ন ইনপুটগুলি একই ফিল্টার তৈরি করতে পারে, সুতরাং সহগ কেবল একটি সম্ভাবনার ইঙ্গিত দেয় যে স্ট্রিংগুলি একই বা অনুরূপ। বিভিন্ন হ্যাশ ফাংশনগুলির সংখ্যা এবং ফিল্টারে বিটের সংখ্যা মিথ্যা ধনাত্মক হওয়ার সম্ভাবনা নির্ধারণের জন্য গুরুত্বপূর্ণ পরামিতি - এই পদ্ধতির দ্বারা উত্পাদিত ডাইস গুণকের তুলনায় অনেক কম সংখ্যক ইনপুট যুক্ত।

আমি এই টিউটোরিয়ালটি ব্লুম ফিল্টারটি বোঝার জন্য খুব সহায়ক বলে মনে করেছি।

এই পদ্ধতিটি বাস্তবায়নে কিছুটা নমনীয়তা রয়েছে; আরো দেখুন এই 2010 কাগজ কিভাবে performant এটি অন্যান্য পদ্ধতি সম্পর্ক আছে, কিছু সূত্রানুযায়ী এবং বিভিন্ন পরামিতি সঙ্গে (এছাড়াও প্রশ্ন শেষে লিঙ্ক)।


এটিকে গ্রহণযোগ্য উত্তর হিসাবে চিহ্নিত করা হয়েছে কারণ প্রস্তাবিত পদ্ধতির বাইরে এটি আমার বিশেষ ব্যবহারের ক্ষেত্রে সবচেয়ে প্রতিশ্রুতিবদ্ধ।
এয়ার

এই সমস্ত বিবরণ এবং পটভূমি জন্য আপনাকে ধন্যবাদ। আপনি কি এই পদ্ধতির কোনও বাস্তবায়ন (যেমন পাইথনে) জুড়ে এসেছেন?
অম্বল

@ এম্বল আমার নেই
এয়ার

8

আপনার প্রশ্নটি পড়ার অর্ধেকের মধ্যে, আমি বুঝতে পারি লেভেনস্টাইন দূরত্ব আপনার সমস্যার একটি দুর্দান্ত সমাধান হতে পারে। বিষয়টির একটি কাগজের সাথে আপনার লিঙ্ক রয়েছে তা দেখতে ভাল লাগল, লেভেনস্টাইন সমাধানটি কেমন হবে সে সম্পর্কে আমি কিছুটা আলোকপাত করতে পারি কিনা তা আমাকে দেখতে দিন।

লেভেনস্টেইন দূরত্ব অনেক শিল্প জুড়ে সত্তা রেজোলিউশনের জন্য ব্যবহৃত হয়, যা এটি দরকারী করে তোলে তা হল এটি দুটি ক্রমের মধ্যে পার্থক্যের একটি পরিমাপ। স্ট্রিং তুলনার ক্ষেত্রে এটি কেবল ক্রম অক্ষর characters

এটি আপনাকে এমন একটি নম্বর সরবরাহ করার অনুমতি দিয়ে আপনার সমস্যার সমাধানে সহায়তা করতে পারে যা অন্য ক্ষেত্রের পাঠ্যের সাথে কতটা মিলের পরিমাপ দেয়।

আপনার দেওয়া ডেটা সহ লেভেনস্টাইন ব্যবহারের একটি প্রাথমিক পদ্ধতির উদাহরণ এখানে:

এখানে চিত্র বর্ণনা লিখুন

এটি একটি ওকে সমাধান সরবরাহ করে, 8 এর দূরত্বটি সম্পর্কের কিছু ইঙ্গিত দেয় এবং এটি খুব পিআইআই সাবলীল। যাইহোক, এটি এখনও সুপার দরকারী নয়, আসুন আমরা প্রথম নামের প্রথম প্রথমটি এবং মাঝখানে কিছু বাদ দেওয়ার পুরো শেষ নামটি নিতে কিছু পাঠ্য যাদু করি তবে কী ঘটে তা দেখা যাক:

এখানে চিত্র বর্ণনা লিখুন

আপনি দেখতে পাচ্ছেন 0 এর লেভেনস্টাইন দূরত্ব একটি সম্পর্কের সূচকটি সূচক। সাধারণত ডেটা সরবরাহকারীরা প্রথম এবং শেষ নামগুলির লেভেনস্টেইন ক্রমগুলির একগুচ্ছ 1, 2 বা সমস্ত অক্ষরের সাথে একত্রিত করবেন যা তথ্যের মধ্যে নাম প্রকাশ না করেও কীভাবে সত্তা সম্পর্কিত to


1
আমি যে কাগজটির সাথে লিঙ্ক করেছি সে সম্পর্কে আমার আগ্রহ কী তা হ'ল উভয় ইনপুট স্ট্রিংয়ের জ্ঞান ছাড়াই এই ধরণের গণনা সম্পাদনের জন্য কোনও পদ্ধতি প্রদর্শন করার দাবি করে । কাগজে, প্রতিটি অভিনেতার একটি স্ট্রিং সম্পর্কে জ্ঞান থাকে যা আমার উদ্দেশ্যে কার্যকর নয়; উভয় স্ট্রিংয়ের জ্ঞান ছাড়াই গণনা সম্পাদন করতে আমার একজন অভিনেতা প্রয়োজন । তাদের পূর্বে গণনা করা খুব খুব ছোট ডেটাসেট বা খুব সীমিত পণ্যের জন্যই সম্ভব; আমার ডেটাসেটে পূর্ণসংখ্যার দূরত্বের সম্পূর্ণ ক্রস পণ্যটি 10 ​​ডলার পিবি স্টোরেজ নিতে পারে।
এয়ার

এই কারণেই আমি একটি বিকল্প সাইফার (আরওটি 13) এর ধারণা নিয়ে এসেছি কারণ এটি স্ট্রিংয়ের মধ্যে দূরত্ব সংরক্ষণ করে; তবে এটি সুরক্ষিত নয় এবং আমি সন্দেহ করি যে সম্পাদনার দূরত্ব সংরক্ষণের সময় স্ট্রিংগুলি নিরাপদে এনক্রিপ্ট করা অসম্ভব। (ভুল হতে পছন্দ করবে!)
এয়ার

ঠিক আছে, আমি কেবলমাত্র একটি নির্দিষ্ট কাটঅফের নীচে লেভেনস্টেইনগুলি অন্তর্ভুক্ত করতে ম্যাট্রিক্স ফিল্টার করব, সুতরাং আপনি কেবল সেখানেই বসতি স্থাপন করছেন যেখানে ওভারল্যাপের উচ্চ সম্ভাবনা রয়েছে। অতিরিক্তভাবে, যখন পিআইআইয়ের কথা আসে আমি এই মানসিকতার মধ্যে আছি যে আপনি যদি আপনার ডেটাসেটগুলিতে পৃথক পৃথক সত্তাদের মধ্যে সম্পর্ক নির্ধারণের জন্য পর্যাপ্ত তথ্য অন্তর্ভুক্ত করেন তবে এটির খুব কম সম্ভাবনা আপনি গ্রাহকদের নাম প্রকাশ করবেন না। ডেটা বেনামে রাখার বিষয়টি হ'ল এই লাইনের নীচে সম্ভাব্য পিআইআই সম্পর্কিত নিয়ন্ত্রক মাথাব্যথা এড়ানো, (মানগুলি সর্বদা শক্ত করা যেতে পারে), তাই ব্যক্তিগতভাবে আমি ঝুঁকি নেব না।
নিওন 437373

7

যদি সম্ভব হয় তবে আমি সম্পর্কিত রেকর্ডগুলি লিঙ্ক করব (উদাহরণস্বরূপ, ডেভ, ডেভিড, ইত্যাদি) এবং তাদের প্রতিস্থাপনের ক্রম সংখ্যা (1,2,3, ইত্যাদি) বা স্ট্রিংয়ের একটি সল্ট হ্যাশ যা সম্পর্কিত সম্পর্কিত সমস্ত রেকর্ড উপস্থাপন করতে ব্যবহৃত হয় ( যেমন, ডেভের পরিবর্তে ডেভিড)।

আমি ধরে নিয়েছি যে তৃতীয় পক্ষের আসল নামটি কী তা সম্পর্কে কোনও ধারণা থাকার দরকার নেই, অন্যথায় আপনি তাদেরও এটি দিতে পারেন।

সম্পাদনা করুন : তৃতীয় পক্ষকে কী ধরণের ক্রিয়াকলাপ করতে সক্ষম হতে হবে তা আপনাকে সংজ্ঞায়িত ও ন্যায়সঙ্গত করতে হবে। উদাহরণস্বরূপ, বেনজামিন ওথেলো অ্যামেস থেকে আমেরিকা ব্যাঙ্ক অফ আমেরিকা বিচ্ছিন্ন করতে একটি সংখ্যার (উদাহরণস্বরূপ, বিওএ -১, বিওএ -২, প্রভৃতি) প্রাথমিক ব্যবহারের ক্ষেত্রে কী ভুল? যদি এটি খুব প্রকাশ করে তবে আপনি কিছু অক্ষর বা নাম বিন্যাস করতে পারেন; উদাহরণস্বরূপ, [এই] -> ১, [এফজে] -> ২ ইত্যাদি ইত্যাদি যাতে বিওএ 1OA হয়ে যায়, বা ["ব্যাংক", "ব্যারি", "ব্রুস" ইত্যাদি] -> 1 সুতরাং ব্যাংক অফ আমেরিকা আবার 1OA।

আরও তথ্যের জন্য দেখুন কে-বেনামে


কে-গোপনীয়তার রেফারেন্স এবং বিন পরামর্শটির প্রশংসা করুন - যা আমাকে কিছু নতুন বিষয় ভাবতে দেয়।
এয়ার

6

একটি বিকল্প (আপনার ডেটাসেটের আকারের উপর নির্ভর করে) কেবলমাত্র অতিরিক্ত ডেটাসেট হিসাবে সম্পাদনা করার দূরত্বগুলি (বা আপনি যে জাতীয়তার অন্যান্য পদক্ষেপগুলি ব্যবহার করছেন) সরবরাহ করা।

উদাহরণ:

  1. ডেটাসেটে অনন্য নামের একটি সেট তৈরি করুন
  2. প্রতিটি নামের জন্য একে অপরের নামের সম্পাদনার দূরত্ব গণনা করুন
  3. প্রতিটি নামের জন্য একটি আইডি বা অপরিবর্তনীয় হ্যাশ তৈরি করুন
  4. এই আইডি দিয়ে মূল ডেটাসেটে নামগুলি প্রতিস্থাপন করুন
  5. নতুন ডেটাসেট হিসাবে আইডি নম্বরগুলির মধ্যে সম্পাদনার দূরত্বের ম্যাট্রিক্স সরবরাহ করুন

যদিও এগুলি থেকে ডেটা বেনামে দেওয়ার জন্য এখনও অনেক কিছু করা যায়।

উদাহরণস্বরূপ, যদি "টিম" কোনও ছেলের পক্ষে সর্বাধিক জনপ্রিয় নাম হিসাবে পরিচিত হয়, জনসংখ্যার টিমগুলির পরিচিত শতাংশের সাথে ঘনিষ্ঠভাবে মিলিত আইডিগুলির ফ্রিকোয়েন্সি গণনা এটি এটিকে দিতে পারে। সেখান থেকে আপনি তখন 1 টির সম্পাদনার দূরত্ব সহ নামের সন্ধান করতে পারেন এবং সিদ্ধান্তে পৌঁছাতে পারেন যে এই আইডিগুলি "টম" বা "জিম" (অন্যান্য তথ্যের সাথে মিলিত হলে) বোঝায়।


5

আমি পুরোপুরি নিশ্চিত নই, তবে সম্ভবত এলাকা-সংবেদনশীল হ্যাশিং একটি ভাল সমাধান। এটি ইনপুট ডেটা হ্যাশ করে (আপনার ক্ষেত্রে - নাম), সুতরাং মূল স্ট্রিংগুলি সংরক্ষণ করা হবে। অন্যদিকে, এলএসএইচ-এর মূল ধারণাটি হ'ল হ্যাশ সম্ভাবনা সর্বাধিক করা similar বিভিন্ন LSH- বাস্তবায়ন অনেক আছে। টুইটের পাঠ্যগুলির তুলনা করার জন্য আমি নীলিমসা-হ্যাশ চেষ্টা করেছি এবং এটি বেশ ভাল কাজ করেছে। তবে আমি নিশ্চিত নই, সংক্ষিপ্ত স্ট্রিং (নাম) এর ক্ষেত্রে এটি কতটা ভাল কাজ করবে - এই সমস্যাটির পরীক্ষার প্রয়োজন। আমি আপনার উদাহরণগুলি চেষ্টা করেছি এবং ফলাফলটি এখানে রয়েছে (নাম এ, নাম বি, "দূরত্ব" - সর্বোচ্চ 120):

1. AMELIA BEDELIA  - CHRISTOPH BAUER - 107
2. AMELIA BEDELIA  - C J BAUER       - 82
3. AMELIA BEDELIA  - FRANZ HELLER    - 91
4. CHRISTOPH BAUER - C J BAUER       - 81
5. CHRISTOPH BAUER - FRANZ HELLER    - 98
6. C J BAUER       - FRANZ HELLER    - 83

আপনি দেখতে পাচ্ছেন, খ্রিস্টফ বাউয়ার এবং সিজে বাউয়ার সবচেয়ে কাছের জুটি হয়ে উঠেছে। তবে পার্থক্যটি তাৎপর্যপূর্ণ নয়। এবং কেবল উদাহরণস্বরূপ - এই নামের হ্যাশ প্রতিনিধিত্ব:

AMELIA BEDELIA  6b208299602b5000c3005a048122a43a828020889042240005011c1880864502
CHRISTOPH BAUER 22226448000ab10102e2860b52062487ff0000928e0822ee106028016cc01237
C J BAUER       2282204100961060048050004400240006032400148000802000a80130402002
FRANZ HELLER    58002002400880080b49172044020008030002442631e004009195020ad01158

3

এখানে আমি এমন একটি পদ্ধতির উল্লেখ করেছি যা দেখেনি: প্রক্রিয়াটিকে দুটি ধাপে পৃথক করুন: প্রথম পদক্ষেপটি এনকোডিংয়ের নামগুলিতে ফোকাস করা যাতে একই নামের বিকল্প সংস্করণগুলি একই (বা প্রায় একই) এনকোড করা হয় এবং দ্বিতীয় ধাপটি তৈরির দিকে কেন্দ্রীভূত হয় তাদের বেনামে।

প্রথম পদক্ষেপের জন্য, আপনি ফোনেটিক অ্যালগরিদমগুলির একটি (সাউন্ডেক্স এবং ভেরিয়েন্টস) ব্যবহার করতে পারেন, যা বিভিন্ন নাম অনুসারে প্রথম নাম, পদবি এবং আদ্যক্ষর প্রয়োগ করা হয়। ( এই নিবন্ধটি দেখুন , এছাড়াও)। এটি এই পদক্ষেপে যেখানে আপনি মিথ্যা নেতিবাচক থেকে মিথ্যা ধনাত্মক ভারসাম্য রক্ষার জন্য নামের মধ্যে পার্থক্যগুলি বনাম মিলগুলি সমাধান করেন।

দ্বিতীয় ধাপের জন্য, আপনি কীভাবে হ্যাশিং বা ক্রিপ্টোগ্রাফিক পদ্ধতি পছন্দ করতে পারেন, সেই পদ্ধতিটি নামের সাথে কীভাবে মিলবে তার জন্য উদ্বেগ ছাড়াই। এটি আপনাকে এমন একটি পদ্ধতি ব্যবহারের স্বাধীনতা দেয় যা পারফরম্যান্স, দৃust়তা এবং অনামীকরণ উভয়ের জন্য সেরা বৈশিষ্ট্যযুক্ত has


আমি মনে করি না যে এই পরামর্শটি প্রশ্নটিতে উপস্থাপিত হওয়ার সাথে সাথে সমস্যার সমাধান করে। নমনীয়তা পোস্ট-এনক্রিপশন কোথায়? আসল ডেটাতে অ্যাক্সেস না করে আমি কীভাবে আপনার বিশ্লেষণকে পরিমার্জন করব?
এয়ার

@ এয়ার থমাস আমি দুঃখিত তবে আমি আপনার দুটি প্রশ্ন বুঝতে পারছি না। "নমনীয়তা পোস্ট-এনক্রিপশন" বলতে কী বোঝ? আমি আপনার প্রশ্ন / বর্ণনায় এমন কিছু দেখিনি। "আসল তথ্য অ্যাক্সেস না করে আপনার বিশ্লেষণকে পরিমার্জন" বলতে কী বোঝ? আমি "পরিশোধন" সম্পর্কে কিছুই দেখিনি।
মিঃ মেরিটোলজি

1
প্রেরণা বিভাগের দ্বিতীয় অনুচ্ছেদে আমি সমস্যাটি সনাক্ত করার চেষ্টা করেছি । উদাহরণস্বরূপ কল্পনা করুন যে আপনি বিভিন্ন গবেষক যারা কিছু মডেলিং করতে চান তাদের কাছে ডেটা সেটটি প্রকাশ করতে চান। প্রয়োগ করা যেতে পারে এমন অনেকগুলি চালাক এবং কার্যকর পদ্ধতি রয়েছে এবং প্রতিটি গবেষক কিছুটা আলাদাভাবে কাজ করেন। আপনি আপনার ডেটা সেটে ব্যক্তিগত ব্যক্তির নাম প্রকাশ করতে পারবেন না। আপনি যদি ডেটা প্রকাশের আগে বিশ্লেষণের সেই অংশটি সম্পাদন করেন তবে এটি আপনার পদ্ধতির পছন্দটি সবার উপরে চাপিয়ে দেয়।
এয়ার

যদি আপনি অতিরিক্তভাবে হ্যাশগুলি সরবরাহ করেন তবে সুবিধাটি হ'ল তৃতীয় পক্ষগুলি সঠিক পরিচয়টি আলাদা করতে পারে, তবে আর কিছুই নয়। সুতরাং প্রশ্নটি হল, আপনি যে ডেটা প্রকাশ করতে পারবেন না সে সম্পর্কে আপনি কীভাবে আরও বেশি তথ্য সরবরাহ করতে পারেন? উদাহরণস্বরূপ, এমন কোনও পদ্ধতি আছে যা হ্যাশিং / এনক্রিপশন আউটপুটটিতে সালিসী ইনপুটগুলির মধ্যে সম্পাদনার দূরত্ব সংরক্ষণ করে? আমি কমপক্ষে একটি পদ্ধতি খুঁজে পেয়েছি যা কমপক্ষে সেই কার্যকারিতাটির প্রায় কাছাকাছি চলে আসে (আরও তথ্যের জন্য, আমার নিজের উত্তর দেখুন)। আমি আশা করি যে বিষয়গুলি আরও স্পষ্ট করে তোলে।
এয়ার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.