Los algoritmos de corrección ortográfica en los motores de búsqueda son similares a los de los correctores ortográficos en los procesadores de texto.
Algoritmo de corrección ortográfica
Cada término de consulta se compara con un diccionario.
Si no se encuentra un término en el diccionario, esas palabras del diccionario se muestran como sugerencias de ortografía, que son más similares al término de consulta en cuestión.
Similitud / Editar distancia
Como medida de similitud entre dos palabras sirve generalmente la distancia Damerau-Levenshtein http://en.wikipedia.org/wiki/Dam… (que es una distancia de edición http://en.wikipedia.org/wiki/Edi…).
- ¿Cuál es la mejor manera de combinar filtrado colaborativo y recomendaciones basadas en contenido?
- ¿Cómo se compara Scikit Learn con R (en términos de velocidad, conveniencia y potencia)?
- ¿Cuál es el objetivo de la detección de fraude con tarjeta de crédito?
- Cómo decidir el tamaño de la muestra para el aprendizaje automático con datos de series temporales
- Cómo saber si mi modelo de regresión es heteroscedastic u homoscedastic de mi modelo de residuos
Distancia de edición ponderada
Con una distancia de edición ponderada, podemos dar una mayor prioridad a los pares que suenan similares o que están cerca uno del otro en el diseño del teclado.
Por ejemplo, Soundex (http://en.wikipedia.org/wiki/Sou…) u otros algoritmos fonéticos (http://en.wikipedia.org/wiki/Pho…) identifican diferentes ortografías del mismo sonido.
Actuación
Existen diferentes enfoques para calcular la distancia de edición entre los términos del diccionario y los términos de la consulta:
- Enfoque ingenuo: cálculo de la distancia de edición entre el término de la consulta y cada término del diccionario. Muy caro. http://nlp.stanford.edu/IR-book/…
- Enfoque de Peter Norvig: derivando todos los términos posibles con una distancia de edición <= 2 del término de consulta, y buscándolos en el diccionario. Mejor, pero aún caro (114,324 términos para longitud de palabra = 9 y distancia de edición = 2) http://norvig.com/spell-correct….
- Enfoque de Faroo: la derivación se elimina solo con una distancia de edición <= 2 tanto del término de consulta como de cada término del diccionario. Tres órdenes de magnitudes más rápido . http://blog.faroo.com/2012/06/07…
Idioma
El idioma seleccionado o detectado de la consulta puede tenerse en cuenta, por ejemplo, utilizando un diccionario de corrección ortográfica específica del idioma.
Clasificación
Las sugerencias se ordenan por la distancia de edición (ponderada). Las sugerencias de la misma distancia de edición se ordenan por la frecuencia de palabras estáticas o el número de resultados que cada consulta sugerida devolvería del índice.
Diccionario
El diccionario de corrección ortográfica puede ser estático o generado dinámicamente.
Se podría generar o complementar un diccionario dinámico a partir del índice del motor de búsqueda o las consultas ingresadas por todos los usuarios.
Por ejemplo, si para un término específico el número de resultado o la frecuencia de palabras está por encima de un umbral específico, esa palabra se agrega al diccionario de revisión ortográfica.
También es posible utilizar el índice de búsqueda en sí como un diccionario de revisión ortográfica.
Modelo oculto de Markov
Una alternativa a la ortografía basada en el diccionario son los métodos estadísticos, por ejemplo, el Modelo oculto de Markov http://en.wikipedia.org/wiki/Hid… . Consulte los documentos de investigación a continuación para obtener más detalles.
Sugerencia de consulta
Un método común para evitar errores de ortografía en primer lugar es proporcionar sugerencias de consulta o completar la consulta. Un ejemplo es Google Autocompletar:
http://support.google.com/websea…
http://searchengineland.com/how-…
Trabajos de investigación
Huizhong Duan, Bo-June Hsu (Microsoft). Corrección ortográfica en línea para completar consultas
http://research.microsoft.com/pu…
Yanen Li. CloudSpeller: corrección ortográfica para consultas de búsqueda mediante el uso de un modelo de Markov oculto unificado con recursos a escala web
http://times.cs.uiuc.edu/czhai/p…
Yasser Ganjisaffar. qSpell: Corrección ortográfica de consultas de búsqueda web mediante modelos de clasificación y corrección iterativa
http://www.ganjisaffar.com/paper…
Yoh Okuno (Yahoo). Generación de ortografía basada en la distancia de edición
http://research.microsoft.com/en…
Taller de alteración ortográfica para la búsqueda web
http://research.microsoft.com/en…
Casey Whitelaw (Google). Uso de la Web para el corrector ortográfico y la corrección automática del lenguaje
http://www.aclweb.org/anthology/…