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

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-2024, «1С-Битрикс», 2024