Анализ текста HTML - PullRequest
       0

Анализ текста HTML

3 голосов
/ 19 февраля 2011

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

//@x-weight = 1.0

//h1/@x-weight * 2.0

//h2/@x-weight * 1.8

Есть еще много правил, но вы получите точку.После назначения весов на основе разметки я учитываю и некоторые другие аспекты, такие как сходство с /head/title и количество ключевых слов.Этот подход, хотя и дает приличные результаты для большинства веб-страниц (спасибо SEO-экспертам: P), для некоторых других не дает результатов.Я думаю о возможности использовать искусственную нейронную сеть , но я не могу найти достаточно доказательств того, что я получу значительно лучшие результаты.Другой вариант - включить CSS в игру и настроить вес по размеру шрифта.

Вопрос (ы):

  1. Какой путь выбрать?
  2. Я что-то упускаю?
  3. Есть ли лучший способ для этого?

PS: Я знаю, что не существует идеального решения для такой проблемы.

Ответы [ 2 ]

1 голос
/ 19 февраля 2011

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

  1. Использовать размер шрифта
  2. Используйте общие HTML-теги, используемые для названия, т.е. h1, h2 и т. д.
  3. Найдите метаатрибут заголовка.
  4. Ищите атрибуты класса css обычно используется в статьях / заголовках (я. * статья)
  5. Ищите положение текста внутри страница (т.е. обычно заголовок находится в первая 1/3 страницы)

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

1 голос
/ 19 февраля 2011

Я бы посоветовал взглянуть на CSS, а не на h1, h2, h3, поскольку они не используются на большинстве веб-сайтов.Большие размеры шрифта, вероятно, будут означать заголовок, более четко, чем заданные теги и ключевые слова.

Меньшие шрифты с большими абзацами текста, скорее всего, также будут основной частью.

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...