Определение географического положения в тексте
Какая работа была проделана, чтобы определить, относится ли конкретная строка к географическому местоположению? Например:
'troy, ny'
'austin, texas'
'hotels in las vegas, nv'
Полагаю, чего я ожидаю, так это статистического подхода, который дает определенную степень уверенности в том, что первые два являются местоположениями. Последнее, вероятно, потребует эвристики, которая захватывает "%s, %s", а затем использует ту же технику. Я специально ищу подходы, которые не слишком сильно зависят от предложения "в", так как это не совсем однозначный или постоянно доступный индикатор местоположения.
Кто-нибудь может указать мне на подходы, документы или существующие утилиты? Спасибо!
4 ответа
Проблему, которую вы описываете, часто называют разбором географических запросов или, в более общем смысле, поиском географической информации.
Недавно на CLEF 2007 была поставлена задача ( http://www.uni-hildesheim.de/geoclef/2007/Query-Parsing.htm). Команда-победитель использовала грамматику, основанную на правилах, которая похожа на то, что вы, вероятно, не хотите. Другая статья на www2009 рассказывает о GeoParser: http://www2009.eprints.org/239/.
На CIKM 2007 также есть несколько статей о поиске географической информации: http://www.geo.unizh.ch/~rsp/gir07/accepted.html
Я не знаю ни одного программного обеспечения с открытым исходным кодом, которое делает это, но оно может быть включено в поисковую систему, такую как Lemur.
Everyblock.com использует очень интересный подход, который фокусируется на том, как локации выражаются на английском языке - они в основном используют сложные и обширные регулярные выражения, которые теперь являются открытыми. Их приложение предназначено для сканирования новостных статей, обзоров и различных общедоступных каналов данных и привязки их к конкретным местам, и оно хорошо работает. Такие выражения, как "Пожар в здании на северо-восточном углу 20-й улицы и улица Валенсия в Сан-Франциско", очень точно геокодированы. Вы можете изучить источник здесь. Особенная часть, которую вы, вероятно, хотите ebpub/ebpub/geocoder/base.py
, расположенный в ebpub
загрузка и все, что с ней связано, например, начиная с класса SmartGeocoder и работая в обратном направлении.
Ссылка на помощь: geonames.org поиск:
возвращает имена, найденные для searchterm, в виде документа xml или json
пример: http://ws.geonames.org/search?q=troy,%20ny&maxRows=10
Я строю бесплатный геопарсер на geocode.xyz
(в настоящее время поддерживает около 50 европейских стран, скоро предложить глобальное покрытие)
Пример приложения геопарсинга можно найти на OpenWikiMap