2017 © Pedro Peláez
 

library similarity

Calculate the similarity between strings and numbers working in a different way from a diff tool

image

gpupo/similarity

Calculate the similarity between strings and numbers working in a different way from a diff tool

  • Friday, March 24, 2017
  • by gpupo
  • Repository
  • 1 Watchers
  • 5 Stars
  • 3,058 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 1 Forks
  • 0 Open issues
  • 5 Versions
  • 7 % Grown

The README.md

Similarity

Calculate the similarity between strings or numbers, (*1)

  • Supports Stopwords
  • Working in a different way from a diff tool

Paypal Donations, (*2)

Requisitos para uso

Este componente não é uma aplicação Stand Alone e seu objetivo é ser utilizado como biblioteca. Sua implantação deve ser feita por desenvolvedores experientes., (*3)

Isto não é um Plugin!, (*4)

As opções que funcionam no modo de comando apenas servem para depuração em modo de desenvolvimento., (*5)

A documentação mais importante está nos testes unitários. Se você não consegue ler os testes unitários, eu recomendo que não utilize esta biblioteca., (*6)

Direitos autorais e de licença

Este componente está sob a licença MIT, (*7)

Para a informação dos direitos autorais e de licença você deve ler o arquivo de licença que é distribuído com este código-fonte., (*8)

Resumo da licença

Exigido:, (*9)

  • Aviso de licença e direitos autorais

Permitido:, (*10)

  • Uso comercial
  • Modificação
  • Distribuição
  • Sublicenciamento

Proibido:, (*11)

  • Responsabilidade Assegurada

Indicadores de qualidade

Build Status Scrutinizer Code Quality Code Climate Test Coverage, (*12)


Agradecimentos

Usage

Example 1, with stopwords:


$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

Example 2, chain method calls:


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

Example 3, numbers:


$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

Install

The recommended way to install is through composer., (*15)

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

Tests

All tests are run automatically at each commit, on OSx and Linux environment in PHP versions 5.3, 5.4, 5.5, 5.6, 7.0 and hhvm using Travis., (*16)

To run localy the test suite:, (*17)

$ phpunit

See the testdox output, (*18)

$ phpunit --testdox

Propriedades dos objetos

Similarity\Input\Decorator

  • [x] Clean characters
  • [x] Clean numbers

Similarity\Input\InputNumber

  • [x] Clean ignored characters

Similarity\Input\InputString

  • [x] Clean ignored characters
  • [x] Clean stopwords

Similarity\SimilarNumber

  • [x] Success to find similarity
  • [x] Success to find proximity
  • [x] Success to find proximity with distant numbers

Similarity\SimilarText

  • [x] Success to find percentage similarity
  • [x] Success to find percentage with texts with no similarity
  • [x] Success to find the levenshtein distance

Similarity\Similarity

  • [x] Success on assert similarities with strings
  • [x] Success in asserting that the phrase is different
  • [x] Success on assert similarities with numbers
  • [x] Success on assert similarities with approximate numbers
  • [x] Success on assert with different numbers
  • [x] Ability to increase the accuracy
  • [x] Ability to decrease the accuracy
  • [x] Ability to inject stopwords

Lista de dependências (libraries)

