gpupo/similarity

该包已被废弃,不再维护。未建议替代包。

计算字符串和数字之间的相似度,工作方式与diff工具不同

2.0.0 2019-12-27 19:44 UTC

This package is auto-updated.

Last update: 2023-04-11 00:33:35 UTC


README

计算字符串或数字之间的相似度

  • 支持 停用词
  • 工作方式与diff工具不同

Paypal Donations

使用要求

此组件 不是一个独立应用程序,其目标是作为库使用。其部署应由经验丰富的开发者执行。

这不是一个插件!

仅通过命令行模式工作的选项仅用于开发模式下的调试。

最重要的文档位于单元测试中。如果您无法阅读单元测试,我建议您不要使用此库。

版权和许可证

此组件受 MIT 许可证 保护

有关版权和许可证信息,您必须阅读随此代码一起分发的 许可证 文件。

许可证摘要

要求

  • 许可证和版权声明

允许

  • 商业使用
  • 修改
  • 分发
  • 再许可

禁止

  • 责任保证

质量指标

Build Status Scrutinizer Code Quality Code Climate Test Coverage

感谢

- Gilmar Pupo

使用方法

示例 1,带有停用词

	$stringA = 'Av. Padre Anchieta 1873 - Champagnat - Curitiba - Brasil';
	$stringB = 'Brasil - Parana - Curitiba - Champagnat - '
		.'Rua Padre Anchieta 1873 - Perto da Avenida';
	$stopwordsList = explode(',', 'Av,Rua,Avenida,perto,da,de,e,em,o');
	$s = new Similarity();
    $s->setValues($stringA, $stringB);
    $s->setAccuracy(80); // 1-100 accuracy value
    $s->setStopwords($stopwordsList);
	$similar = $s->hasSimilarity(); //true

示例 2,链式方法调用

	$s = new Similarity();
    $result = $s->setValues($stringA, $stringB)->setAccuracy(60)
    	->setStopwords($stopwordsList)->hasSimilarity();

示例 3,数字

	$s = new Similarity();
    $resultA = $s->setNumberValues('1530D',1510)->hasSimilarity(); // true
	$resultB = $s->setNumberValues('3D',4)->hasSimilarity(); // true
	$resultC = $s->setNumberValues('100B',205)->hasSimilarity(); // false
	$resultD = $s->setNumberValues('20',2)->hasSimilarity(); // false
	$resultE = $s->setNumberValues('3 - D 4',34)->hasSimilarity(); // true

安装

推荐的安装方法是 通过 composer

{
    "require": {
        "gpupo/similarity": "dev-master"
    }
}

链接

测试

所有测试都在每次提交时自动运行,在OSxLinux环境下,使用PHP版本5.35.45.55.67.0hhvm,通过Travis执行。

在本地运行测试套件

$ phpunit

查看testdox输出

$ phpunit --testdox

对象属性

Similarity\Input\Decorator

  • 清理字符
  • 清理数字

Similarity\Input\InputNumber

  • 清理忽略的字符

Similarity\Input\InputString

  • 清理忽略的字符
  • 清理停用词

Similarity\SimilarNumber

  • 成功找到相似性
  • 成功找到邻近性
  • 成功找到具有远程数字的邻近性

Similarity\SimilarText

  • 成功找到百分比相似性
  • 成功找到无相似性的文本的百分比
  • 成功找到levenshtein距离

Similarity\Similarity

  • 成功断言字符串相似性
  • 成功断言短语不同
  • 成功断言数字相似性
  • 成功断言近似数字相似性
  • 成功断言不同数字
  • 提高准确性的能力
  • 降低准确性的能力
  • 注入停用词的能力

依赖库列表

名称 版本 描述
codeclimate/php-test-reporter v0.4.4 用于向Code Climate报告测试覆盖率的PHP客户端
doctrine/instantiator 1.0.5 一个小巧轻便的实用工具,用于在PHP中实例化对象而不调用其构造函数
gpupo/cache 1.3.0 实现PSR-6的缓存库
gpupo/common 1.7.6 常用对象
gpupo/common-sdk 2.2.15 在PHP应用程序与RESTful web服务之间进行集成时通用的组件
guzzle/guzzle v3.9.3 PHP HTTP客户端。此库已被弃用,建议使用https://packagist.org.cn/packages/guzzlehttp/guzzle
monolog/monolog 1.22.1 将您的日志发送到文件、套接字、收件箱、数据库和各种Web服务
myclabs/deep-copy 1.6.0 创建对象的深拷贝(克隆)
padraic/humbug_get_contents 1.0.4 用于PHP 5.3+访问HTTPS资源的安全包装器,用于file_get_contents
padraic/phar-updater 1.0.3 一个使PHAR自更新变得简单和安全的东西
phpdocumentor/reflection-common 1.0 phpdocumentor用于反射代码结构时使用的常用反射类
phpdocumentor/reflection-docblock 3.1.1 通过此组件,库可以提供通过DocBlocks或以其他方式检索信息以支持注释的支持。
phpdocumentor/type-resolver 0.2.1
phpspec/prophecy v1.7.0 适用于PHP 5.3+的高度意见化的模拟框架
phpunit/php-code-coverage 4.0.7 提供收集、处理和渲染PHP代码覆盖率信息的功能的库。
phpunit/php-file-iterator 1.4.2 根据后缀列表过滤文件的FilterIterator实现。
phpunit/php-text-template 1.2.1 简单的模板引擎。
phpunit/php-timer 1.0.9 计时实用程序类。
phpunit/php-token-stream 1.4.11 PHP的tokenizer扩展的包装器。
phpunit/phpunit 5.7.17 PHP单元测试框架。
phpunit/phpunit-mock-objects 3.4.3 PHPUnit的模拟对象库
psr/cache 1.0.0 缓存库的通用接口
psr/log 1.0.2 日志库的通用接口
satooshi/php-coveralls v1.0.1 用于Coveralls API的PHP客户端库
sebastian/code-unit-reverse-lookup 1.0.1 查找代码行所属的函数或方法
sebastian/comparator 1.2.4 提供比较PHP值是否相等的函数
sebastian/diff 1.4.1 差异实现
sebastian/environment 2.0.0 提供处理HHVM/PHP环境的函数
sebastian/exporter 2.0.0 提供导出PHP变量以进行可视化的功能
sebastian/global-state 1.1.1 全局状态的快照
sebastian/object-enumerator 2.0.1 遍历数组结构和对象图以枚举所有引用的对象
sebastian/peek-and-poke dev-master a8295 访问对象非公共属性和方法的代理
sebastian/recursion-context 2.0.0 提供递归处理PHP变量的功能
sebastian/resource-operations 1.0.0 提供操作资源的相关PHP内置函数列表
sebastian/version 2.0.1 帮助管理Git托管PHP项目版本号的库
symfony/config v3.2.6 Symfony 配置组件
symfony/console v3.2.6 Symfony 控制台组件
symfony/debug v3.2.6 Symfony 调试组件
symfony/event-dispatcher v2.8.18 Symfony 事件调度器组件
symfony/filesystem v3.2.6 Symfony 文件系统组件
symfony/polyfill-mbstring v1.3.0 Symfony Mbstring 扩展的polyfill
symfony/stopwatch v3.2.6 Symfony Stopwatch 组件
symfony/yaml v3.2.6 Symfony Yaml 组件
twig/twig v2.3.0 Twig,PHP的灵活、快速且安全的模板语言
webmozart/assert 1.2.0 具有良好错误信息的断言,用于验证方法输入/输出。