dd / php-library-ddtextcompare
一个允许比较两个文本的简单工具
v0.9
2015-11-07 18:25 UTC
Requires
- php: >=5.3.0
This package is auto-updated.
Last update: 2024-09-08 19:30:50 UTC
README
这是一个允许比较两个字符串的简单工具。目前该库仅支持UTF-8字符串。
该库是什么
ddTextCompare可以在PHP中无法直接进行字符串比较的情况下使用。该库依赖于字符数量及其位置,因此适合比较包含错误或具有不同单词顺序但相同单词的字符串。
该库不是什么
ddTextCompare与您从智能搜索引擎期望的任何形态学或其他分析无关。库的主要目的是保持简单。
工作原理
默认情况下,ddTextCompare执行简单的分析。每个被比较的字符串表示为两个n维向量,其中n是两个字符串中使用的唯一字符数量。第一个向量v1显示了其字符串中的字符及其总数。另一个向量v2显示了这些唯一字符的位置。当为每个字符串找到这两个向量时,将找到向量对之间的余弦相似度。一旦计算出来,cos(v1,1v1,2) 和 cos(v2,1v2,2) 将分别乘以其权重,并将结果修改为使其属于0到1的范围。
安装
Composer
只需将包添加到您的composer.json文件中。
composer require dd/php-library-ddtextcompare
手动
虽然使用Composer很方便,但也可以将库放在您想放置的位置,并手动包含“src”文件夹中的所有类。
基本用法
以下是一些示例。
比较包含错误的字符串
$compare = new DDTextCompare(); $similarity = $compare->compare("Text without any typos", "Text wihtout ayn typoes"); // $similarity = 0.99076390557741
调整权重
默认情况下,所有标准的权重相等,但可以更改。当更改权重时,另一个权重将自动调整,以使它们的和等于1。
$compare = new DDTextCompare(); $comparator = new Comparator\Cosine(); //Change the char total criterion weight $comparator->setCharTotalWeight(0.8) $similarity = $compare->compare("Text without any typos", "Txet wihtout ayn typoes", $comparator); // $similarity = 0.99310343750374
扩展
可以通过实现DDTextCompare\Comparator接口来创建自定义比较器类。
$compare = new DDTextCompare(); $comparator = new Comparator\YourCustomComparator(); $similarity = $compare->compare("Text without any typos", "Txet wihtout ayn typoes", $comparator);
变更日志
版本 0.9 (2015-11-07)
- + 这是第一个版本。