aboutsummaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'README.md')
-rw-r--r--README.md36
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