5

Каковы наилучшие алгоритмы распознавания структурированных данных на HTML-странице?Алгоритмы, распознающие физический адрес на веб-странице

Например, Google узнает адрес дома/компании по электронной почте и предлагает карту по этому адресу.

+1

Кто-то отредактировал это, чтобы указать местоположение или физический адрес, так как это все еще довольно неоднозначно. – 2008-12-08 12:00:30

+1

Спасибо, я понял, что вопрос неоднозначен. – gyurisc 2008-12-09 08:07:44

+0

А, очень хорошо, спасибо :-) – 2008-12-09 12:53:31

ответ

10

Основание для извлечения искомого объекта, такое как GATE, по крайней мере заняло information extraction problem для местоположений, при помощи справочника географических названий известных мест, чтобы помочь решить общие проблемы. Если страницы не были сгенерированы машиной из общего источника, вы найдете регулярные выражения, немного слабые для работы.

3

Если вам также приходится обрабатывать международные адреса, вы находитесь в мире головных болей; international address formats удивительно разнообразны.

0

Опять же, регулярные выражения должны делать трюк.

Из-за широкий спектр адресов, можно только догадываться, является ли строка адреса или не выражение типа «(чисел), (имя) Улица | Boulevard | Main» и т.д.

Вы можете рассмотрите вопрос о некоторых расширениях firefox, которые направлены на отображение адресов, найденных в тексте, чтобы увидеть, как они работают.

1

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

Если вы хотите идти вниз регулярное выражение маршрута ваш лучший выбор, вероятно, чтобы проверить исходный код из http://metacpan.org/pod/Regexp::Common::URI::http

2

Не использовать регулярные выражения. Используйте существующий анализатор HTML, например, в Python. Я настоятельно рекомендую BeautifulSoup. Даже если вы используете регулярное выражение для синтаксического анализа элементов HTML BeautifulSoup.

Если вы делаете это с помощью своих собственных регулярных выражений, вам не только нужно беспокоиться о поиске требуемых данных, вам нужно беспокоиться о таких вещах, как недопустимый HTML, и о многих других очень неочевидных проблемах, которые вы наткнетесь ..

3

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

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

4

Если у вас есть разметка, а не только текст со страницы, я второй предлагаю Beautiful Soup выше. В частности, address tag должен обеспечить самый низкий из низко висящих фруктов. Также посмотрите на adr microformat. Я бы вернулся только к регулярным выражениям, если первые два не достали достаточно информации или у меня не было необходимых данных для поиска первых двух.

0
  1. экстракции Это зависит от ваших требований.

для электронной почты и контактной информации regex более чем достаточно. Для адресов регулярное выражение не поможет. Подумайте о NLP (NER) & Маркировка POS. Для поиска информации, связанной с людьми, вы не можете ничего сделать без NER.

  • Если вам нужна информация, как абзацы, получите содержимое с помощью тегов.