Cuando escribo una consulta en Google que falta espacios, ¿qué algoritmo se utiliza para identificar los espacios y las palabras que faltan?

En resumen: Uso de inferencias probabilísticas de transición de la consulta de entrada dada a una consulta correcta, obtenida del Registro de consultas.

En detalle:
No puedo decir sobre Google, pero en general cada vez que una consulta se envía a un motor de búsqueda, se procesa a través de tres módulos principales (de comprensión de consultas), antes de pasar (con otros parámetros extraídos) al módulo de generación de respuestas subyacente. Estos tres módulos QU son:
1. Refinamiento de consultas (tiene la tarea de Corrección de consultas + Expansión de consultas )
2. Sugerencia de consulta
3. Detección de intención de consulta

La tarea mencionada por usted, de Agregar espacios faltantes, es manejada por el submódulo Corrección de consultas. No solo esta tarea, sino que el módulo de corrección de consultas maneja otras operaciones también como: Corrección de errores ortográficos, eliminación de espacios adicionales, expansión de acrónimos ( por ejemplo, CSE a informática e ingeniería ), segmentación de frases ( por ejemplo, ‘Emma Watson’ no son dos términos, sino uno solo frase ) etc.

Uno de los enfoques es dónde, todas estas tareas se manejan juntas usando campos aleatorios condicionales. Este modelo aprende a obtener probabilísticamente una salida para secuencias de entrada ( tenga en cuenta que cualquier consulta es una secuencia de términos ), con datos de capacitación proporcionados, que (en términos muy generales ) tiene la forma:
Secuencia de entrada -> Secuencia de salida
Estos datos se crean a partir del registro de consultas del usuario real, donde la secuencia de salida es la Consulta correcta para la consulta de muestra. Aunque como se dijo anteriormente, es en un sentido muy amplio, de lo contrario, algunas características también se extraen y se proporcionan para el aprendizaje, así como al procesar una nueva consulta.

Debe estar pensando cómo se obtiene esta secuencia de salida correcta para una secuencia dada. La respuesta es que se obtienen de humanos. A gran escala se realiza a través de Crowd Sourcing.

Otra pregunta que podría estar pensando es: ¿Todas las consultas del registro se juzgan a través de los humanos? La respuesta es: no, se crea y utiliza un pequeño conjunto de datos. Nuestro modelo trata de aprender solo de esos datos. Este es el concepto fundamental del aprendizaje automático: tratamos de enseñar el modelo para nuestra tarea con alguna muestra (conocida como datos de capacitación) y luego la usamos para obtener resultados que se habrían obtenido con la misma tarea a gran escala. Aquí la tarea es un conjunto de tareas múltiples que se mencionan anteriormente.

Como referencia, puede leer el documento sobre Refinamiento de consultas (página en microsoft.com). Hace unos días, había impartido un seminario sobre comprensión de consultas . Puedes echarle un vistazo en el Seminario M.Tech – Abhay Prakash.

No puedo hablar sobre cómo se hace esto en Google (no era algo en lo que trabajé), pero implementé una solución a este problema de segmentación de cadenas para otro motor de búsqueda.

Y me gustó tanto el problema que lo usé como un problema de entrevista, incluso para candidatos de ingeniería de software en Google.

Aquí hay una reseña que publiqué después de que decidí retirar el problema de mi conjunto de preguntas de la entrevista: Retirar un gran problema de entrevista

La tarea realizada se llama “Segmentación de palabras”. No sé la implementación actual de Google. Pero según lo respondido por otros, puede usar modelos de lenguaje probabilístico (programación dinámica) para resolver esto.

http://www.cs.duke.edu/courses/c