¿Es el algoritmo y la metodología para corregir automáticamente las palabras mal escritas en las consultas de búsqueda de Google una “salsa secreta” o está abierto?

Imagina que estás en Google e intentas buscar información sobre una determinada empresa que también se llama “Google”. En su prisa, escribe mal su consulta y termina buscando gogle en su lugar.

En un mundo sin autocorrección, ¿qué es lo más probable que haga después? Los resultados no fueron lo que esperabas. No hay muchos resultados, y los pocos que aparecen no son particularmente relevantes, por lo que no debe hacer clic en ninguno. En su lugar, mira el cuadro de búsqueda para descubrir su error y vuelve a buscar, esta vez la consulta correctamente escrita: google .

Resulta que mucha gente comete este mismo error, sigue el mismo patrón y, con el tiempo suficiente, puede generar automáticamente reglas como “el 90% de las personas que buscan X en realidad están buscando Y”. Entonces, si alguien escribe X, sugerimos resultados para Y en su lugar.

No digo que esa sea la forma (o la única) que Google lo hace, pero ese es un método bastante sencillo que no requiere ningún conjunto de datos especialmente seleccionados o intervención humana manual.

Alphabet (el padre de Google) lanza muy poco código de código abierto de sus propios productos (que no sean el sistema operativo Android). El código real y los algoritmos específicos no están “abiertos”, pero tampoco es como una salsa secreta.

La idea general de cómo funciona ya se conoce: tiene en cuenta qué palabras los usuarios reemplazan con frecuencia las que están mal escritas. Tiene en cuenta los errores ortográficos comunes de las palabras. Tiene en cuenta con qué frecuencia las personas aceptan la búsqueda corregida. Tiene en cuenta qué tan cerca está la tecla correcta en el teclado QWERTY (y posiblemente DVORAK) a la que escribió. Esto no es todo lo que hace, pero entiendes la idea.

Teóricamente, podría ser un rebelde desde cero. La razón por la que pocas personas pueden igualarlo no es porque carecen de los conocimientos, sino porque carecen de los años de datos que tiene Alphabet.

No sé, nunca he trabajado para Google. Pero recuerdo un interesante proyecto de Google Labs que Google establece en el que escribes un par de palabras y Google encuentra los otros elementos en los conjuntos. El proyecto de conjuntos se extrae ahora. Tiene sentido que tendrían un error tipográfico. Interesante respuesta del ingeniero de Google.

More Interesting

¿Cuáles son algunos de sus mejores algoritmos de C ++ o C que está orgulloso de haber escrito?

¿Puedo diseñar una estructura de datos tipo pila que haga popMin () en tiempo O (1)?

¿Cuál es la explicación intuitiva para agregar flujo en bordes inversos en el algoritmo de flujo máximo? ¿Por qué necesitamos eso?

¿Qué tan difícil es el algoritmo de verificación de traducción de Duolingo? ¿Existen otras herramientas de código abierto similares por ahí?

¿Qué métricas deberían usarse para crear una puntuación de confiabilidad automática para los artículos de Wikipedia?

¿Cuál es el problema de algoritmo más difícil en LeetCode?

¿Cuál es la mejor fuente disponible para aprender estructuras de datos y algoritmos para un principiante?

Cómo implementar un algoritmo de equilibrio de carga personalizado aparte del algoritmo Round Robin predeterminado en mi Amazon Elastic Load Balancer usando Java SDK para AWS

¿Cómo se construye exactamente una estructura de datos de árbol en JavaScript?

¿Qué sucede cuando hay un ciclo negativo en el gráfico?

¿En qué se diferencia un árbol de búsqueda binario de un árbol binario?

¿Cómo se usa el hashing para la integridad?

Me resultó difícil entender los algoritmos de clasificación. ¡Cuando profundizo en los algoritmos, siento que mi mente se bloquea! ¿Qué debo hacer para sentirme cómodo con los algoritmos?

Procesadores de señal digital (DSP): cuando alguien escribe un archivo en una tarjeta SD usando un bus spi, ¿cómo sabe dónde debería estar el comienzo de un nuevo archivo?

¿De qué manera aprender sobre algoritmos mejora sus habilidades de programación?