Name Version Description
codeclimate/php-test-reporter v0.4.4 PHP client for reporting test coverage to Code Climate
doctrine/instantiator 1.0.5 A small, lightweight utility to instantiate objects in PHP without invoking their constructors
gpupo/cache 1.3.0 Caching library that implements PSR-6
gpupo/common 1.7.6 Common Objects
gpupo/common-sdk 2.2.15 Componente de uso comum entre SDKs para integração a partir de aplicações PHP com Restful webservices
guzzle/guzzle v3.9.3 PHP HTTP client. This library is deprecated in favor of https://packagist.org/packages/guzzlehttp/guzzle
monolog/monolog 1.22.1 Sends your logs to files, sockets, inboxes, databases and various web services
myclabs/deep-copy 1.6.0 Create deep copies (clones) of your objects
padraic/humbug_get_contents 1.0.4 Secure wrapper for accessing HTTPS resources with file_get_contents for PHP 5.3+
padraic/phar-updater 1.0.3 A thing to make PHAR self-updating easy and secure.
phpdocumentor/reflection-common 1.0 Common reflection classes used by phpdocumentor to reflect the code structure
phpdocumentor/reflection-docblock 3.1.1 With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.
phpdocumentor/type-resolver 0.2.1
phpspec/prophecy v1.7.0 Highly opinionated mocking framework for PHP 5.3+
phpunit/php-code-coverage 4.0.7 Library that provides collection, processing, and rendering functionality for PHP code coverage information.
phpunit/php-file-iterator 1.4.2 FilterIterator implementation that filters files based on a list of suffixes.
phpunit/php-text-template 1.2.1 Simple template engine.
phpunit/php-timer 1.0.9 Utility class for timing
phpunit/php-token-stream 1.4.11 Wrapper around PHP's tokenizer extension.
phpunit/phpunit 5.7.17 The PHP Unit Testing framework.
phpunit/phpunit-mock-objects 3.4.3 Mock Object library for PHPUnit
psr/cache 1.0.0 Common interface for caching libraries
psr/log 1.0.2 Common interface for logging libraries
satooshi/php-coveralls v1.0.1 PHP client library for Coveralls API
sebastian/code-unit-reverse-lookup 1.0.1 Looks up which function or method a line of code belongs to
sebastian/comparator 1.2.4 Provides the functionality to compare PHP values for equality
sebastian/diff 1.4.1 Diff implementation
sebastian/environment 2.0.0 Provides functionality to handle HHVM/PHP environments
sebastian/exporter 2.0.0 Provides the functionality to export PHP variables for visualization
sebastian/global-state 1.1.1 Snapshotting of global state
sebastian/object-enumerator 2.0.1 Traverses array structures and object graphs to enumerate all referenced objects
sebastian/peek-and-poke dev-master a8295 Proxy for accessing non-public attributes and methods of an object
sebastian/recursion-context 2.0.0 Provides functionality to recursively process PHP variables
sebastian/resource-operations 1.0.0 Provides a list of PHP built-in functions that operate on resources
sebastian/version 2.0.1 Library that helps with managing the version number of Git-hosted PHP projects
symfony/config v3.2.6 Symfony Config Component
symfony/console v3.2.6 Symfony Console Component
symfony/debug v3.2.6 Symfony Debug Component
symfony/event-dispatcher v2.8.18 Symfony EventDispatcher Component
symfony/filesystem v3.2.6 Symfony Filesystem Component
symfony/polyfill-mbstring v1.3.0 Symfony polyfill for the Mbstring extension
symfony/stopwatch v3.2.6 Symfony Stopwatch Component
symfony/yaml v3.2.6 Symfony Yaml Component
twig/twig v2.3.0 Twig, the flexible, fast, and secure template language for PHP
webmozart/assert 1.2.0 Assertions to validate method input/output with nice error messages.

The Versions

24/03 2017

dev-master

9999999-dev https://opensource.gpupo.com/similarity/

Calculate the similarity between strings and numbers working in a different way from a diff tool

  Sources   Download

MIT

The Requires

  • php >=5.3.2

 

The Development Requires

by Gilmar Pupo

distance diff string compare levenshtein similarity

13/08 2015

1.2

1.2.0.0 http://www.g1mr.com/similarity/

Calculate the similarity between strings and numbers working in a different way from a diff tool

  Sources   Download

MIT

The Requires

  • php >=5.3.2

 

The Development Requires

by Gilmar Pupo

distance diff string compare levenshtein similarity

12/06 2014

1.0.0

1.0.0.0

Calculate the similarity between strings and numbers working in a different way from a diff tool

  Sources   Download

MIT

The Requires

  • php >=5.3.2

 

The Development Requires

distance diff string compare levenshtein similarity

12/06 2014

1.1

1.1.0.0

Calculate the similarity between strings and numbers working in a different way from a diff tool

  Sources   Download

MIT

The Requires

  • php >=5.3.2

 

The Development Requires

distance diff string compare levenshtein similarity

03/06 2014

v1.0.0-alpha

1.0.0.0-alpha

Calculate the similarity between strings

  Sources   Download

MIT

The Requires

 

levenshtein similarity