string similarity js
1.0.0
두 문자열 사이에 공통된 바이그램 수를 비교하는 것을 기반으로 하는 간단하고 가벼운(최대 700바이트 축소) 문자열 유사성 함수입니다. 일치 강도를 나타내는 0에서 1 사이의 점수를 반환합니다.
Sørensen-Dice 계수를 기반으로 하는 이 알고리즘은 재배열된 단어나 철자 오류를 감지하는 데 가장 효과적입니다. 바이그램 대신 공통 문자 비교로 전환하지 않는 한 매우 짧은 문자열에서는 효율성이 떨어지는 경향이 있습니다.
별도로 지정하지 않는 한 대소문자를 구분하지 않습니다. 구두점이나 공백을 무시하지 않습니다. 어떤 경우에는 구두점을 미리 제거하면 정확성이 향상될 수 있습니다.
버전 2.0은 알고리즘을 O(n 2 ) 시간 복잡도에서 O(n)으로 최적화하고 바이그램용 배열 사용에서 Map으로 전환합니다. 이는 성능 테스트에서 훨씬 더 빠른 것으로 나타났습니다.
이 라이브러리는 최적의 성능을 위해 내장된 Map 데이터 구조를 사용합니다. 따라서 최소한 IE11 또는 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
이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 LICENSE.md 파일을 참조하세요.