string similarity js
1.0.0
一个简单、轻量级(缩小约 700 字节)的字符串相似度函数,基于比较任意两个字符串之间共有的二元组的数量。返回 0 到 1 之间的分数,指示匹配的强度。
该算法基于 Sørensen-Dice 系数,在检测重新排列的单词或拼写错误方面最为有效。对于非常短的字符串,它的效率往往较低,除非您转而比较共同的单个字符而不是二元组。
除非您另外指定,否则它不区分大小写。不忽略标点符号或空格。在某些情况下,预先删除标点符号可能会提高准确性。
2.0 版本将算法的时间复杂度从 O(n 2 ) 优化为 O(n),并且从使用二元组数组切换到使用 Map,在性能测试中发现 Map 的速度要快得多。
该库使用内置的 Map 数据结构来实现最佳性能。因此,它至少需要IE11或Map的polyfill。
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 文件