حساب الحد الأدنى من مسافة Hamming بين سلسلة ومجموعة

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

سؤال

ex: إذا كان لدي سلسلة "ASDF" ومجموعة السلاسل ("QWER"، "ASWR"، "ASDV"). المسافة Hamming بين المجموعة والسلسلة ستكون 1 مثل "ASDV" و "ASDF" لديها مسافة Hamming One.

من السهل القوة الغاشمة مع شيء مثل هذا

giveacodicetagpre.

أعتقد أن هذا لديه O (n * k) حيث n= len (string) و k= len (set). ومع ذلك، الحد الأقصى لحجم المقاييس مع N ^ 2، مما يعني أننا نتعامل بشكل أساسي مع O (N ^ 3). مجموعات ثابتة إلى حد ما، لذلك إذا كانت المسبق المسبق للمساعدة في ذلك هو بالتأكيد خيار.

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

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

المحلول

أولا وقبل كل شيء، مسافة Hamming بين السلاسل متري. وبالتالي، تحاول العثور على جيران K-Neave في مساحة متري (حيث K= 1).

وبالتالي، قد ترغب في النظر في شجرة مشابهة لهيكل بيانات شجرة M: (انظر http://en.wikipedia.org/wiki/m-tree و http : //www.vldb.org/conf/1997/p426.pdf ). تم تصميم هذه الشجرة لتقليل مقارنات نسبة الأرقام التي يجب إجراءها لإيجاد "أقرب جيران".

شخصيا، لم أتمكن من العثور على تنفيذ شجرة م عبر الإنترنت التي كنت راضيا عن (انظر خيطي المغلق الذي يبحث عن تطبيق M- شجرة ناضجة) لذلك أدلفت بلدي.

تطبيقي هنا: re="nofollow"> https://github.com/jon1van/mtreamaprepo

التنفيذ الآخر الوحيد الذي يمكنني العثور عليه كان هذا واحد: https://github.com/erdavila/m -تحديث أنا لم أعجب هذا التنفيذ لأنه لم يكن لديه وظيفة إزالة الوظائف (والعديد من المشاكل الأخرى) (ولكن كان حرا جدا ... هذا جيد).

قد ترغب في التفكير في استخدام التعليمات البرمجية (التي تتحول KNN عمليات البحث في مساحة متري عامة) مع مقياس المسافة Levensthtein ( http://en.wikipedia.org/wiki/levenshtein_distance ). يجب أن تكون العثور على المسافة المنفذة بالكامل من مسافة Levenshtein عبر الإنترنت سهلة للغاية

إضافة وظيفة levenstein المسافة ** http://code.google.com/p/google-refine/source/browse/trunk/src/main/java/edu/mit/simile/vicino/distances/levensteindistance.java؟r= 181

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