markfullmer / porter2
Stem words using the English Porter 2 algorithm
This package's canonical repository appears to be gone and the package has been frozen as a result.
Installs: 25 219
Dependents: 1
Suggesters: 0
Security: 0
Stars: 16
Watchers: 2
Forks: 7
Open Issues: 4
Requires (Dev)
- phpunit/phpunit: ~4
This package is auto-updated.
Last update: 2024-09-04 09:01:37 UTC
README
A PHP library for stemming words using the English Porter 2 algorithm.
Background
A stemmer takes a given word and follows a set of rules to reduce this word to search-index-usable stem (as opposed to the actual word root). For example, aggravate, aggravated, and aggravates all reduce to "aggrav," thus creating a commonality between those words.
Martin Porter's English (Porter 2) Algorithm improves on the original Porter stemmer as described here.
Basic Usage
The included /demo/index.php
file contains a conversion form demonstration.
Make your code aware of the Porter2
class via your favorite method (e.g.,
use
or require
)
Then pass a string of text into the class:
$text = Porter2::stem('consistently'); echo $text; // consist $text = Porter2::stem('consisting'); echo $text; // consist $text = Porter2::stem('consistency'); echo $text; // consist
Stemmer Resources
Tests
A verification list of 29,000 words and their expected stems can be run (after
composer install
via phpunit
).