Stemmer/README.md
Alexander Kiryukhin fb502e2f60 Update README.md
2017-04-14 00:25:59 +03:00

42 lines
2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Стеммер Портера для русского языка
## Описание
Данный стеммер является заменой расширению stem_russian_unicode.
## Сравнение с расширением stem_russian_unicode
*Плюсы:*
1. Не требует внешних расширений для PHP. Стеммер написан целиком на PHP.
2. Нет проблем с юникодом. stem_russian_unicode зависит от SET_LOCALE и может при неверном значении портить строки с юникодом.
3. Легко изменять под конкретные требования проекта. В случае расширения, при изменении логики работы его придётся пересобирать.
4. Требует для своей работы PHP версии >=5.3 (спасибо, usernam3 за pull-request)
*Минусы:*
В силу того, что этот стеммер написан на PHP с использованием регулярных выражений, он должен проигрывать в скорости работы скомпилированному расширению, написанному на C.
## Установка
php composer.phar require nxp/russian-porter-stemmer
## Использование
<?php
$text = '...';
require __DIR__ . '/vendor/autoload.php';
$stemmer = new \NXP\Stemmer();
$stemmed = [];
foreach (explode(' ', $text) as $word) {
$stemmed[] = $stemmer->getWordBase($word);
}
$result = implode(' ', $stemmed);
## Отличия от классического стеммера Портера
Единственное отличие заключается в том, что в данной реализации буква «ё» является самостоятельной гласной, а не буквой «е»
## Лицензия MIT