string similarity js
1.0.0
任意の 2 つの文字列間で共通するバイグラムの数を比較することに基づく、シンプルで軽量 (約 700 バイトに縮小) の文字列類似性関数。一致の強さを示す 0 ~ 1 のスコアを返します。
Sørensen-Dice 係数に基づくこのアルゴリズムは、並べ替えられた単語やスペルミスを検出するのに最も効果的です。おそらくバイグラムではなく共通の個々の文字の比較に切り替えない限り、非常に短い文字列では効果が低くなる傾向があります。
特に指定しない限り、大文字と小文字は区別されません。句読点やスペースは無視されません。場合によっては、句読点を事前に削除すると精度が向上することがあります。
バージョン 2.0 では、アルゴリズムの時間計算量が O(n 2 ) から O(n) に最適化され、バイグラムの配列の使用からマップに切り替わりました。これは、パフォーマンス テストで大幅に高速であることが判明しました。
このライブラリは、最適なパフォーマンスを実現するために、組み込みの 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 ファイルを参照してください。