npm install sift-distance``sh`
$ npm install sift-distance
NOTE: The major version of this module tracks the algorithm's version.
So, if you want to use SIFT 3, for example, you'd install sift-distance@3.0, for version 3B of the SIFT algorithm sift-distance@3.1, for version 4 sift-distance@4.0 and so on.
This implements the SIFT4 extended version.
#### SIFT( a, b, [options] )
- String|Buffer|Array ab
- String|Buffer|Array options
- Object maxOffset
- Number maxDistance
- Number tokenizer
- Function tokenMatcher
- Function matchEvaluator
- Function lengthEvaluator
- Function transpositionEvaluator
- Function
#### Number maxOffset
The maximum largest common substring offset to be matched against one another. Defaults to 5.
#### Number maxDistance
Distance at which the algorithm should stop computing the value and just exit (the values are too different anyway).
#### Function tokenizer( value ) -> String|Array|Buffer
- Mixed value
Function to transform strings into vectors of tokens.
#### Function tokenMatcher( token1, token2 ) -> Boolean
- Mixed token1token2
- Mixed
Function to determine if two tokens match each other (equal).
#### Function matchEvaluator( token1, token2 ) -> Number
- Mixed token1token2
- Mixed
Function to determine the way a token match should be added to the lcs (largest common substring). For example, a fuzzy match could be implemented.
#### Function lengthEvaluator( lcs ) -> Number
- Number lcs: largest common substring length
Function to determine the way the lcs value is added to the lcss. For example, longer continuous substrings could be awarded.
#### Function transpositionEvaluator( transpositions, lcss ) -> Number
- Number transpositions: number of transpositionslcss`: largest common subsequence length
- Number
Function to determine the way the number of transpositions affects the final result.