2008-10-22 24 views
14

Me pregunto si alguien tiene buenos recursos para leer o código de experimentar para "autcomplete"autocompletar, papeles, estrategias, etc

Me gustaría saber cuál es la teoría detrás de la terminación automática, por dónde empezar lo son los errores comunes, etc.

Me pareció fascinante la forma en que productos como Enso, Launchy, Google Chrome e incluso tcsh realizan su autocompletar, comencé mi auto por curiosidad y obtuve un código de muestra y llegué a la conclusión de que este debe ser un campo ampliamente explorado antes.

Agradecería que alguien comparta algún buen recurso técnico sobre cómo implementar esto.

Gracias de antemano.

Respuesta

11
+0

Parece una útil lista de URL, gracias. Tendré que explorar en algún momento, cuando tenga tiempo (y ¡oh, miren, hay un cerdo volando alrededor de un árbol de ruibarbo!) –

+0

+1 por la referencia de patente –

+0

¿qué es este mumbojumbo de árbol de ruibarbo? – sudocoder

2

Salida este blog en la implementación de autocompletar usando GWT:

http://jroller.com/glongman/entry/gwt_autocompleter

Pero le recomiendo que empiece con algo muy simple por su cuenta para comprender cómo se realiza la aplicación. Empezaría con un Trie, tal vez incluso almacenado por completo en el cliente, luego pasaría a optimizarlo con las consultas del servidor si crees que son necesarias.

0

Autocomplete se implementa normalmente usando uno de los siguientes:

  • árboles. Al indexar el texto que se puede buscar en una estructura en árbol (árbol de prefijos, árbol de sufijos, dawg, etc.) uno puede ejecutar búsquedas muy rápidas a expensas del almacenamiento de la memoria. El recorrido del árbol se puede adaptar para una coincidencia aproximada.
  • Partición de patrón. Al dividir el texto en tokens (ngrams), se pueden ejecutar búsquedas de ocurrencias de patrones usando un simple esquema de hash.
  • Filtrado. Encuentre un conjunto de posibles coincidencias y luego aplique un algoritmo secuencial para verificar cada candidato.

Un par de artículos sobre el tema:

  • Bořivoj Melichar. Coincidencia aproximada de cadenas por autómatas finitos;
  • Gonzalo Navarro. Una visita guiada a la coincidencia de cadenas aproximadas;
  • Leonid Boytsov. Métodos de indexación para la búsqueda aproximada del diccionario: análisis comparativo;
  • Marios Hadjieleftheriou y Divesh Srivastava.Procesamiento de cadena aproximado;
  • Surajit Chaudhuri y Raghav Kaushik. Extendiendo la Autocompletación para Tolerar Errores;

Eche un vistazo a completely, una biblioteca de autocompletado de Java.