Текстовая релевантность

Нашел на просторах интернета некие куски алгоритма, которые работают в поисковых системах.
Попробуем частично создать пару функций и поэкспериментируем в бою.

Название фактора Краткое описание Пример кода
TR Текстовая релевантность (maxfreq – частота самого частого слова, которая имеет смысл длины документа).
PrBonus Priority bonus, приоритет 7 – текстовый приоритет. Фактор бинарный, имеет значение 0 для всех однословных запросов, и значение 1 практически для всех двух и более словных, кроме очень маленького количества ответов, для которых нет ни одной ссылки, прошедшей кворум, и текст тоже не прошел кворум.
TRp1 Приоритет strict для TR – текстовый приоритет – есть все слова запроса где-то в документе (при этом они проходят контекстные ограничения запроса, например, оба слова д.б. в одном предложении).
TRp2 Приоритет phrase для TR – текстовый приоритет – есть все слова запроса подряд в документе.
TRtitle Наличие точной фразы (текста запроса) в заголовке (если точнее, в первом предложении документа). Контекстные ограничения и стоп слова учитываются в точности как в TRp2, т.е. factor[8] minors factor[5]
TRhr Встретился участок, прошедший кворум, в котором все словопозиции обозначены как имеющие релевантность BEST_RELEV (заголовок или meta keywords).
TRhitw Hitweigt – вариант текстовой релевантности, в которой веса всех хитов считаются равными (т.е. не учитывают надбавки за title и за близость слов). При этом соответствующие хиты должны пройти ограничения синтаксического колдунщика, т.е. можно считать, что фактор TRhitw равен 0 тогда и только тогда, когда SoftAndOk равен 0
TRref Фактор про число refines. В языке запросов есть фича user refines («слово, перед которым стоит знак процентика»).
TRboost Число, на которое умножаются некоторые линковые факторы (именно, факторы номер 6, 7, 47, 66), если текстовая релевантность 0, и ссылок мало
TRLRlemma В текстовой релевантности произошло совпадение леммы.
TRUnmapped TR деленный на куб количества слов в запросе и преобразованный стандартным remapTR.
TextBM25 Простой BM25 по тексту.
TxtBm25Ex Простой BM25 по точной форме.
TxtBm25Sy Простой BM25 c учетом синонимов.
TxtPair Простой BM25 по парам слов – берем все пары слов запроса и считаем число их вхождений в текст документа. В качества веса пары используем сумму весов слов. Комм Не работает, если в запросе есть стоп-слово
TxtPair_W1 Простой BM25 по парам слов – берем все пары слов запроса и считаем число их вхождений в текст документа. Вес =1. Комм Не работает, если в запросе есть стоп-слово
TxtPairEx наличие пар слов по точной форме
TxtPairSy наличие пар слов c учетом синонимов (>=TxtPair)
TxtBreak BM25 от количества предложений в документе, в которых встречается.
TxtHead BM25 по словам только в заголовке.
TxtHeadEx наличие слов в заголовке по точной форме
TxtHeadSy наличие слов в заголовке c учетом синонимов
TxtHiRel BM25 по словам только с high rel-битиками («значимым», с выделением (<b> итп)).
TxtHiRelEx BM25 по точной форме
TxtHiRelSy BM25 c учетом синонимов
HasNoTR У документа нет TR.
TxtBreakEx количество предложений, в которых встречается много слов по точной форме
TxtBreakSy количество предложений, в которых встречается много слов c учетом синонимов
TextFeatures Качество текста. Считается по довольно сложной формуле
HasNoAllWordsTRSy в документе нет всех слов запроса (с точностью до синонима)
NumWordsTRSy процент слов запроса в документе (с точностью до синонима)
HasAllWordsTRSy в документе есть все слова запроса (с точностью до синонима)
Has2ExactQueryParts Запрос полностью покрывается двумя точными группами, состоящими из exact match слов запроса подряд
HasLevensht1QueryFragment Cуществует группа, состоящая из exact match слов запроса, покрывающая запрос (возможно, с пропуском, добавлением или заменой слова)
LargestSyInexactGroup Доля запроса, покрываемая самой длинной группой, состоящей из любых хитов (в т.ч. словоформ и синонимов). Возможно, с пропуском, добавлением или заменой слова
NumLatinLetters число латинских букв в тексте (не считая разметки), загнанное в [0,1] формулой n/(n+100)
QSegmentsBreaks Сегменты запроса – это части запроса, которые сами по себе являются частотными запросами. Фактор показывает, насколько сегменты бьются в тексте. значение 0 – все слова встречаются только в рамках обозначенных сегментов, 1 — все вхождения разбивают сегменты
QSegmentsBM25 BM25, где в качестве «слов» выступают выделенные сегменты запроса
QSegmentsWeight «Вес» сегментов запроса в тексте
TextMaxForms Максимальное число форм по всем словам запроса – max по всем словам запроса числа_форм_для_слова/64
TextWeightedForms Взвешенная по весам слов сумма числа форм – сумма по всем словам запроса числа_форм_для_слова/64*вес_слова; remap вида x/(1 + x).
TextForms Невзвешенная сумма числа форм – сумма по всем словам запроса числа_форм_для_слова/64/число_слов_запроса
HasTextPos У документа есть текстовая релевантность
SWBM25 Хитрый BM25 в скользящем окне. Размер окна задается в предложениях. Используются «джокеры» для заголовков и начала документа. Учитывается морфологическая близость и структура текста. Вес окна затухает с удалением от начала документа.
FieldLM Униграммная языковая модель. Моделируется языковая по документу, сглаживается общеязыковой моделью. При построении модели по документу используется информацию о том, в каком поле документа встретилось слово запроса (Title, head или plain text)
YmwFull Размер минимального куска текста, включающего все встречающиеся в документе слова запроса. Сейчас не используется.
YmwFull2 Исправленный YmwFull. Отличается от предыдущей версии только поведением на 2хсловных запросах.
Bclm Фактор имени Buettcher, Clarke и Lushman (модифицированный)
TitleTrigramsQuery Вычисляет покрытие запроса буквенными триграммами заголовка документа
TitleTrigramsTitle Вычисляет покрытие заголовка буквенными триграммами заголовка документа
QueryWordSequencesTR Считает сумму вхождений следующего вида: последовательность слов запроса длиной больше двух, встретившихся в одном предложении; нормировано на длину документа.
MPSA Оценивает минимальное расстояние между парами слов запроса с учетом удаленности пары от начала документа (Minimal Pair Size with Attenuation). Под парами понимаются все последовательные биграммы слов запроса. Таким образом, количество пар равно количеству слов в запросе, уменьшенному на 1. Соответственно, фактор имеет смысл для запросов, состоящих более чем из одного слова.
BCLm2 Отличается от BCLm тем, что веса всех слов считаются одинаковыми.
AbsolutePLM Текстовая релевантность на основе языковой модели, учитывающая абсолютную позицию. Идем по тексту с окошком 20 слов, строим по каждому окошку языковую модель (то есть распределение вероятностей на словах русского языка) и вычисляем вероятность порождения запроса. За удаление от начала документа штрафуем модель.
BCLmLite Модификация фактора Bclm2, облегченная для использования в фастранке. Основное отличие состоит в том, что в BclmLite не используются абсолютные смещения слов относительно начала документа. Вместо этого фактор работает с обычными позициями вида <Номер_предложения, Позиция_в_предложении>. При этом близость между словами учитывается только внутри предложения.
DBM25 BM25, в котором вес слова машинноподобран
FiltrationSegments Доля сегментов запроса, присутствующая в тексте
QueryWordCohesionTR Фактор оценивает как слова запроса группируются друг с другом в тексте документа без учета их порядка.
DBM25_2 Вариация на тему DBM25
Tocm Фактор оценивает отличия позиций слов в заголовке от позий слов в запросе
DBM30Smerch Вариация на тему DBM25
OqBm25Str Bm25 по запросному индексу для владельцев
OqBm25Lem Bm25 по запросному индексу для владельцев
OqBm25Syn Bm25 по запросному индексу для владельцев
OqBclmWeighted BCLM по запросному индексу для владельцев  
OqBclmPlain BCLM по запросному индексу для владельцев  
SmallWindow Максимальная сумма вес слов запроса в окне в 50 слов
SynSetTitle1 Триграммный матчинг заголовка страницы с синсетами запроса.
SynSetTitle2 Триграммный матчинг заголовка страницы с синсетами запроса, другая версия.
BOCM Оценивает соответствие позиций слов в предложениях документа позициям слов в запросе.  
FioMatch В документе присутствует ФИО из запроса.  
BclmMax Близость слов запроса к самому тяжелому слову.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *