Как определить новости на одну тему с разных сайтов?

Рейтинг: 0Ответов: 2Опубликовано: 18.03.2015

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

  • interfax.ru: Капков ушел в отставку с поста главы департамента культуры Москвы
  • top.rbc.ru: На место Сергея Капкова назначен глава Мосгорнаследия
  • vesti.ru: Сергей Капков покинул правительство Москвы
  • lenta.ru: Собянин принял отставку Капкова )

От таких дублей надо избавиться, а как - я не могу придумать. Сами заголовки были мной изрядно помучены, но в примере, например, в первых двух заголовках только два одинаковых слова. По текстам вычислять сходство я даже не брался, т.к. не знаю,с какой стороны подступится. Да и подозреваю я,что их тексты антиплагиат в схожести не уличит, куда уж мне. Что посоветуете?

P.S. Парсер работает на стандартном наборе: php+curl, mysql, ajax итд. Статьи берутся отсюда, парсятся регулярками по мере появления новых в топе и заносятся в бд, есть white-list доменов.

Ответы

▲ 1

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

Простейший способ для облегчения работы модератора: Группировать новости по времени и совпадающим значимым словам (возможно: белый список слов). Из приведённого примера - если новости появились в течении N времени, то ввиду того что в них всех встречается "Капков" то возможно это новости об одном и том же, так что предложить модератору рассмотреть эти новости пачкой, а человек уже пусть решает.

▲ 1

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

Задачу решает, например, Яндекс.Новости, которая группирует их автоматически. Они используют свой Томита парсер для выделения фактов (а это самая сложная часть задачи), на сколько я знаю. Если он вам подходит по лицензии, то можете начать плясать от него.