Стемминг сопоставляет различные формы одного и того же слова с общей «основой» — например, английский стеммер сопоставляет connection , connections , connective , connected и connecting со словом connect . Таким образом, поиск слова connected также найдет документы, содержащие только другие формы.
Расширение для PHP, обеспечивающее привязку к реализации Snowball на языке C. Расширение напрямую предоставляет доступ к стеммерам Snowball для PHP с минимальными накладными расходами и разработано для современных сред выполнения PHP. Совместимо с версиями PHP ≥ 8.1.
Распространяется с помощью PIE , установщика расширений PHP нового поколения. Пользователи Windows могут загрузить предварительно скомпилированное расширение со страницы релизов.
pie install coral-media/php-snowball
Исходный код: https://github.com/coral-media/php-snowball
Минимальная структура в стиле PECL для расширения Snowball (libstemmer) с использованием встроенных исходных кодов.
Базовая стемминг (по умолчанию используется кодировка English + UTF_8):
<?php echo snowball_stem('running'); // run
Явный язык + кодировка:
<?php echo snowball_stem('corriendo', SNOWBALL_LANG_ES, SNOWBALL_ENCODING_UTF_8); // corr
Пакетная обработка массивов (эффективнее, чем циклы в PHP):
Исходный код библиотеки libstemmer, предоставляемой поставщиком, находится в папке lib/libstemmer.