Stemming
Описание и параметры
array stemming( string sText, string sLang="ru" );
Функция производит морфологический анализ текста и возвращает массив неизменных основ слов.
Сначала ищется и подключается анализатор для заданного языка (параметр sLang):
- Выполняется попытка подключения файла $_SERVER["DOCUMENT_ROOT"]."/bitrix/php_interface/".$sLang."/search/stemming.php" и если в нем определена функция "stemming_"$sLang, то на этом поиск завершается.
- Иначе выполняется попытка подключить анализатор из набора поставляемых с модулем поиска.
- Если и эта попытка провалилась, то будет использован анализатор по умолчанию Stemming_default.
Также ожидается, что в одном из файлов определена функция поиска стоп слов - "stemming_stop_".$sLang. Если это не так, то для определения списка стоп слов будет использована функция по умолчанию Stemming_stop_default.
Далее текст приводится к верхнему регистру и разбивается на отдельные слова. Разбивка происходит путем удаления всех символов не входящих в алфавит языка. Алфавит задается следующим образом:
- В расчет принимаются все символы возвращаемые функцией Stemming_letter_default;
- К ним добавляются символы возвращаемые функцией "stemming_letter_".$sLang (если таковая определена);
- А также символы входящие в соответствующую настройку модуля поиска.
Для каждого слова с помощью найденной ранее функции определяется неизменная основа. После этого, если слово не является стоп словом оно заносится в массив который будет возвращен в качестве результата.
Параметры функции
Параметр | Описание |
---|---|
sText | Содержит текст для морфологического анализа. |
sLang | Идентификатор языка текста. |
Возвращаемое значение
Функция возвращает ассоциативный массив ключами которого являются неизменные основы слов, а значениями частота их появления.
Смотрите также
Примеры использования
<? $ar = stemming("Зебры любят зебр, а не слонов!", "ru"); print_r($ar); //Будет напечатано: /* array( "ЗЕБР" => 2 "ЛЮБ" => 1 "СЛОН" => 1 ) */ ?>