Документация для разработчиков

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
)
*/
?>


Пользовательские комментарии

Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.

Для этого нужно всего лишь авторизоваться на сайте

Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
© «Битрикс», 2001-2020, «1С-Битрикс», 2020
Наверх