Извлечение основного текста с сайтов например извлечение только заголовка статьи и текста не всего текста на сайте


Я ищу алгоритмы, которые позволяют извлекать текст с веб-сайтов. Я не имею в виду" strip html " или любую из сотен библиотек, которые это позволяют.

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

Существуют ли какие-либо алгоритмы для этого? Спасибо!

5 7

5 ответов:

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

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

Instapaper ичитаемость должны решить эту проблему, и вы можете узнать что-то, глядя на их решения. Они также предоставляют услуги, которыми вы можете воспользоваться - возможно, вы можете передать им свою проблему на аутсорсинг и позволить их API позаботиться об этом. :)

В противном случае a поиск по "HTML content extraction" возвращает большое количество полезных результатов, включая ряд работ по этой теме.

Есть несколько доступных инструментов с открытым исходным кодом, которые выполняют аналогичные задачи извлечения статей. https://github.com/jiminoc/goose который был с открытым исходным кодом от Gravity.com

Он содержит информацию о Вики, а также источник, который вы можете просмотреть. Существуют десятки модульных тестов, которые показывают текст, извлеченный из различных статей.

"извлечение контента" - очень сложная тема. Не существует единых стандартов для определения содержания "основной статьи" (Существует несколько подходов, облегчающих чтение HTML для искателей, например schema.org , но ни один из них не используется очень широко).

Получается, что если вы хотите хороших результатов, то, вероятно, лучше всего определить свои собственные XPath селекторы для каждого (новостного) сайта, который вы хотите очистить. Хотя существуют некоторые API для извлечения содержимого HTML, но как Я сказал, что очень трудно разработать алгоритм, который работает для каждого сайта.

Некоторые API, которые можно использовать:

Alchemyapi.com
diffbot.com
boilerpipe-web.appspot.com
aylien.com
textracto.com

Я думаю, что ваш лучший выстрел-это изучить, какую информацию вы можете получить из метаданных и написать хороший HTML-парсер, oEmbed может быть хорошим стандартом =)

Https://oembed.com/#section7