diff options
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/README.md b/README.md new file mode 100644 index 0000000..629dd98 --- /dev/null +++ b/README.md @@ -0,0 +1,36 @@ +# Стеммер Портера для русского языка + +## Описание + +Данный стеммер является заменой расширению stem_russian_unicode. + +## Сравнение с расширением stem_russian_unicode + +*Плюсы:* + +1. не требовать внешних расширений для PHP. Стеммер написан целиком на PHP. +2. избавиться от проблем с юникодом. stem_russian_unicode зависит от SET_LOCALE и может при неверном значении портить строки с юникодом. +3. быть легко изменяемым под конкретные требования проекта. В случае расширения, при изменении логики работы его придётся пересобирать. + +*Минусы:* + +1. в силу того, что этот стеммер написан на PHP с использованием регулярных выражений, он должен проигрывать в скорости работы скомпилированному расширению, написанному на C. +2. Требует для своей работы PHP версии >=5.4 (возможно, добавлю поддержку версии 5.3) + +## Использование + + <?php + $text = '...'; + require __DIR__ . '/vendor/autoload.php'; + $stemmer = new \NXP\Stemmer(); + $stemmed = []; + foreach (explode(' ', $text) as $word) { + $stemmed[] = $stemmer->getWordBase($word); + } + $result = implode(' ', $stemmed); + +## Отличия от классического стеммера Портера + +Единственное отличие заключается в том, что в данной реализации буква «ё» является самостоятельной гласной, а не буквой «е» + +## Лицензия GPLv3 |