Как поисковые системы находят подходящий контент?

Как Google находит соответствующий контент при анализе веб-страниц?

Скажем, например, Google использует собственную DOM-библиотеку PHP для анализа содержимого. Какими методами они могли бы найти наиболее релевантный контент на веб-странице?

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

Скажем, у нас был этот URL:

http://domain.tld/posts/stackoverflow-dominates-the-world-wide-web.html

Теперь из этого URL-адреса я бы выяснил, что имя файла HTML будет иметь большое значение, поэтому я увижу, насколько близко эта строка сравнивается со всеми параграфами на странице!

Хорошим примером этого может быть доля Facebook, когда вы делитесь страницей. Facebook быстро переводит ссылку и возвращает изображения, контент и т.д. И т.д.

Я думал, что какой-то расчетный метод будет лучшим, чтобы выработать% релевантности в зависимости от окружающих элементов и метаданных.

Существуют ли какие-либо книги/информация о наилучших методах анализа контента, которые описывают, как получить лучший контент с сайта, любые алгоритмы, о которых можно поговорить, или какой-либо подробный ответ?


Некоторые идеи, которые я имею в виду, следующие:

  • Найти все абзацы и порядок по длине обычного текста
  • Как-то найти контейнеры div ширины и высоты div и упорядочить по (W + H) - @Benoit
  • Проверить ключевые слова, название, описание и проверить релевантность в параграфах
  • Найти все теги изображений и порядок по наибольшему, а длина узлов - от основного абзаца.
  • Проверьте данные объекта, такие как видео, и подсчитайте узлы из самого большого абзаца/содержимого div
  • Разработанные сходства с предыдущими страницами проанализированы

Причина, по которой мне нужна эта информация:

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

  • Изображение (если применимо)
  • A < 255 абзацев из лучшего фрагмента текста
  • Ключевые слова, которые будут использоваться для нашей поисковой системы, (стиль)
  • Метаданные Ключевые слова, описание, все изображения, журнал изменений (для модерации и администрирования)

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

Я не прошу секретов торговли, я спрашиваю, каким будет ваш личный подход к этому.

Ответ 1

Это очень общий вопрос, но очень хорошая тема! Определенно поддерживается: Однако я не удовлетворен ответами, предоставленными до сих пор, поэтому я решил написать довольно продолжительный ответ на этот вопрос.

Причина, по которой я не удовлетворен, заключается в том, что ответы в основном все истинны (мне особенно нравится ответ kovshenin (+1), который очень связан с теорией графика...), но все они либо слишком специфичны для определенных факторы или слишком общие.

Ему нравится спрашивать, как испечь торт, и вы получите следующие ответы:

  • Вы делаете торт, и вы кладете его в духовку.
  • Вам определенно нужен сахар!
  • Что такое торт?
  • Торт - ложь!

Вы не будете удовлетворены, потому что не хотите знать, что делает хороший торт. И, конечно, есть много или рецептов.

Конечно, Google является самым важным игроком, но, в зависимости от варианта использования, поисковая система может включать в себя очень разные факторы или весить их по-разному.

Например, поисковая система для обнаружения новых независимых исполнителей музыки может сайты художников с большим количеством внешних ссылок.

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

Есть (как уже сказано) более 200 факторов, публикуемых Google. Поэтому веб-мастера знают, как оптимизировать свои веб-сайты. Скорее всего, гораздо больше, о чем общественность не знает (в случае с Google).

Но в самом борадском и абстрактном терминах Оптимизация SEO вы можете разделить важные разделы на две группы:

  • Насколько хорошо ответ отвечает на вопрос? Или: Насколько хорошо содержание страниц соответствует условиям поиска?

  • Насколько популярным/хорошим является ответ? Или: Что такое pagerank?

В обоих случаях важно то, что я не говорю о целых веб-сайтах или доменах, я говорю об отдельных страницах с уникальным URL-адресом.

Также важно, чтобы pagerank не представлял все факторы, только те, которые Google классифицирует как популярность. И по добру я имею в виду другие факторы, которые не имеют ничего общего с популярностью.

В случае с Google официальное выражение состоит в том, что они хотят дать соответствующие результаты пользователю. Это означает, что все алгоритмы будут оптимизированы в соответствии с тем, что хочет пользователь.

Итак, после этого длинного введения (рад, что вы все еще со мной...) Я дам вам список факторов, которые я считаю очень важными (на данный момент):

Категория 1 (насколько хорошо ответ отвечает на вопрос?

Вы заметите, что многое зависит от структуры документа!

  • Страница в первую очередь касается точного вопроса.

Значение: слова вопроса появляются в тексте заголовка страниц или в пунктах абзаца абзаца. То же самое касается позиции этих ключевых слов. Чем раньше на странице, тем лучше. Повторяется часто также (если не слишком много, что входит под названием набивки ключевых слов).

  • Весь сайт посвящен теме (ключевые слова отображаются в домене/поддомене)

  • Слова являются важной темой на этой странице (внутренние ссылки якорных текстов переходят на позиции ключевого слова или якорных текстов/текстов ссылок содержат ключевое слово).

  • То же самое происходит, если внешние ссылки используют ключевые слова в тексте ссылки для ссылки на эту страницу.

Категория 2 (насколько важна/популярна страница?)

Вы заметите, что не все факторы указывают на эту точную цель. Некоторые из них включены (особенно Google), чтобы повысить уровень страниц, что... ну... это просто заслужило/заработало.

  • Контент - это король!

Существование уникального контента, который не может быть найден или только очень мало в остальной части Интернета, дает толчок. Это в основном измеряется неупорядоченными комбинациями слов на веб-сайте, которые обычно используются очень мало (важные слова). Но есть и более сложные методы.

  • Лучшее - более новое

  • Историческое изменение (как часто страница обновлялась в прошлом. Изменение хорошо.)

  • Популярность внешней ссылки (сколько ссылок в?)

Если страница ссылается на другую страницу, ссылка стоит больше, если сама страница имеет высокий пейджер.

  • Разнесение внешних ссылок

в основном ссылки из разных корневых доменов, но другие факторы также играют определенную роль. Такие факторы, как и то, как разделены веб-серверы, связывающие сайты географически (в соответствии с их IP-адресом).

  • Trust Rank

Например, если для вас установлены большие, надежные, установленные сайты с ссылкой на ссылку для редактирования, вы получаете рейтинг доверия. Вот почему ссылка из The New York Times стоит гораздо больше, чем какой-то странный новый сайт, даже если он больше PageRank!

  • Доверенное доверие

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

  • Связанные с темой ссылки.

Если веб-сайты, которые могут быть разрешены к теме, связанной с вами и запросом, могут быть разрешены и для этой темы, это хорошо.

  • Распределение ссылок в течение времени.

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

  • Ссылки с рестримированных доменов

Ссылка из домена .gov стоит много.

  • Поведение пользователя по клику

Каков клик в результатах поиска?

  • Время, проведенное на сайте

Отслеживание Google Analytics и т.д. Он также отслеживается, если пользователь нажимает или щелкает другим результатом после открытия вашего.

  • Собранные пользовательские данные

Голоса, рейтинг и т.д., ссылки в Gmail и т.д.

Теперь я представлю третью категорию, и одна или две точки сверху войдут в эту категорию, но я не думал об этом... Категория:

** Насколько важен/полезен ваш веб-сайт в целом **

Все ваши страницы будут ранжированы немного в зависимости от качества ваших веб-сайтов.

Факторы включают:

  • Хорошая архитектура сайта (простая в навигации, структурированная. Sitemaps и т.д.)

  • Как установлено (длинные существующие домены стоят больше).

  • Информация о хостерах (какие другие сайты размещены рядом с вами?

  • Частота поиска вашего точного имени.

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

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

Недавно введенные семантические идентификаторы. Например, OWL теги могут иметь огромное влияние в будущем.

Например, блог о фильме "Титаник" может поставить на этой странице знак, что он имеет тот же контент, что и в статье Википедии о том же фильме.

Этот вид ссылок в настоящее время находится в тяжелом развитии и создании, и никто не знает, как он будет использоваться.

Возможно, дублируемое содержимое фильтруется, и отображается только самое важное из того же содержимого? Или, может быть, наоборот? Чтобы вы представили много страниц, соответствующих вашему запросу. Даже если они не содержат ваши ключевые слова?

Google даже применяет факторы различной релевантности в зависимости от темы вашего поискового запроса!

Ответ 2

Трюк, но я сделаю удар:

Изображение (если применимо)

  • Первое изображение на странице
  • изображение с именем, которое содержит буквы "логотип"
  • изображение, которое наиболее близко относится к верхнему левому (или верхнему правому)
  • изображение, которое чаще всего появляется на других страницах сайта
  • изображение меньше, чем некоторые максимальные размеры

A < 255 абзацев из лучшего фрагмента текста

  • содержимое тега title
  • содержимое тега описания метаданных
  • содержимое первого тега h1
  • содержимое первого тега p

Ключевые слова, которые будут использоваться для нашей поисковой системы, (стиль)

  • подстрока имени домена
  • подстрока URL
  • подстрока тега title
  • близость между термином и самым распространенным словом на странице и верхней частью страницы

Мета-данные Ключевые слова, описание, все изображения, журнал изменений (для модерации и администрирования)

  • ак! кляп! Ошибка синтаксиса.

Ответ 3

Я не работаю в Google, но около года назад я читал, что у них было более 200 факторов для ранжирования результатов поиска. Конечно, верхний рейтинг был бы релевантным, поэтому ваш вопрос довольно интересен в этом смысле.

Что такое релевантность и как вы ее вычисляете? Есть несколько алгоритмов, и я уверен, что у Google есть свои собственные, но я знаю, что Pearson Correlation и Евклидово расстояние.

Хорошая книга, которую я предлагаю по этой теме (не обязательно поисковые системы), Программирование коллективного интеллекта Тоби Сегарана (O'Reilly), Несколько примеров из книги показывают, как извлекать данные с сторонних веб-сайтов с помощью API-интерфейсов или скринировать экран и находить похожие записи, что довольно приятно.

В любом случае, вернемся к Google. Другие методы релевантности - это, конечно, полнотекстовый поиск, и вы можете, например, получить хорошую книгу о MySQL или Sphinx. Предложенная @Chaoley была TSEP, которая также весьма интересна.

Но на самом деле, я знаю людей из российской поисковой системы под названием Yandex здесь, и все, что они делают, находится под NDA, поэтому я думаю, вы можете приблизиться, но вы не можете стать идеальным, если вы не работаете в Google;)

Приветствия.

Ответ 4

Собственно, отвечая на ваш вопрос (а не только на общие поисковые системы):

Я считаю, что бит, подобный Instapaper, будет лучшим вариантом.

Логика позади instapaper (я не создал ее, поэтому я, конечно, не знаю, что происходит внутри, но довольно легко предсказать, как она работает):

  • Найти большую кучу текста в текстовых элементах (полагаясь на теги абзаца, в то время как очень элегантно, не будет работать с этими дерьмовыми сайтами, которые используют div вместо p). В принципе, вам нужно найти хороший баланс между элементами блока (divs, ps и т.д.) И количеством текста. Придумайте некоторый порог: если X количество слов остается разделенным разметкой, этот текст принадлежит основному тексту тела. Затем развернитесь до братьев и сестер, сохраняя порог текста/разметки.

  • Как только вы сделаете самую трудную часть - найдите, какой текст принадлежит фактической статье - это становится довольно легко. Вы можете найти первое изображение вокруг этого текста и использовать его в качестве миниатюры. Таким образом, вы избежите рекламы, потому что они не будут близки к разметке основного текста.

  • Наконец, придумывание ключевых слов - забавная часть. Вы можете делать множество вещей: заказывать слова по частоте, удалять шум (и т.д., ors и т.д.), И у вас есть что-то приятное. Смешайте это с "заметным коротким текстовым элементом над обнаруженной областью текста тела" (т.е. Заголовок статьи), название страницы, мета и у вас есть что-то довольно вкусное.

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

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

Совет. Для крупномасштабных веб-сайтов, с которыми люди очень часто связаны, вы можете установить HTML-элемент, который содержит основной текст (который я описывал в пункте № 1) вручную. Это обеспечит правильность и ускорит работу.

Надеюсь, это немного поможет.

Ответ 5

Большинство поисковых систем ищут название и мета-описание в начале документа, затем заголовок и текстовое содержимое в теле. Также рассматриваются теги alt alt и заголовки ссылок. В последнее время я читал, что Yahoo использует тег meta keyword, но большинство не делает.

Вы можете загрузить файлы с открытым исходным кодом из проекта поисковой системы (TSEP) на Sourceforge https://sourceforge.net/projects/tsep/ и посмотреть, как они делают это.

Ответ 6

Я бы просто захватил первый "абзац" текста. Как большинство людей пишут истории/проблемы/что-то в том, что они сначала указывают на самое главное, а затем разрабатывают. Если вы посмотрите на любой случайный текст, и вы можете видеть, что это имеет смысл большую часть времени.

Например, вы делаете это самостоятельно в своем исходном вопросе. Если вы возьмете первые три предложения своего первоначального вопроса, у вас есть довольно хорошее резюме того, что вы пытаетесь сделать.

И я тоже сделал это сам: суть моего комментария кратко изложена в первом абзаце. Остальное - это просто примеры и разработки. Если вы не уверены, взгляните на < a href= " "rel=" nofollow" > a несколько последние статьи Я полу-случайно выбрал из Google News. Хорошо, что последний не был полуслучайным, я допускаю;)

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

Надеюсь, что это поможет.

Ответ 7

Существует множество очень сложных алгоритмов для извлечения соответствующего контента из супа-тега. Если вы хотите создать что-то полезное для себя, вы можете взглянуть на исходный код readability и перенести его на php, Я сделал что-то подобное недавно (не могу поделиться этим кодом, к сожалению).

Основная логика читаемости - найти все теги уровня блока и подсчитать длину текста в них, не считая детей. Затем каждому родительскому node присваивается фрагмент (половина) веса каждого из его детей. Это используется для финансирования самого большого тега уровня блока, который имеет наибольшее количество обычного текста. Отсюда содержимое далее очищается.

Это не пуленепробиваемый любыми средствами, но в большинстве случаев он хорошо работает.

Ответ 8

Я бы подумал, что они строят код

  • Проверить synonyms и аббревиатуры
  • применение OCR на изображениях для поиска в виде текста (Abby Fine Reader и Recostar хороши, Tesseract является бесплатным и прекрасным (не так хорошо как прекрасный читатель:))
  • вес Шрифты также (размер, смелость, подчеркивание, цвет)
  • весовое содержание в зависимости от его места на странице (как содержание на верхней стороне страницы более актуально)

также:

  • Оптический текст, заданный веб-мастером для определения страницы

Вы также можете проверить, можете ли вы найти что-нибудь полезное в API поиска Google: http://code.google.com/intl/tr/apis/ajaxsearch/

Ответ 9

Я столкнулся с одной и той же проблемой прямо сейчас, и после некоторых попыток я нашел что-то, что работает для создания фрагмента веб-страницы (должно быть настроено):

  • возьмите все html
  • удалить script и теги стиля внутри тела С ИХ СОДЕРЖАНИЕМ (важно)
  • удалите ненужные пробелы, вкладки, новые строки.
  • теперь переходите через DOM, чтобы поймать div, p, article, td (другие?) и, для каждого , взять html текущего элемента , взять "текстовую" версию содержимого элемента , присвойте этому элементу оценку: текст длина * длина текста /html длина
  • теперь отсортируйте все оценки, возьмите самые большие.

Это быстрый (и грязный) способ идентифицировать самые длинные тексты с относительно низким балансом разметки, например, что происходит при нормальном содержании. В моих тестах это кажется действительно хорошим. Просто добавьте воду;)

В дополнение к этому вы можете искать метатеги "og:", название и описание, h1 и множество других второстепенных методов.

Ответ 11

Google также использует систему под названием Page Rank, где он проверяет, сколько ссылок на сайт есть. Скажем, что вы ищете учебник на С++, и вы ищете Google для одного. Вы считаете, что это лучший результат, это отличный учебник. Google знает об этом, потому что он просматривал свой кеш в Интернете и видел, что все связывают этот учебник, раздумывая, насколько он хорош. Google обманывает, что это хороший учебник, и ставит его в качестве главного результата.

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

Надеюсь, это поможет!

Ответ 12

Чтобы ответить на один из ваших вопросов, я читаю следующую книгу прямо сейчас, и я рекомендую: Google PageRank и Beyond, Эми Лангвилл и Карл Мейер.

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

Короткая книга, всего 200 страниц. Содержит "вспомогательные средства", которые отличаются от основного потока текста, а также исторической перспективы. Также указывает на другие системы раннего ранжирования.

Ответ 13

Здесь есть несколько хороших ответов, но похоже, что они не отвечают на ваш вопрос. Возможно, это будет.

То, что вы ищете, называется Информационный поиск

Обычно используется модель Bag of Words

Скажем, у вас есть два документа:

DOCUMENT A  
Seize the time, Meribor. Live now; make now always the most precious time. Now will never come again

