PHP » PYTHON |
login |
register |
about
|
PYTHON levenshtein
is this article helpful?
|
Python replacement for PHP's levenshtein
[
edit
| history
]
def levenshtein(a,b):
"Calculates the Levenshtein distance between a and b." n, m = len(a), len(b) if n > m: # Make sure n <= m, to use O(min(n,m)) space a,b = b,a n,m = m,n current = range(n+1) for i in range(1,m+1): previous, current = current, +*n for j in range(1,n+1): add, delete = previous+1, current+1 change = previous if a != b: change = change + 1 current = min(add, delete, change) return current levenshtein(PHP 4 >= 4.0.1, PHP 5) levenshtein — Calculate Levenshtein distance between two strings Description
int levenshtein
( string $str1
, string $str2
)
int levenshtein
( string $str1
, string $str2
, int $cost_ins
, int $cost_rep
, int $cost_del
)
The Levenshtein distance is defined as the minimal number of characters you have to replace, insert or delete to transform str1 into str2 . The complexity of the algorithm is O(m*n), where n and m are the length of str1 and str2 (rather good when compared to similar_text(), which is O(max(n,m)**3), but still expensive). In its simplest form the function will take only the two strings as parameter and will calculate just the number of insert, replace and delete operations needed to transform str1 into str2 . A second variant will take three additional parameters that define the cost of insert, replace and delete operations. This is more general and adaptive than variant one, but not as efficient. Parameters
Return ValuesThis function returns the Levenshtein-Distance between the two argument strings or -1, if one of the argument strings is longer than the limit of 255 characters. Examples
Example #1 levenshtein() example
<?phpThe above example will output: Input word: carrrot Did you mean: carrot?
See Also
|
more
Recently updated
more
Most requested
|