Stemmer/README.md
2013-11-27 04:06:49 +04:00

37 lines
1.9 KiB
Markdown
Raw 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. быть легко изменяемым под конкретные требования проекта. В случае расширения, при изменении логики работы его придётся пересобирать.
*Минусы:*
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