и этот

DOCUMENT B  
Worf, it was what it was glorious and wonderful and all that, but it doesn't mean anything

и у вас есть запрос или что-то, что вы хотите найти для других релевантных документов для

QUERY aka DOCUMENT C
precious wonderful life

В любом случае, как вы рассчитываете наиболее "релевантные" из двух документов? Вот как:

  • tokenize каждого документа (перерыв на слова, удаление всех не букв)
  • все строчные буквы
  • удалить стоп-слова (и, и т.д.)
  • рассмотреть возможность создания (удаление суффикса, см. алгоритмы генерации Porter или Snowball)
  • рассмотрим использование n-граммов

Вы можете подсчитать частоту слов, чтобы получить "ключевые слова".

Затем вы создаете по одному столбцу для каждого слова и вычисляете значение слова для документа в отношении его важности во всех документах. Это называется метрикой TF-IDF.

Теперь у вас есть это:

Doc precious worf life...
A   0.5      0.0  0.2 
B   0.0      0.9  0.0
C   0.7      0.0  0.9

Затем вы вычисляете сходство между документами, используя мера сходства Косинус. Документ с наивысшим сходством с DOCUMENT C является наиболее актуальным.

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

Здесь вы можете посмотреть мое видео. Он использует графический инструмент Java, но объясняет понятия:

http://vancouverdata.blogspot.com/2010/11/text-analytics-with-rapidminer-part-4.html

вот достойная книга IR:

http://nlp.stanford.edu/IR-book/pdf/irbookonlinereading.pdf