Найти сходство между блоками текста между многими документами HTML? - PullRequest
2 голосов
/ 23 июня 2010

Если у меня есть, скажем, 20 HTML-страниц, и я хочу извлечь общие / похожие части документов, каковы эффективные способы сделать это?

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

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

Возможно ли это?

Ответы [ 2 ]

1 голос
/ 25 июня 2010

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

CloneDR был применен ко многим языкам программирования. Его основа, DMS Software Reengeering Toolkit, уже обрабатывает (грязный) HTML, поэтому было бы довольно просто создать HMTL CloneDR.

0 голосов
/ 23 июня 2010

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

Вот некоторые в Ruby:

  • ruby-diff - Реализует алгоритм text-diff из Perl
  • дифф-ЛВП
  • HTMLdiff - Находит разность двух строк и визуализирует с красивым форматированием (HTML) (возможно, не совсем то, что вам нужно, если вы не можете удалить все недифф материал с выхода)

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

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