https://github.com/oefenweb/damerau-levenshtein
Get text similarity level with Damerau-Levenshtein distance
https://github.com/oefenweb/damerau-levenshtein
damerau-levenshtein php text
Last synced: 11 months ago
JSON representation
Get text similarity level with Damerau-Levenshtein distance
- Host: GitHub
- URL: https://github.com/oefenweb/damerau-levenshtein
- Owner: Oefenweb
- License: mit
- Created: 2014-08-20T13:44:05.000Z (almost 12 years ago)
- Default Branch: master
- Last Pushed: 2022-03-23T10:45:05.000Z (over 4 years ago)
- Last Synced: 2025-08-05T18:52:36.935Z (12 months ago)
- Topics: damerau-levenshtein, php, text
- Language: PHP
- Size: 73.2 KB
- Stars: 37
- Watchers: 6
- Forks: 9
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# Damerau Levenshtein
[](https://github.com/Oefenweb/damerau-levenshtein/actions?query=workflow%3ACI)
[](https://travis-ci.org/Oefenweb/damerau-levenshtein)
[](https://codecov.io/gh/Oefenweb/damerau-levenshtein)
[](https://packagist.org/packages/oefenweb/damerau-levenshtein)
[](https://codeclimate.com/github/Oefenweb/damerau-levenshtein)
[](https://scrutinizer-ci.com/g/Oefenweb/damerau-levenshtein/?branch=master)
Get text similarity level with Damerau-Levenshtein distance.
## Requirements
* PHP 7.1.0 or greater.
## Installation
`composer require oefenweb/damerau-levenshtein`
## Usage
```php
$pattern = 'foo bar';
$string = 'fuu baz';
$damerauLevenshtein = new DamerauLevenshtein($pattern, $string);
$damerauLevenshtein->getSimilarity(); // absolute edit distance; == 3
$damerauLevenshtein->getRelativeDistance(); // relative edit distance; == 0.57142857142857
$damerauLevenshtein->getMatrix(); // get complete distance matrix
/* ==
* [
* [0,1,2,3,4,5,6,7],
* [1,0,1,2,3,4,5,6],
* [2,1,1,2,3,4,5,6],
* [3,2,2,2,3,4,5,6],
* [4,3,3,3,2,3,4,5],
* [5,4,4,4,3,2,3,4],
* [6,5,5,5,4,3,2,3],
* [7,6,6,6,5,4,3,3],
* ]
*/
$damerauLevenshtein->displayMatrix(); // get readable and formatted distance matrix
/*
* ' foo bar' . PHP_EOL
* . ' 01234567' . PHP_EOL
* . 'f10123456' . PHP_EOL
* . 'u21123456' . PHP_EOL
* . 'u32223456' . PHP_EOL
* . ' 43332345' . PHP_EOL
* . 'b54443234' . PHP_EOL
* . 'a65554323' . PHP_EOL
* . 'z76665433'
*/
```
Different costs are supported by the constructor and getters / setters.
Character comparison (equal check) can easily be overridden by parent class (see `DamerauLevenshtein::compare`).
For more examples look at `/tests/DamerauLevenshteinTest.php` or **RTFC**.
## License
MIT
#### Author Information
Mischa ter Smitten (based on work of [Ph4r05](http://www.phpclasses.org/package/7021-PHP-Get-text-similarity-level-with-Damerau-Levenshtein.html))