2012-02-23 12 views
5

¿Cuál es el mejor método para hacer la desambiguación de ubicación para los datos geonames?¿Cuál es el mejor método para hacer la desambiguación de la ubicación de los datos de geonames?

Existen algunos algoritmos de puntuación para la búsqueda de geonames, pero no abren el código fuente y no estoy seguro de que sean muy sofisticados. (Es decir, para soma, ca vuelve Soma lake in Canada que tienen ni siquiera artículo de Wikipedia, en lugar de muy popular Soma Neirbohood in san francisco)

Hay

también algunos trabajos que he encontrado en Google Scholar, pero parece muy poco profunda y similar con mis heurística como anotar por algo (log(population) + 1000*hasWikipedia(article)+ isCity100+isCapital(10)).

Mi dominio en artículos de viaje por lo que mi función de puntuación debe proporcionar lugares turísticos más probables (ciudades, lugares de interés (Disneyland, colleseum, big ben)).

¿Conoces algún artículo importante en este campo, o los algoritmos utilizados en la producción por Google maps, yahoo, bing o incluso geonames?

+0

Es una pregunta generosa ... 'retag-ing' traerá más visitantes. Por favor, me gustaría que alguien agregue etiquetas. (No tengo más de 500 representantes). _Sugerencia de lo que creo que son buenas etiquetas para agregar_; [string-matching] [búsqueda] [algoritmo]. –

+0

@OlofAdler podemos agregar un máximo de 5 etiquetas – Hector

+0

No lo sabía. Gracias por la información. –

Respuesta

3

@yura, esto no es lo que está buscando, pero no creo que ningún algoritmo inteligente sea capaz de eliminar la ambigüedad constantemente si las consultas como "soma ca" se refieren a Soma en San Fran o Soma Lake en Canadá. El problema no es que tu algoritmo no sea lo suficientemente sofisticado; el problema es que simplemente no hay suficiente información en la consulta "soma ca".

No sé cómo expresarlo claramente, pero aquí hay una cuestión de teoría de la información. Es como la forma en que los datos aleatorios no se pueden comprimir sin pérdidas: no hay suficiente información en la entrada para calcular la salida deseada.

Incluso si un humano fuera a interpretar sus consultas de forma manual, no necesariamente entenderían que se supone que "soma ca" significa Soma en SF. Tal vez para ti una abreviatura de dos letras como "ca" "naturalmente" se refiere a un estado de EE. UU. En lugar de a un país extranjero, pero no hay nada fundamentalmente "correcto" en esa elección, y no puede derivarse utilizando la lógica pura. Es una regla ad hoc arbitraria, específica del dominio, al igual que la heurística Ad-hoc log(population) a la que se refiere.

Algunas posibles "soluciones" (aparte de diseñar un ordenador telepática que puede leer la mente de los usuarios):

  1. proporcionar a los usuarios una lista de posibles resultados para cada consulta. Lleve un registro de los que elijan, y cuando otros usuarios escriban la misma consulta, ordene los resultados por popularidad.
  2. O, una vez que reúna muchos datos sobre la popularidad de los resultados de la consulta, incluso podrá extraer los datos con algoritmos de aprendizaje automático y obtener mejores heurísticas a partir de ellos.
  3. O, antes de poner la aplicación en uso de producción, primero podría compilar un cuerpo de consultas falsas, junto con los resultados que cree que su algoritmo debería arrojar para cada consulta. Luego usa tus algoritmos de aprendizaje automático sobre eso.
  4. Recopila un cuerpo de consultas falsas y respuestas deseadas, O obtén datos de las elecciones de usuarios reales, y utiliza esos datos para comparar la precisión de tu heurística de clasificación diseñada y codificada manualmente. Siga inventando nuevas heurísticas hasta que encuentre una que logre una alta precisión en su conjunto de datos de prueba.
Cuestiones relacionadas