Дмитрий Агафонов "Поиск фраз в документах Рекламной...
DESCRIPTION
Дмитрий Агафонов "Поиск фраз в документах Рекламной Сети Яндекса" Я.Субботник в МосквеTRANSCRIPT
![Page 1: Дмитрий Агафонов "Поиск фраз в документах Рекламной Сети Яндекса"](https://reader034.vdocuments.net/reader034/viewer/2022052316/557f055ed8b42ac0728b4b01/html5/thumbnails/1.jpg)
Поиск фраз в документах РСЯДмитрий Агафонов
Я.Субботник, Москва, 18 апреля 2009 года
![Page 2: Дмитрий Агафонов "Поиск фраз в документах Рекламной Сети Яндекса"](https://reader034.vdocuments.net/reader034/viewer/2022052316/557f055ed8b42ac0728b4b01/html5/thumbnails/2.jpg)
2
Яндекс – много разных поисков.
Для пользователей.
А ещё есть внутренние поиски.
Их тоже много.
Сегодня – про один из них.
Подробно!
![Page 3: Дмитрий Агафонов "Поиск фраз в документах Рекламной Сети Яндекса"](https://reader034.vdocuments.net/reader034/viewer/2022052316/557f055ed8b42ac0728b4b01/html5/thumbnails/3.jpg)
3
Наш план
● О чём речь● Кому это интересно● Много букв (картинки будут)● Ваши вопросы● Мои ответы
![Page 4: Дмитрий Агафонов "Поиск фраз в документах Рекламной Сети Яндекса"](https://reader034.vdocuments.net/reader034/viewer/2022052316/557f055ed8b42ac0728b4b01/html5/thumbnails/4.jpg)
4
О чём
Контекстная реклама: клиенты и площадки.
Клиенты дают рекламу.
Площадки дают место.
От клиентов – рекламные материалы. Много.
От площадок – документы в Интернете. Очень много.
Надо связать их эффективно. И быстро.
![Page 5: Дмитрий Агафонов "Поиск фраз в документах Рекламной Сети Яндекса"](https://reader034.vdocuments.net/reader034/viewer/2022052316/557f055ed8b42ac0728b4b01/html5/thumbnails/5.jpg)
5
О чём
Процесс привязки большой и сложный.
Одна из задач – найти фразу в документе и определить её релевантность.
Несколько миллионов фраз. Надо найти все!
Время на размышление для одного документа: 20ms.
Как это сделать?
![Page 6: Дмитрий Агафонов "Поиск фраз в документах Рекламной Сети Яндекса"](https://reader034.vdocuments.net/reader034/viewer/2022052316/557f055ed8b42ac0728b4b01/html5/thumbnails/6.jpg)
6
О чём
У нас это решение нашей конкретной задачи.
Общие применения алгоритма:
● Поиск коллекции наборов объектов во множестве объектов
● Определение релевантности данных заданным признакам
● Классификация
● Обратный поиск
![Page 7: Дмитрий Агафонов "Поиск фраз в документах Рекламной Сети Яндекса"](https://reader034.vdocuments.net/reader034/viewer/2022052316/557f055ed8b42ac0728b4b01/html5/thumbnails/7.jpg)
7
Кому интересно● Разработчикам
● Менеджерам
● Алгоритмистам
● И мне тоже
Тем, кто решал подобную задачу или будет решать.
![Page 8: Дмитрий Агафонов "Поиск фраз в документах Рекламной Сети Яндекса"](https://reader034.vdocuments.net/reader034/viewer/2022052316/557f055ed8b42ac0728b4b01/html5/thumbnails/8.jpg)
8
Поехали!
![Page 9: Дмитрий Агафонов "Поиск фраз в документах Рекламной Сети Яндекса"](https://reader034.vdocuments.net/reader034/viewer/2022052316/557f055ed8b42ac0728b4b01/html5/thumbnails/9.jpg)
9
Что в пути
● Задача● Решение
– Собрать индекс из фраз
– Обработать документы
![Page 10: Дмитрий Агафонов "Поиск фраз в документах Рекламной Сети Яндекса"](https://reader034.vdocuments.net/reader034/viewer/2022052316/557f055ed8b42ac0728b4b01/html5/thumbnails/10.jpg)
10
Задача
![Page 11: Дмитрий Агафонов "Поиск фраз в документах Рекламной Сети Яндекса"](https://reader034.vdocuments.net/reader034/viewer/2022052316/557f055ed8b42ac0728b4b01/html5/thumbnails/11.jpg)
11
Вроде всё просто● Есть много фраз
● Есть один документ
Найти фразы в документе.
Посчитать их релевантность.
![Page 12: Дмитрий Агафонов "Поиск фраз в документах Рекламной Сети Яндекса"](https://reader034.vdocuments.net/reader034/viewer/2022052316/557f055ed8b42ac0728b4b01/html5/thumbnails/12.jpg)
12
На входе ⇐
Коллекция фраз. Фраза это:
– Множество слов
– Дополнительные условия
Документ это:
– Большое множество слов● Позиция слова
● Вес слова
– Дополнительные условия
![Page 13: Дмитрий Агафонов "Поиск фраз в документах Рекламной Сети Яндекса"](https://reader034.vdocuments.net/reader034/viewer/2022052316/557f055ed8b42ac0728b4b01/html5/thumbnails/13.jpg)
13
На выходе ⇒
Найденные фразы + релевантность каждой фразы.
Фраза найдена если:
– Документ содержит все слова фразы
– Слова фразы находятся недалеко друг от друга
– Дополнительные условия фраз и документа соответствуют
Порядок слов не важен.
![Page 14: Дмитрий Агафонов "Поиск фраз в документах Рекламной Сети Яндекса"](https://reader034.vdocuments.net/reader034/viewer/2022052316/557f055ed8b42ac0728b4b01/html5/thumbnails/14.jpg)
14
Пример на буквах
Это две фразы:
● a c h
● d f p u
Это документ: a b c d e f g h i j k l m n o p q r s t u v w x y z
Нашли.
Но фраза d f p u слишком размазана по документу.
![Page 15: Дмитрий Агафонов "Поиск фраз в документах Рекламной Сети Яндекса"](https://reader034.vdocuments.net/reader034/viewer/2022052316/557f055ed8b42ac0728b4b01/html5/thumbnails/15.jpg)
15
Решение
![Page 16: Дмитрий Агафонов "Поиск фраз в документах Рекламной Сети Яндекса"](https://reader034.vdocuments.net/reader034/viewer/2022052316/557f055ed8b42ac0728b4b01/html5/thumbnails/16.jpg)
16
Две части решения
● Собрать фразы в индекс● Обработать документ
А сначала пара особенностей.
![Page 17: Дмитрий Агафонов "Поиск фраз в документах Рекламной Сети Яндекса"](https://reader034.vdocuments.net/reader034/viewer/2022052316/557f055ed8b42ac0728b4b01/html5/thumbnails/17.jpg)
17
«Людям» = «человеку»
Посимвольно «людям» ≠ «человеку».
Есть леммер!
«людям» (люди, человек)
«человеку» (человек)
Набор лемм слова – каноническая форма слова.
Или далее просто «слово».
У слова несколько формОсновная – ЛеммаИногда не одна
неизвестный японский автор
![Page 18: Дмитрий Агафонов "Поиск фраз в документах Рекламной Сети Яндекса"](https://reader034.vdocuments.net/reader034/viewer/2022052316/557f055ed8b42ac0728b4b01/html5/thumbnails/18.jpg)
18
Два приёма● Сделать всё числами
– Слова
– Леммы
– Фразы
– Всё остальное
● Все числа упорядочить
![Page 19: Дмитрий Агафонов "Поиск фраз в документах Рекламной Сети Яндекса"](https://reader034.vdocuments.net/reader034/viewer/2022052316/557f055ed8b42ac0728b4b01/html5/thumbnails/19.jpg)
19
Сборка индекса
![Page 20: Дмитрий Агафонов "Поиск фраз в документах Рекламной Сети Яндекса"](https://reader034.vdocuments.net/reader034/viewer/2022052316/557f055ed8b42ac0728b4b01/html5/thumbnails/20.jpg)
20
На входе ⇐
Коллекция фраз. Фраза это:
– Множество слов
Документ это:
– Большое множество слов● Позиция слова
● Вес слова
![Page 21: Дмитрий Агафонов "Поиск фраз в документах Рекламной Сети Яндекса"](https://reader034.vdocuments.net/reader034/viewer/2022052316/557f055ed8b42ac0728b4b01/html5/thumbnails/21.jpg)
21
Этапы сборки индекса● Подготовить фразы
● Построить индекс
Всего 11 простых действий :-)
![Page 22: Дмитрий Агафонов "Поиск фраз в документах Рекламной Сети Яндекса"](https://reader034.vdocuments.net/reader034/viewer/2022052316/557f055ed8b42ac0728b4b01/html5/thumbnails/22.jpg)
22
Фразы● Берём слова фраз
«c a b»
«b a»
«a c»
«b e d»
![Page 23: Дмитрий Агафонов "Поиск фраз в документах Рекламной Сети Яндекса"](https://reader034.vdocuments.net/reader034/viewer/2022052316/557f055ed8b42ac0728b4b01/html5/thumbnails/23.jpg)
23
Фразы● Берём слова фраз
● Считаем частоты слов
«c a b»
«b a»
«a c»
«b e d»
a – 3
b – 3
c – 2
d – 1
e – 1
![Page 24: Дмитрий Агафонов "Поиск фраз в документах Рекламной Сети Яндекса"](https://reader034.vdocuments.net/reader034/viewer/2022052316/557f055ed8b42ac0728b4b01/html5/thumbnails/24.jpg)
24
Фразы● Берём слова фраз
● Считаем частоты слов
● Переставляем слова во фразах по убыванию частоты
«c a b»
«b a»
«a c»
«b e d»
a – 3
b – 3
c – 2
d – 1
e – 1
«a b c»
«a b»
«a c»
«b d e»
![Page 25: Дмитрий Агафонов "Поиск фраз в документах Рекламной Сети Яндекса"](https://reader034.vdocuments.net/reader034/viewer/2022052316/557f055ed8b42ac0728b4b01/html5/thumbnails/25.jpg)
25
Индекс
«a b c»
«a b»
«a c»
«b d e»
a
b
c
d e
c
b
Строим дерево фраз
![Page 26: Дмитрий Агафонов "Поиск фраз в документах Рекламной Сети Яндекса"](https://reader034.vdocuments.net/reader034/viewer/2022052316/557f055ed8b42ac0728b4b01/html5/thumbnails/26.jpg)
26
Индекс
i. «a b c»
ii. «a b»
iii. «a c»
iv. «b d e»
a
b
c
d e
c
b
ii i
iii
iv
Находим терминальные узлы
![Page 27: Дмитрий Агафонов "Поиск фраз в документах Рекламной Сети Яндекса"](https://reader034.vdocuments.net/reader034/viewer/2022052316/557f055ed8b42ac0728b4b01/html5/thumbnails/27.jpg)
27
Индекс
i. «a b c»
ii. «a b»
iii. «a c»
iv. «b d e»
корневой терминальный остальные
a
b
c
d e
c
b
ii i
iii
iv
Красим узлы по типам
![Page 28: Дмитрий Агафонов "Поиск фраз в документах Рекламной Сети Яндекса"](https://reader034.vdocuments.net/reader034/viewer/2022052316/557f055ed8b42ac0728b4b01/html5/thumbnails/28.jpg)
28
Индекс
i. «a b c»
ii. «a b»
iii. «a c»
iv. «b d e»
корневой терминальный остальные
a
b
c
d e
c
b
ii i
ii
iv
Проводим вертикальные уровни
i
![Page 29: Дмитрий Агафонов "Поиск фраз в документах Рекламной Сети Яндекса"](https://reader034.vdocuments.net/reader034/viewer/2022052316/557f055ed8b42ac0728b4b01/html5/thumbnails/29.jpg)
29
Индекс
i. «a b c»
ii. «a b»
iii. «a c»
iv. «b d e»
корневой терминальный остальные
0
2
3
4
5
6
7
a
b
c
d e
c
b
ii i
iii
iv
1
Нумеруем узлы слева направо и сверху вниз
![Page 30: Дмитрий Агафонов "Поиск фраз в документах Рекламной Сети Яндекса"](https://reader034.vdocuments.net/reader034/viewer/2022052316/557f055ed8b42ac0728b4b01/html5/thumbnails/30.jpg)
30
Индекс
i. «a b c»
ii. «a b»
iii. «a c»
iv. «b d e»
корневой терминальный остальные
01-2
25
36
4
57
6
7
a
b
c
d e
c
b
ii i
iii
iv
13-4
Запоминаем диапазоны номеров дочерних узлов
![Page 31: Дмитрий Агафонов "Поиск фраз в документах Рекламной Сети Яндекса"](https://reader034.vdocuments.net/reader034/viewer/2022052316/557f055ed8b42ac0728b4b01/html5/thumbnails/31.jpg)
31
Индекс
i. «a b c»
ii. «a b»
iii. «a c»
iv. «b d e»
корневой терминальный остальные
01-2
25
36
4
57
6
7
a
b
c
d e
c
b
ii i
iii
iv
13-4
Делаем таблицуСлово → Узлы дерева
a 1b 2, 3c 4, 6d 5e 7
![Page 32: Дмитрий Агафонов "Поиск фраз в документах Рекламной Сети Яндекса"](https://reader034.vdocuments.net/reader034/viewer/2022052316/557f055ed8b42ac0728b4b01/html5/thumbnails/32.jpg)
32
Индекс
i. «a b c»
ii. «a b»
iii. «a c»
iv. «b d e»
01-2
25
36
4
57
6
7
a
b
c
d e
c
b
ii i
iii
iv
13-4
Делаем таблицуЛемма → Слова
a 1b 2, 3c 4, 6d 5e 7
α a, bβ eγ c, dδ bε a, c
«людям» (люди, человек)
«человеку» (человек)
люди → (люди,человек)
человек → (человек), (люди,человек)
![Page 33: Дмитрий Агафонов "Поиск фраз в документах Рекламной Сети Яндекса"](https://reader034.vdocuments.net/reader034/viewer/2022052316/557f055ed8b42ac0728b4b01/html5/thumbnails/33.jpg)
33
Индекс готов!
![Page 34: Дмитрий Агафонов "Поиск фраз в документах Рекламной Сети Яндекса"](https://reader034.vdocuments.net/reader034/viewer/2022052316/557f055ed8b42ac0728b4b01/html5/thumbnails/34.jpg)
34
Теперь документ
![Page 35: Дмитрий Агафонов "Поиск фраз в документах Рекламной Сети Яндекса"](https://reader034.vdocuments.net/reader034/viewer/2022052316/557f055ed8b42ac0728b4b01/html5/thumbnails/35.jpg)
35
Что делать с документом● Подготовить документ
● Найти терминальные узлы в индексе
● Проверить расстояния между словами фраз
● Посчитать релевантность
![Page 36: Дмитрий Агафонов "Поиск фраз в документах Рекламной Сети Яндекса"](https://reader034.vdocuments.net/reader034/viewer/2022052316/557f055ed8b42ac0728b4b01/html5/thumbnails/36.jpg)
36
Есть кто живой? :-)
![Page 37: Дмитрий Агафонов "Поиск фраз в документах Рекламной Сети Яндекса"](https://reader034.vdocuments.net/reader034/viewer/2022052316/557f055ed8b42ac0728b4b01/html5/thumbnails/37.jpg)
37
Что делать с документом● Подготовить документ
● Найти терминальные узлы в индексе
● Проверить расстояния между словами фраз
● Посчитать релевантность
![Page 38: Дмитрий Агафонов "Поиск фраз в документах Рекламной Сети Яндекса"](https://reader034.vdocuments.net/reader034/viewer/2022052316/557f055ed8b42ac0728b4b01/html5/thumbnails/38.jpg)
38
Готовим документ
![Page 39: Дмитрий Агафонов "Поиск фраз в документах Рекламной Сети Яндекса"](https://reader034.vdocuments.net/reader034/viewer/2022052316/557f055ed8b42ac0728b4b01/html5/thumbnails/39.jpg)
39
На входе ⇐
Коллекция фраз. Фраза это:
– Множество слов
Документ это:
– Большое множество слов● Позиция слова
● Вес слова
![Page 40: Дмитрий Агафонов "Поиск фраз в документах Рекламной Сети Яндекса"](https://reader034.vdocuments.net/reader034/viewer/2022052316/557f055ed8b42ac0728b4b01/html5/thumbnails/40.jpg)
40
Готовим вообще
Надо чтобы «людям» из документа = «человеку» в индексе. Поэтому не подходит поиск в индексе по словам из документа. Надо искать через леммы.
Преобразуем документ в таблицу:
Лемма → Список словопозиций с весами
Оригинал документа больше не нужен.
«людям» (люди, человек)
«человеку» (человек)
![Page 41: Дмитрий Агафонов "Поиск фраз в документах Рекламной Сети Яндекса"](https://reader034.vdocuments.net/reader034/viewer/2022052316/557f055ed8b42ac0728b4b01/html5/thumbnails/41.jpg)
41
Готовим для индекса
В узлах индекса слова, а не леммы.
Преобразуем документ в другую таблицу:
Слово в индексе → Словопозиции и веса
Мы перевели документ в пространство слов индекса. Теперь всё найдём!
Первая таблица Лемма → Список словопозиций с весами может понадобиться для другого индекса.
α a, bβ eγ c, dδ bε a, c
лемма � слова
![Page 42: Дмитрий Агафонов "Поиск фраз в документах Рекламной Сети Яндекса"](https://reader034.vdocuments.net/reader034/viewer/2022052316/557f055ed8b42ac0728b4b01/html5/thumbnails/42.jpg)
42
Ищем в индексе(особая поисковая магия)
![Page 43: Дмитрий Агафонов "Поиск фраз в документах Рекламной Сети Яндекса"](https://reader034.vdocuments.net/reader034/viewer/2022052316/557f055ed8b42ac0728b4b01/html5/thumbnails/43.jpg)
43
ПоискЭто – разреженный интервал поиска™
01-2
25
36
4
57
6
7
a
b
c
d e
c
b
ii i
iii
iv
13-4
a 1:5 2:7 9:4b 3:9 8:4c 5:6e 4:3 7:1
Это документ
слова, позиции и веса
0 1 2 3 4 5 6 7
![Page 44: Дмитрий Агафонов "Поиск фраз в документах Рекламной Сети Яндекса"](https://reader034.vdocuments.net/reader034/viewer/2022052316/557f055ed8b42ac0728b4b01/html5/thumbnails/44.jpg)
44
Поиск
a 1b 2, 3c 4, 6d 5e 7
1 2 3 4 6 7
Берём таблицу слова → узлы индекса
a 1:5 2:7 9:4b 3:9 8:4c 5:6e 4:3 7:1
Делаем из документа список узлов индекса
01-2
25
36
4
57
6
7
a
b
c
d e
c
b
ii i
iii
iv
13-4
![Page 45: Дмитрий Агафонов "Поиск фраз в документах Рекламной Сети Яндекса"](https://reader034.vdocuments.net/reader034/viewer/2022052316/557f055ed8b42ac0728b4b01/html5/thumbnails/45.jpg)
45
Поиск
1 2 3 4 6 7
1.Начинаем в корне, с пустым интервалом поиска.
2.В каждом узле:
● Обрезаем интервал от начала и до номера текущего узла включительно.
● Если есть диапазон номеров дочерних узлов, добавляем его в интервал.
● Если узел терминальный, добавляем его фразы в список найденных.
3.Находим нижнюю границу пересечения интервала с документом. Это следующий узел.
01-2
25
36
4
57
6
7
a
b
c
d e
c
b
ii i
iii
iv
13-4
![Page 46: Дмитрий Агафонов "Поиск фраз в документах Рекламной Сети Яндекса"](https://reader034.vdocuments.net/reader034/viewer/2022052316/557f055ed8b42ac0728b4b01/html5/thumbnails/46.jpg)
46
Пример
1 2 3 4 6 7
Пришли в узел 0
Добавляем в пустой интервал диапазон 1-2
01-2
25
36
4
57
6
7
a
b
c
d e
c
b
ii i
iii
iv
13-4
0 1 2 3 4 5 6 7
![Page 47: Дмитрий Агафонов "Поиск фраз в документах Рекламной Сети Яндекса"](https://reader034.vdocuments.net/reader034/viewer/2022052316/557f055ed8b42ac0728b4b01/html5/thumbnails/47.jpg)
47
Пример
1 2 3 4 6 7
Пришли в узел 1
Удаляем из интервала 1
Добавляем диапазон 3-4
01-2
25
36
4
57
6
7
a
b
c
d e
c
b
ii i
iii
iv
13-4
0 1 2 3 4 5 6 7
![Page 48: Дмитрий Агафонов "Поиск фраз в документах Рекламной Сети Яндекса"](https://reader034.vdocuments.net/reader034/viewer/2022052316/557f055ed8b42ac0728b4b01/html5/thumbnails/48.jpg)
48
Пример
1 2 3 4 6 7
Пришли в узел 2
Удаляем из интервала 2
Добавляем 5
01-2
25
36
4
57
6
7
a
b
c
d e
c
b
ii i
iii
iv
13-4
0 1 2 3 4 5 6 7
![Page 49: Дмитрий Агафонов "Поиск фраз в документах Рекламной Сети Яндекса"](https://reader034.vdocuments.net/reader034/viewer/2022052316/557f055ed8b42ac0728b4b01/html5/thumbnails/49.jpg)
49
Пример
1 2 3 4 6 7
Пришли в узел 3
Удаляем из интервала 3
Добавляем 6
Нашли фразу «a b»!
01-2
25
36
4
57
6
7
a
b
c
d e
c
b
ii i
iii
iv
13-4
0 1 2 3 4 5 6 7
i. «a b c»
ii. «a b»
iii. «a c»
iv. «b d e»
![Page 50: Дмитрий Агафонов "Поиск фраз в документах Рекламной Сети Яндекса"](https://reader034.vdocuments.net/reader034/viewer/2022052316/557f055ed8b42ac0728b4b01/html5/thumbnails/50.jpg)
50
Пример
1 2 3 4 6 7
Пришли в узел 4
Удаляем из интервала 4
Добавлять нечего
Нашли фразу «a c»!
01-2
25
36
4
57
6
7
a
b
c
d e
c
b
ii i
iii
iv
13-4
0 1 2 3 4 5 6 7
i. «a b c»
ii. «a b»
iii. «a c»
iv. «b d e»
![Page 51: Дмитрий Агафонов "Поиск фраз в документах Рекламной Сети Яндекса"](https://reader034.vdocuments.net/reader034/viewer/2022052316/557f055ed8b42ac0728b4b01/html5/thumbnails/51.jpg)
51
Пример
1 2 3 4 6 7
Пришли в узел 6
Удаляем из интервала 5-6
Добавлять снова нечего
Нашли фразу «a b c»!
Всё! 01-2
25
36
4
57
6
7
a
b
c
d e
c
b
ii i
iii
iv
13-4
0 1 2 3 4 5 6 7
i. «a b c»
ii. «a b»
iii. «a c»
iv. «b d e» a b c e
![Page 52: Дмитрий Агафонов "Поиск фраз в документах Рекламной Сети Яндекса"](https://reader034.vdocuments.net/reader034/viewer/2022052316/557f055ed8b42ac0728b4b01/html5/thumbnails/52.jpg)
52
Заметки к поиску● Двигаемся по двум упорядоченным спискам чисел –
высокая скорость поиска.
● В узлах можно проверять соответствие дополнительных условий фраз, «проходящих» через узел, и условий документа – можно не заходить в лишние ветки.
● Для более сложных индексов и документов интервал поиска действительно становится разреженным, т. е. зелёные и серые участки вперемешку.
1 2 3 4 6 70 1 2 3 4 5 6 7
![Page 53: Дмитрий Агафонов "Поиск фраз в документах Рекламной Сети Яндекса"](https://reader034.vdocuments.net/reader034/viewer/2022052316/557f055ed8b42ac0728b4b01/html5/thumbnails/53.jpg)
53
Наш план
● О чём речь● Кому это интересно● Много букв (картинки будут)● Ваши вопросы● Мои ответы
![Page 54: Дмитрий Агафонов "Поиск фраз в документах Рекламной Сети Яндекса"](https://reader034.vdocuments.net/reader034/viewer/2022052316/557f055ed8b42ac0728b4b01/html5/thumbnails/54.jpg)
54
Осталось чуть-чуть
● Проверить расстояния между словами найденных фраз
● Посчитать релевантность
![Page 55: Дмитрий Агафонов "Поиск фраз в документах Рекламной Сети Яндекса"](https://reader034.vdocuments.net/reader034/viewer/2022052316/557f055ed8b42ac0728b4b01/html5/thumbnails/55.jpg)
55
Пример на буквах
Это две фразы:
● a c h
● d f p u
Это документ: a b c d e f g h i j k l m n o p q r s t u v w x y z
Нашли.
Но фраза d f p u слишком размазана по документу.
![Page 56: Дмитрий Агафонов "Поиск фраз в документах Рекламной Сети Яндекса"](https://reader034.vdocuments.net/reader034/viewer/2022052316/557f055ed8b42ac0728b4b01/html5/thumbnails/56.jpg)
56
Проверка расстояний
Мы знаем слова найденных фраз и их позиции в документе.
Делаем список словопозиций.
Привязываем позиции к фразам.
Проверяем за один проход.
a 1:5 2:7 9:4b 3:9 8:4c 5:6e 4:3 7:1
слова, позиции и веса
i. «a b c»
ii. «a b»
iii. «a c»
iv. «b d e»
![Page 57: Дмитрий Агафонов "Поиск фраз в документах Рекламной Сети Яндекса"](https://reader034.vdocuments.net/reader034/viewer/2022052316/557f055ed8b42ac0728b4b01/html5/thumbnails/57.jpg)
57
Релевантность
У слов найденных фраз есть веса в документе.
Вычислить релевантность фраз можно, например, по TF-IDF. Или другим методом.
a 1:5 2:7 9:4b 3:9 8:4c 5:6e 4:3 7:1
слова, позиции и веса
i. «a b c»
ii. «a b»
iii. «a c»
iv. «b d e»
![Page 58: Дмитрий Агафонов "Поиск фраз в документах Рекламной Сети Яндекса"](https://reader034.vdocuments.net/reader034/viewer/2022052316/557f055ed8b42ac0728b4b01/html5/thumbnails/58.jpg)
58
Вопросы?
![Page 59: Дмитрий Агафонов "Поиск фраз в документах Рекламной Сети Яндекса"](https://reader034.vdocuments.net/reader034/viewer/2022052316/557f055ed8b42ac0728b4b01/html5/thumbnails/59.jpg)
Дмитрий АгафоновСтарший разработчик
111033, Россия, Москва,ул. Самокатная, д. 1, стр. 21.
+7 (495) 739-00-00+7 (495) 739-70-70 — факс