كيفية تحديد ما إذا كان السجل في كل مصدر يمثل نفس الشخص

StackOverflow https://stackoverflow.com/questions/122990

سؤال

لدي عدة مصادر للجداول التي تحتوي على بيانات شخصية، مثل هذا:

SOURCE 1
ID, FIRST_NAME, LAST_NAME, FIELD1, ...
1, jhon, gates ...

SOURCE 2
ID, FIRST_NAME, LAST_NAME, ANOTHER_FIELD1, ...
1, jon, gate ...

SOURCE 3
ID, FIRST_NAME, LAST_NAME, ANOTHER_FIELD1, ...
2, jhon, ballmer ...

لذلك، بافتراض أن السجلات ذات المعرف 1، من المصادر 1 و 2، هي نفس الشخص، فإن مشكلتي هي كيفية تحديد ما إذا كان السجل في كل مصدر يمثل نفس الشخص.بالإضافة إلى ذلك، تأكد من عدم وجود كل السجلات في كافة المصادر.جميع الأسماء مكتوبة باللغة الإسبانية، بشكل رئيسي.

في هذه الحالة، يجب تخفيف المطابقة الدقيقة لأننا نفترض لم يتم فحص مصادر البيانات بدقة ضد المكتب الرسمي لتحديد الهوية في البلاد.كما أننا بحاجة إلى أن نفترض الأخطاء المطبعية شائعة, وذلك لأن طبيعة عمليات جمع البيانات.علاوة على ذلك، فإن كمية السجلات تبلغ حوالي 2 أو 3 ملايين في كل مصدر...

لقد فكر فريقنا في شيء مثل هذا:أولاً، قم بفرض المطابقة التامة في الحقول المحددة مثل رقم المعرف والأسماء لمعرفة مدى صعوبة المشكلة.ثانيًا، تخفيف معايير المطابقة، وحساب عدد السجلات التي يمكن مطابقتها، ولكن هنا تظهر المشكلة: كيف نفعل لتخفيف معايير المطابقة دون توليد ضوضاء كبيرة أو تقييد أكثر من اللازم؟

ما هي الأداة التي يمكن أن تكون أكثر فعالية للتعامل مع هذا؟، على سبيل المثال، هل تعرف بعض الامتدادات المحددة في بعض محركات قواعد البيانات لدعم هذه المطابقة؟هل تعرف عن الخوارزميات الذكية مثل soundex للتعامل مع هذه المطابقة التقريبية، ولكن بالنسبة للنصوص الإسبانية؟

سيكون موضع تقدير أي مساعدة!

شكرًا.

هل كانت مفيدة؟

المحلول

جوهر المشكلة هو حساب واحد أو أكثر من قياسات المسافة بين كل زوج من المدخلات ثم اعتبارها هي نفسها عندما تكون إحدى المسافات أقل من عتبة مقبولة معينة.المفتاح هو إعداد التحليل ثم تغيير المسافة المقبولة حتى تصل إلى ما تعتبره أفضل مقايضة بين الإيجابيات الكاذبة والسلبيات الكاذبة.

يمكن أن يكون قياس المسافة صوتيًا.شيء آخر قد تفكر فيه هو Levenshtein أو تعديل المسافة بين الكليات، والتي من شأنها أن تحاول قياس الأخطاء المطبعية.

إذا كانت لديك فكرة معقولة عن عدد الأشخاص الذي يجب أن يكون لديك، فإن هدفك هو العثور على النقطة المثالية التي تحصل فيها على العدد الصحيح من الأشخاص.اجعل المطابقة الخاصة بك غامضة للغاية وسيكون لديك عدد قليل جدًا.اجعلها مقيدة وسيكون لديك الكثير.

إذا كنت تعرف تقريبًا عدد الإدخالات التي يجب أن يمتلكها الشخص، فيمكنك استخدام ذلك كمقياس لمعرفة متى تقترب.أو يمكنك تقسيم عدد السجلات إلى متوسط ​​عدد السجلات لكل شخص والحصول على عدد تقريبي للأشخاص الذين تقوم بالتصوير لهم.

إذا لم يكن لديك أي أرقام لاستخدامها، فسيتبقى لك اختيار مجموعات من السجلات من تحليلك والتحقق يدويًا مما إذا كانت تبدو مثل نفس الشخص أم لا.لذلك فمن التخمين والتحقق.

أتمنى أن يساعد ذلك.

نصائح أخرى

هذا يبدو وكأنه تكامل بيانات العملاء مشكلة.ابحث عن هذا المصطلح وقد تجد المزيد من المعلومات.أيضا، لديك كزة في الداخل مؤسسة تخزين البيانات, ، وقد تجد بعض الإجابات هناك أيضًا.

يحرر: فضلاً عن ذلك، هنا مقال قد يثير اهتمامك حول المطابقة الصوتية الإسبانية.

لقد اضطررت إلى القيام بشيء مماثل من قبل وما فعلته هو استخدام ملف ميتافون مزدوج البحث الصوتي عن الأسماء.

قبل أن أقوم بمقارنة الأسماء، حاولت تسوية أي اختلافات في الاسم/اللقب من خلال البحث عن الاسم في جدول الأسماء المستعارة الذي قمت بإنشائه.(لقد ملأت الجدول ببيانات التعداد السكاني التي وجدتها عبر الإنترنت) لذا أصبح الأشخاص الذين يُطلق عليهم بوب روبرت، وأليكس أصبح ألكسندر، وبيل أصبح ويليام، وما إلى ذلك.

يحرر:تم تصميم Double Metaphone خصيصًا ليكون أفضل من Soundex ويعمل بلغات أخرى غير الإنجليزية.

SSIS، حاول استخدام تحويل البحث المضبب

فقط لإضافة بعض التفاصيل لحل هذه المشكلة، وجدت هذه الوحدات النمطية لـ Postgresql 8.3

قد تحاول تحديد الأسماء بمقارنتها مع القاموس.
سيسمح لك ذلك باكتشاف بعض الأخطاء المطبعية الشائعة وتصحيحها.

يبدو لي أن لديك ربط السجل مشكلة.يمكنك استخدام المراجع في الرابط.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top