¿Cuál es una buena forma de implementar la "predicción de la siguiente palabra"? Por ejemplo, el usuario escribe "Yo soy" y el sistema sugiere "a" y "no" (o posiblemente otros) como la siguiente palabra. Conozco un método que utiliza cadenas de Markov y algunos textos de entrenamiento (obviamente) para lograr esto más o menos. Pero leí en alguna parte que este método es muy restrictivo y se aplica a casos muy simples.
Entiendo los conceptos básicos de las redes neuronales y los algoritmos genéticos (aunque nunca los he usado en un proyecto serio) y tal vez podrían ser de alguna ayuda. Me pregunto si hay algún algoritmo que, dado el texto de capacitación adecuado (p. Ej., Artículos periodísticos y la propia escritura del usuario) pueda presentar sugerencias razonablemente apropiadas para la siguiente palabra. Si no (enlaces a) algoritmos, los métodos generales de alto nivel para atacar este problema son bienvenidos.
n
que arroje buenos resultados?n
da como resultado una lista más larga que le dará una predicción más precisa, pero también es más costosa de buscar. Por lo tanto, es una compensación entre la precisión y el tiempo de cálculo.Parece que el dominio del problema es un subconjunto de búsqueda de cadenas. Al extender las palabras para incluir espacios en blanco, la coincidencia de cadenas difusa se puede aplicar aquí.
Es posible que desee considerar / permitir todas las entradas del usuario como una palabra durante el entrenamiento además de su diccionario. Esto le permite sugerir la siguiente palabra, pero también sugiere autocompletar palabras o frases.
Aquí hay un enlace a una compilación de algoritmos de búsqueda de cadenas difusas
http://ntz-develop.blogspot.com/2011/03/fuzzy-string-search.html
fuente
Está buscando un modelo de lenguaje (estadístico) .
fuente