دالة تشابه سلسلة بسيطة وخفيفة الوزن (مصغرة ~ 700 بايت) تعتمد على مقارنة عدد الصور الكبيرة المشتركة بين أي سلسلتين. إرجاع النتيجة بين 0 و1 مما يشير إلى قوة المباراة.
استنادًا إلى معامل سورينسن-دايس، تعد هذه الخوارزمية أكثر فاعلية في اكتشاف الكلمات المعاد ترتيبها أو الأخطاء الإملائية. تميل إلى أن تكون أقل فعالية مع السلاسل القصيرة جدًا، إلا إذا قمت بالتبديل إلى مقارنة الأحرف الفردية المشتركة بدلاً من الأحرف الكبيرة.
وهو حساس لحالة الأحرف ما لم تحدد خلاف ذلك. لا يتجاهل علامات الترقيم أو المسافات. في بعض الحالات، قد تؤدي إزالة علامات الترقيم مسبقًا إلى تحسين الدقة.
يعمل الإصدار 2.0 على تحسين الخوارزمية من التعقيد الزمني O(n 2 ) إلى O(n)، والتبديل من استخدام مصفوفة للصور الكبيرة إلى الخريطة، والتي تبين أنها أسرع بشكل كبير في اختبارات الأداء.
تستخدم هذه المكتبة بنية بيانات الخريطة المضمنة لتحقيق الأداء الأمثل. ولذلك، فإنه يتطلب IE11 على الأقل أو تعبئة متعددة للخريطة.
import { stringSimilarity } from "string-similarity-js" ;
// Rearranged words
stringSimilarity ( "Lorem ipsum" , "Ipsum lorem" )
// Returns a score of 0.9
// Typos
stringSimilarity ( "The quick brown fox jumps over the lazy dog" , "The quck brown fx jumps over the lazy dog" )
// 0.92
// Even more different
stringSimilarity ( "The quick brown fox jumps over the lazy dog" , "The quack brain fax jomps odor the lady frog" )
// 0.65
// Completely different strings
stringSimilarity ( "The quick brown fox jumps over the lazy dog" , "Lorem ipsum" )
// 0.07
// Tiny strings are less effective with default settings
stringSimilarity ( "DMV" , "DNV" )
// Returns 0, because technically there are no bigrams in common between the two
// Passing in a substring length of 1 may improve accuracy on tiny strings
stringSimilarity ( "DMV" , "DNV" , 1 )
// Returns 0.67, the percentage of letters in common between the two
تم ترخيص هذا المشروع بموجب ترخيص MIT - راجع ملف LICENSE.md للحصول على التفاصيل