¿Cómo mejorarías el algoritmo de autocorrección?

(Esto se basa en mi comentario sobre la respuesta de J. Barton)

Mejoras el software de autocorrección adoptando un enfoque más humilde, como lo hizo Android / lo hace.

El objetivo principal de la autocorrección es ser lo más útil posible, para ayudarlo mientras escribe al máximo de sus capacidades. Sin embargo, el enfoque en estos días está imponiendo principalmente las opciones y el conocimiento de la autocorrección, mientras que debe retroceder activamente y corregirlo cuando se estropea (lo que sucede con bastante frecuencia).

Creo que Google se está volviendo bastante bueno con su “autocorrección” para Android. Puede configurarlo para que solo muestre sugerencias de palabras en lugar de reemplazar automáticamente lo que escribe.

Aprende de lo que ha escrito en el pasado, incluidas las mayúsculas de palabras extrañas. También puede usar más de un idioma como fuente. Si alguna sugerencia está completamente fuera de lugar, puede ‘descartarla’ para que ya no se sugiera en contextos similares. En los teléfonos inteligentes, las sugerencias aparecen bastante cerca de donde realmente escribe, por lo que son bastante naturales de usar. No sé cómo harías algo así cómodamente con un teclado.

En cualquier caso, creo que Google ha dado en el clavo en que la mejor autocorrección ‘sobre la marcha’ es en realidad un autocompletado activado manualmente usando sugerencias adaptativas con diversas fuentes.

Como suele suceder, esto no es realmente nuevo. Los programadores han tenido una gran variedad de software de autocompletado que funciona de manera similar durante mucho tiempo.

Varias formas, pero la más importante: cuando el usuario se toma el tiempo extra para capitalizar y / o presionar individualmente cada tecla deliberadamente, no la cambie. Estoy en TI, así que escribo muchos acrónimos y palabras de moda y todavía no he encontrado un programa de reconocimiento de accidentes cerebrovasculares, y mucho menos un algoritmo de autocorrección, que no adopte una actitud arrogante de “Yo sé mejor que tú”. Maldición, es frustrante.

Tuve una idea el otro día. Al determinar la distancia de edición más baja (siguiendo el algoritmo de distancia de edición normal) también notaría qué teclas del teclado están cerca de las letras que se cambian. Me he dado cuenta de que los errores ortográficos de Nueva York generalmente se deben a que presioné una tecla justo al lado de la que quería. No parece que la autocorrección tenga esto en cuenta hoy.

(En este caso, escribí ny en lugar de my y se autocorregió a NY. “NY” es probablemente una distancia de edición más baja en un algoritmo porque es simplemente mayúsculas. NY no suena bien en la oración, pero no lo es completamente equivocado tampoco, quizás el algoritmo podría haberle dado a “mi” una valoración más alta sabiendo que ‘m’ está muy cerca de la ‘n’ en el teclado y hace que la oración sea más clara).

¿Quizás ir más allá con esta idea es explicar qué tan rápido alguien está escribiendo?

Esperando que alguien que haya trabajado en un algoritmo de autocorrección pueda intervenir.

También sé que la mayoría de los autocorrectos aprenden de la forma en que escribe, pero ¿tienen en cuenta qué letras parece perder en un teclado? Para mí esto siempre es ‘u’ en lugar de ‘i’ o ‘t’ en lugar de ‘r’ y no recibo las sugerencias correctas de autocorrección.

More Interesting

Cómo escribir un algoritmo que tome una muestra aleatoria de tamaño k de una secuencia de n elementos

Cómo encontrar la tasa de ganancia más efectiva con la menor cantidad de coincidencias posible (algoritmo)

¿Qué es la representación de colas usando array?

¿Cuál es la implementación más rápida del árbol de búsqueda binario? (auto-equilibrio)

La variación es cuánto cambia su algoritmo dados los nuevos datos. ¿Qué significa esto?

¿Cómo se puede observar fácilmente que la complejidad temporal del código escrito es exponencial?

¿Cuál es el enfoque algorítmico para encontrar el primer entero positivo que falta si se proporciona una matriz entera sin clasificar en O (n) complejidad de tiempo y espacio constante?

¿Cómo funciona el algoritmo en el Proyecto Euler 3?

¿Podría alguien explicar las etapas de un algoritmo recursivo que muestra cómo se alcanza la condición de terminación?

¿Cómo entender el algoritmo SHA-1? ¿Cuáles son los mejores ejemplos para ello?

Te dan n pilas con p monedas, y cada jugador elimina al menos 1 moneda. El número de monedas eliminadas por un jugador no puede ser eliminado por el otro. ¿Quién ganará?

¿Cuáles son los algoritmos importantes que todo desarrollador de software graduado debe saber?

¿Cuál es el mejor algoritmo para encontrar la ruta más corta en un gráfico orientado, donde algunos bordes están bloqueados y las teclas están en algún lugar de los nodos?

¿Cuál es la complejidad Big-O de una búsqueda lineal?

¿Qué estructuras de datos admiten la inserción, eliminación y selección de un elemento aleatorio con un límite de complejidad de tiempo [matemática] O (1) [/ matemática]?