oefenweb/damerau-levenshtein

使用Damerau-Levenshtein距离获取文本相似度级别

v3.0.2 2022-03-23 10:44 UTC

This package is auto-updated.

Last update: 2024-09-23 16:16:37 UTC


README

CI PHP 7 ready codecov Packagist downloads Code Climate Scrutinizer Code Quality

使用Damerau-Levenshtein距离获取文本相似度级别。

要求

  • PHP 7.1.0 或更高版本。

安装

composer require oefenweb/damerau-levenshtein

使用方法

$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'
 */

构造函数和获取/设置方法支持不同的成本。

字符比较(相等检查)可以很容易地通过父类覆盖(参见 DamerauLevenshtein::compare)。

更多示例请参阅 /tests/DamerauLevenshteinTest.phpRTFC

许可证

MIT

作者信息

Mischa ter Smitten(基于Ph4r05的工作)