Fungsi kesamaan string yang sederhana dan ringan (~700 byte diperkecil) berdasarkan perbandingan jumlah bigram yang sama antara dua string mana pun. Mengembalikan skor antara 0 dan 1 yang menunjukkan kekuatan pertandingan.
Berdasarkan koefisien Sørensen–Dice, algoritma ini paling efektif dalam mendeteksi kata-kata yang disusun ulang atau salah eja. Ini cenderung kurang efektif dengan string yang sangat pendek, kecuali mungkin Anda beralih untuk membandingkan karakter individu yang sama daripada bigram.
Ini tidak peka huruf besar-kecil kecuali Anda menentukan sebaliknya. Tidak mengabaikan tanda baca atau spasi. Dalam beberapa kasus, menghilangkan tanda baca terlebih dahulu dapat meningkatkan akurasi.
Versi 2.0 mengoptimalkan algoritme dari kompleksitas waktu O(n 2 ) menjadi O(n), dan beralih dari penggunaan larik untuk bigram ke Peta, yang ternyata jauh lebih cepat dalam pengujian kinerja.
Pustaka ini menggunakan struktur data Peta bawaan untuk kinerja optimal. Oleh karena itu, diperlukan setidaknya IE11 atau polyfill untuk Map.
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
Proyek ini dilisensikan di bawah Lisensi MIT - lihat file LICENSE.md untuk detailnya