designbycode / levenshtein-distance
LevenshteinDistance类提供了一个计算两个字符串之间Levenshtein距离的方法。Levenshtein距离是衡量将一个词转换为另一个词所需的最小单字符编辑(插入、删除或替换)次数的度量。
v1.0.1
2024-07-20 18:20 UTC
Requires
- php: ^8.1|^8.2|^8.3
Requires (Dev)
- laravel/pint: ^1.0
- pestphp/pest: ^2.20
- spatie/ray: ^1.28
This package is auto-updated.
Last update: 2024-09-23 22:12:50 UTC
README
LevenshteinDistance类提供了一个计算两个字符串之间Levenshtein距离的方法。Levenshtein距离是衡量将一个词转换为另一个词所需的最小单字符编辑(插入、删除或替换)次数的度量。
安装
您可以通过composer安装此包
composer require designbycode/levenshtein-distance
方法:calculate
参数
- mixed $str1: 第一个字符串。
- mixed $str2: 第二个字符串。
返回值
- int: 两个字符串之间的Levenshtein距离。
描述
- 计算两个字符串之间的Levenshtein距离。如果任一输入参数不是字符串,则该方法会抛出TypeError。
用例
- 拼写检查:计算用户输入与已知单词列表之间的Levenshtein距离以提出更正建议。
- 文本相似度:通过计算Levenshtein距离来衡量两段文本的相似度。
- 数据验证:通过计算输入与已知有效值之间的Levenshtein距离来验证用户输入的正确性。
用法
示例1:计算两个字符串之间的Levenshtein距离
$str1 = 'kitten'; $str2 = 'sitting'; $distance = LevenshteinDistance::calculate($str1, $str2); echo "Levenshtein distance: $distance"; // Output: 3
示例2:处理非字符串输入
$str1 = 'hello'; $nonString = 123; try { LevenshteinDistance::calculate($str1, $nonString); } catch (TypeError $e) { echo "Error: " . $e->getMessage(); // Output: Argument 2 passed to LevenshteinDistance::calculate() must be of the type string }
示例3:使用Levenshtein距离进行拼写检查
$userInput = 'teh'; $knownWords = ['the', 'tea', 'ten']; $minDistance = PHP_INT_MAX; $closestWord = ''; foreach ($knownWords as $word) { $distance = LevenshteinDistance::calculate($userInput, $word); if ($distance < $minDistance) { $minDistance = $distance; $closestWord = $word; } } echo "Did you mean: $closestWord"; // Output: Did you mean: the
测试
composer test
变更日志
请参阅CHANGELOG以获取有关最近更改的更多信息。
贡献
请参阅CONTRIBUTING以获取详细信息。
安全漏洞
请审查我们的安全策略了解如何报告安全漏洞。
致谢
许可
MIT许可(MIT)。请参阅许可文件以获取更多信息。