wyndow / fuzzywuzzy
Fuzzy string matching based on FuzzyWuzzy from Seatgeek
Installs: 1 527 255
Dependents: 6
Suggesters: 0
Security: 0
Stars: 70
Watchers: 8
Forks: 25
Open Issues: 7
Requires
- php: >=5.4
- phpspec/php-diff: ^1.0
Requires (Dev)
- phpspec/phpspec: ^2.2
This package is not auto-updated.
Last update: 2024-10-30 14:01:00 UTC
README
Fuzzy string matching for PHP, based on the python library of the same name.
Requirements
- PHP 5.4 or higher
Installation
Using Composer
composer require wyndow/fuzzywuzzy
Usage
use FuzzyWuzzy\Fuzz; use FuzzyWuzzy\Process; $fuzz = new Fuzz(); $process = new Process($fuzz); // $fuzz is optional here, and can be omitted.
Simple Ratio
>>> $fuzz->ratio('this is a test', 'this is a test!') => 96
Partial Ratio
>>> $fuzz->partialRatio('this is a test', 'this is a test!') => 100
Token Sort Ratio
>>> $fuzz->ratio('fuzzy wuzzy was a bear', 'wuzzy fuzzy was a bear') => 90 >>> $fuzz->tokenSortRatio('fuzzy wuzzy was a bear', 'wuzzy fuzzy was a bear') => 100
Token Set Ratio
>>> $fuzz->tokenSortRatio('fuzzy was a bear', 'fuzzy fuzzy was a bear') => 84 >>> $fuzz->tokenSetRatio('fuzzy was a bear', 'fuzzy fuzzy was a bear') => 100
Process
>>> $choices = ['Atlanta Falcons', 'New York Jets', 'New York Giants', 'Dallas Cowboys'] >>> $c = $process->extract('new york jets', $choices, null, null, 2) => FuzzyWuzzy\Collection {#205} >>> $c->toArray() => [ [ "New York Jets", 100, ], [ "New York Giants", 78, ], ] >>> $process->extractOne('cowboys', $choices) => [ "Dallas Cowboys", 90, ]
You can also pass additional parameters to extractOne
to make it use a specific scorer.
>>> $process->extractOne('cowbell', $choices, null, [$fuzz, 'ratio']) => [ "Dallas Cowboys", 38, ] >>> $process->extractOne('cowbell', $choices, null, [$fuzz, 'tokenSetRatio']) => [ "Dallas Cowboys", 57, ]
Caveats
Unicode strings may produce unexpected results. We intend to correct this in future versions.