Как делать сниппет?

12
alexf2000
На сайте с 15.10.2004
Offline
79
2834

Написал я тут свой "гугл" :) и возникла проблема - самая долгая операция, это создание сниппета, тех 2-3 строчек которые показываются в описании ссылки. Вопрос - как их правильно делать, может есть готовые алгоритмы или толково описанный принцип их создания?

Самый интересный SEO-блог (http://alexf.name)
Таггу x_x
На сайте с 31.10.2005
Offline
445
#1
alexf2000:
Написал я тут свой "гугл"

О! А есть где глянуть?

☠️☠️☠️
alexf2000
На сайте с 15.10.2004
Offline
79
#2

Пока не стоит, не отлаженная штука, сервер мне уроните. :) Лучше про сниппеты давайте. Как их правильно делать?

JD
На сайте с 13.12.2005
Offline
34
#3

гугл берет description для этого дела

Вопросик как реализовывал TF*IDF?

alexf2000
На сайте с 15.10.2004
Offline
79
#4

Гугл берёт дескрипшин далеко не всегда. Даже довольно редко.

tf-idf у меня не используется, хотя реализовать без проблем можно. Вопрос остаётся открытым. :)

lagif
На сайте с 15.12.2004
Offline
30
#5

alexf2000, Сохраняйте контент :) в каком-нибудь сжатом виде, плюс координаты слов к нему...

Это тоже пройдет...
VT
На сайте с 27.01.2001
Offline
130
#6
Вопрос - как их правильно делать, может есть готовые алгоритмы или толково описанный принцип их создания?

Нужно разделить весь текст документа на блоки и хранить в индексе для каждого слова координаты всех блоков, где оно встречается. Для более точного поиска кроме номеров документа и блока можно хранить и позицию слова в блоке, как это делается во всех современных полнотекстовых поисковиках - это поможет и при организации поиска со строгим соответствием, и при поиске со смещением, когда нужно найти термы, отстоящие на несколько слов друг от друга.

AA
На сайте с 16.04.2001
Offline
70
#7
alexf2000:
Вопрос - как их правильно делать, может есть готовые алгоритмы или толково описанный принцип их создания

Здесь две задачи:

1. Выбрать отрывок/ки текста, которые выдавать в качестве сниппета.

2. Выдача этого отрывка.

Первая задача зависит от критерия определения этого куска. Пусть, к примеру, это будет наибольшая плотность/близость слов запроса. Тогда получить критериальные оценки и, следовательно, координаты нужного отрывка можно через координатный индекс. Т.е. текст для этого не нужен.

2. Здесь без текста не обойтись. Нужен конкретный отрывок с известными из (1) координатами. Можно, конечно, разобрать страницу на лету тем же разборщиком, что грузили, но это слишком накладно. Предлагаю хранить текст с проставленными при загрузке координатами (вектор координата-смещение) - это достаточно простое решение.

Или можно преобразовать текст в структуру с быстрым разбором, например, разметить текст. Тогда найти текст с нужными координатами будет несложно.

С уважением, Антонов Александр.
R
На сайте с 29.04.2003
Offline
37
#8
alexf2000:

tf-idf у меня не используется, хотя реализовать без проблем можно. Вопрос остаётся открытым. :)

Как это?! А как же вычисляете вес?

alexf2000
На сайте с 15.10.2004
Offline
79
#9

Во, пошла конкретика. :) Как правильно разделять текст на блоки? На данный момент я делаю так - теги br, /p. /div считаются концами блоков, пробовал точку тоже считать концом блока, но тогда www. адреса режутся. Какие ещё способы есть? Как выбрать те 1-2 блока, которые будут показаны?

K
На сайте с 27.11.2000
Offline
80
#10

Во-первых, никаких "сниппетов" не существует :) Оригинальное название этого дела - "цитаты", или "цитаты релевантных фрагментов" :)

Впервые такое дело в промышленном масштабе было реализовано еще в советские годы, в ИнфорЭлектро, группой ныне здравствующего Владимира Пархоменко в рамках системы "Скобки" - так назывался небольшой поисковичок.

Первая "большая" поисковая система, которая это делала - это Апорт, запущенный в 1996 году вашим покорным слугой. И там это тоже называлось "цитатами", а никакими не "сниппетами". Фу, вульгарный жаргон!

alexf2000:
Вопрос - как их правильно делать, может есть готовые алгоритмы или толково описанный принцип их создания?

Теперь по реализации.

Я обычно реализую это через т. н. "плоский индекс" - через образы документов, где каждое слово представлено 4-байтным идентификатором. При вычислении запроса с учетом координат слов запоминаю несколько самых релевантных фрагментов, строю битмапу для цитирования и, адресуя этот образ индексами слов, строю цитату. Вхождения, соответственно, все подсвечиваю.

Кстати, использование такого плоского индекса на небольших объемах - не более пары миллионов урлов - может, как ни странно, при переорганизации алгоритма сократить объем обратного индекса.

С уважением, Андрей Коваленко aka Keva
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий