Каково состояние в извлечении содержимого HTML?

Существует много научной работы на извлечении содержимого HTML, например, Gupta & Kaiser (2005) Контент Извлечения от Доступных Веб-страниц и некоторые знаки интереса здесь, например, один, два, и три, но я действительно не соглашаюсь как хорошо практика последних отражений идеи первого. Какова лучшая практика?

Указатели на хороший (в частности, открытый исходный код) реализации и хорошие академические обзоры реализаций были бы видом вещи, которую я ищу.

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

Постскриптум второе, Чтобы быть ясными, после ответа Peter Rowell, который я принял, мы видим, что этот вопрос приводит к двум дополнительным вопросам: (i) решенная проблема чистки несовместимого HTML, для которого Красивый Суп является большей частью рекомендуемого решения и (ii) нерешенная проблема или разделение хлама (главным образом добавленный к сайту шаблон и рекламный материал) от сути (contentthat вид людей, которые думают страница, мог бы быть интересным на самом деле, находят релевантными. Для обращения к состоянию новые ответы должны обратиться к хламу от сути peoblem явно.

18
задан Community 23 May 2017 в 12:01
поделиться

2 ответа

Извлечение может означать разные вещи для разных людей. Одно дело иметь дело со всем этим искаженным HTML, и Beautiful Soup - явный победитель в этом отделе. Но BS не скажет вам, что такое cruft и что такое мясо.

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

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

Отделить крефт от мяса трудно. И (читать между строк вашего вопроса) даже после того, как крефт удален, без тщательно примененной семантической разметки очень трудно определить "авторский замысел" статьи чрезвычайно. Достать мясо из такого сайта, как цитизера (чисто и предсказуемо выложенного с очень высоким соотношением сигнал-шум) проще 2 или 3 порядка , чем иметь дело со случайным веб-контентом.

Кстати, если вы имеете дело с более длинными документами, вас может особенно заинтересовать работа, проделанная Marti Hearst (в настоящее время профессор UC Berkely). Ее Докторская диссертация и другие работы, связанные с открытием подтемы в больших документах, дали мне много понимания того, как делать что-то похожее в документах меньшего размера (с чем, как ни удивительно, может быть труднее справиться). Но сделать это можно только после того, как избавишься от крейфта.


Для тех немногих, кому может быть интересно, вот некоторая предыстория (вероятно, Off Topic, но я сегодня в таком настроении):

В 80-е и 90-е годы нашими клиентами были в основном правительственные учреждения, чьи глаза были больше, чем их бюджет, и чьи мечты заставляли Диснейленд выглядеть унылым. Они собирали все, что могли, а потом пошли искать технологию серебряной пули, которая каким-то образом ( гигантская ручная волна ) извлекала бы "смысл" документа. Верно. Они нашли нас, потому что мы были этой странной маленькой компанией, занимавшейся "поиском сходства содержания" в 1986 году. Мы дали им пару демо-версий (реальных, а не поддельных), которые их напугали.

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

Как насчет статей в журналах? Боже, не заводите меня! Названия почти всегда бессмысленны, а структура варьируется от одного журнала к другому, и даже от одного раздела журнала к другому. Возьмите копию журнала Wired и копию журнала Atlantic Monthly. Посмотрите на большую статью и попробуйте разобраться в осмысленном 1 абзаце, в котором рассказывается о том, о чем эта статья. Теперь попробуйте описать, как программа могла бы достичь того же самого. Применяется ли один и тот же набор правил во всех статьях? Даже статьи из одного и того же журнала? Нет, не применяются.

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

Как ни странно, большая причина того, что Google так же успешен (с точки зрения поисковых систем), заключается в том, что они придают большое значение словам, содержащимся в и окружающим ссылку с другого сайта . Эта ссылка-текст представляет собой своего рода мини-сумму , сделанную человеком из сайта/страницы, на которую он ссылается, именно то, что вы хотите, когда ищете. И он работает почти со всеми стилями жанра/раскладки информации. Это блестящая проницательность, и я бы хотел, чтобы она была у меня самой. Но это не помогло бы моим клиентам, потому что не было никаких ссылок из вчерашних телепередач по московскому телевидению на какое-то случайное сообщение по телетайпу, которое они записали, или на какую-то плохо OCR-версию египетской газеты.

/mini-rant-and-trip-down-memory-lane

18
ответ дан 30 November 2019 в 06:29
поделиться

Beautiful Soup - надежный парсер HTML, написанный на Python.

Он изящно работает с HTML с плохой разметкой, а также хорошо спроектирован как библиотека на Python, поддерживает генераторы для итерации и поиска, точечные нотации для дочернего доступа (например, для дочернего доступа), доступ ' с помощьюdoc.foo.bar`) и бесшовный юникод.

.
1
ответ дан 30 November 2019 в 06:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: