El autocompletado , o finalización de palabras , es una función en la que una aplicación predice el resto de una palabra que está escribiendo un usuario. En los teléfonos inteligentes Android e iOS [1] , esto se denomina texto predictivo . En las interfaces gráficas de usuario , los usuarios normalmente pueden presionar la tecla de tabulación para aceptar una sugerencia o la tecla de flecha hacia abajo para aceptar una de varias.
El autocompletado acelera las interacciones entre humanos y computadoras cuando predice correctamente la palabra que un usuario intenta ingresar después de que se hayan escrito solo unos pocos caracteres en un campo de entrada de texto. Funciona mejor en dominios con un número limitado de palabras posibles (como en los intérpretes de línea de comandos ), cuando algunas palabras son mucho más comunes (como cuando se escribe una dirección de correo electrónico ) o cuando se escribe texto estructurado y predecible (como en los editores de código fuente ).
Muchos algoritmos de autocompletar aprenden palabras nuevas después de que el usuario las ha escrito varias veces y pueden sugerir alternativas basadas en los hábitos aprendidos del usuario individual.
El propósito original del software de predicción de palabras era ayudar a las personas con discapacidades físicas a aumentar su velocidad de escritura, [2] así como a reducir la cantidad de pulsaciones de teclas necesarias para completar una palabra o una oración. [3] La necesidad de aumentar la velocidad se nota en el hecho de que las personas que utilizan dispositivos generadores de voz generalmente producen el habla a una velocidad que es menos del 10% tan rápida como la de las personas que utilizan el habla oral. [4] Pero la función también es muy útil para cualquiera que escriba textos, en particular personas (como los médicos) que utilizan con frecuencia terminología larga y difícil de deletrear que puede ser de naturaleza técnica o médica.
El autocompletado o la terminación de palabras funciona de modo que cuando el escritor escribe la primera letra o letras de una palabra, el programa predice una o más palabras posibles como opciones. Si la palabra deseada está incluida en la lista, el escritor puede seleccionarla, por ejemplo, utilizando las teclas numéricas. Si la palabra que el usuario desea no está predicha, el escritor debe ingresar la siguiente letra de la palabra. En este momento, la(s) opción(es) de palabra(s) se modifica(n) de modo que las palabras proporcionadas comiencen con las mismas letras que las que se han seleccionado. Cuando aparece la palabra que el usuario desea, se selecciona y la palabra se inserta en el texto. [5] [6] En otra forma de predicción de palabras, se predicen las palabras con mayor probabilidad de seguir a la que se acaba de escribir, en función de los pares de palabras utilizados recientemente. [6] La predicción de palabras utiliza el modelado del lenguaje , donde dentro de un vocabulario establecido se calculan las palabras con mayor probabilidad de aparecer. [7] Junto con el modelado del lenguaje, la predicción básica de palabras en dispositivos de CAA a menudo se combina con un modelo de frecuencia , donde es más probable que se predigan las palabras que el usuario de CAA ha utilizado recientemente y con frecuencia. [4] El software de predicción de palabras también suele permitir al usuario introducir sus propias palabras en los diccionarios de predicción de palabras, ya sea directamente o "aprendiendo" palabras que se han escrito. [5] [6] Algunas búsquedas relacionadas con genitales u otros términos vulgares suelen omitirse de las tecnologías de autocompletado, al igual que los términos morbosos [8] [9]
La tecnología de autocompletar y predecir texto fue inventada por científicos y lingüistas chinos en la década de 1950 para resolver la ineficiencia de entrada de la máquina de escribir china , [10] ya que el proceso de mecanografía implicaba encontrar y seleccionar miles de caracteres logográficos en una bandeja, [11] lo que ralentizaba drásticamente la velocidad de procesamiento de texto. [12] [13]
En la década de 1950, los mecanógrafos comenzaron a reorganizar el diseño de caracteres del diseño estándar del diccionario a grupos de palabras y frases comunes. [14] Los ingenieros de máquinas de escribir chinas innovaron mecanismos para acceder a caracteres comunes accesibles a la mayor velocidad posible mediante la predicción de palabras , una técnica utilizada hoy en día en los métodos de entrada chinos para computadoras y en la mensajería de texto en muchos idiomas. Según el historiador de la Universidad de Stanford, Thomas Mullaney, el desarrollo de las máquinas de escribir chinas modernas de la década de 1960 a 1970 influyó en el desarrollo de los procesadores de texto de computadora modernos y afectó al desarrollo de las computadoras mismas. [15] [11] [14]
Existen herramientas independientes que añaden la función de autocompletar a las aplicaciones existentes. Estos programas controlan las pulsaciones de teclas del usuario y sugieren una lista de palabras en función de las primeras letras que se escriben. Algunos ejemplos son Typingaid y Letmetype. [16] [17] LetMeType, freeware, ya no se desarrolla, el autor ha publicado el código fuente y permite que cualquiera continúe con el desarrollo. Typingaid, también freeware, se desarrolla activamente. Intellicomplete, tanto una versión freeware como una de pago, funciona sólo en ciertos programas que se conectan al programa servidor Intellicomplete. [18] Muchos programas de autocompletar también se pueden utilizar para crear una lista abreviada . El software de autocompletar original fue Smartype, que data de finales de los años 1980 y todavía está disponible en la actualidad. Inicialmente se desarrolló para transcriptores médicos que trabajaban en WordPerfect para MS/DOS, pero ahora funciona para cualquier aplicación en cualquier programa basado en Windows o Web.
La abreviatura , también llamada reemplazo automático, es una función relacionada que implica el reemplazo automático de una cadena particular por otra, generalmente una que es más larga y más difícil de escribir, como "minombre" por "Lee John Nikolai François Al Rahman". Esto también puede corregir silenciosamente errores de escritura simples , como convertir " teh " en "the". Varios programas de autocompletado, independientes o integrados en editores de texto, basados en listas de palabras, también incluyen una función de abreviatura para frases de uso frecuente. [ cita requerida ]
La finalización de contexto es una función del editor de texto, similar a la finalización de palabras, que completa palabras (o frases enteras) en función del contexto actual y del contexto de otras palabras similares dentro del mismo documento o dentro de algún conjunto de datos de entrenamiento. La principal ventaja de la finalización de contexto es la capacidad de predecir palabras anticipadas con mayor precisión e incluso sin letras iniciales. La principal desventaja es la necesidad de un conjunto de datos de entrenamiento, que normalmente es más grande para la finalización de contexto que para la finalización de palabras más simple. El uso más común de la finalización de contexto se ve en editores de lenguajes de programación avanzados e IDE , donde el conjunto de datos de entrenamiento está inherentemente disponible y la finalización de contexto tiene más sentido para el usuario que la finalización de palabras amplia. [ cita requerida ]
La finalización de línea es un tipo de finalización de contexto, introducido por primera vez por Juraj Simlovic en TED Notepad , en julio de 2006. El contexto en la finalización de línea es la línea actual, mientras que el documento actual se presenta como un conjunto de datos de entrenamiento. Cuando el usuario comienza una línea que comienza con una frase de uso frecuente, el editor la completa automáticamente, hasta la posición en la que difieren las líneas similares, o propone una lista de continuaciones comunes. [ cita requerida ]
La finalización de acciones en aplicaciones son herramientas independientes que agregan la funcionalidad de autocompletar a las aplicaciones existentes o a todas las aplicaciones existentes de un sistema operativo, según el contexto actual. La principal ventaja de la finalización de acciones es la capacidad de predecir acciones anticipadas. La principal desventaja es la necesidad de un conjunto de datos. El uso más común de la finalización de acciones se ve en editores de lenguajes de programación avanzados e IDE . Pero también hay herramientas de finalización de acciones que funcionan globalmente, en paralelo, en todas las aplicaciones de todo el PC sin obstaculizar (en gran medida) la finalización de acciones de las respectivas aplicaciones. [ cita requerida ]
En los navegadores web , el autocompletado se realiza en la barra de direcciones (utilizando elementos del historial del navegador) y en los cuadros de texto de las páginas que se utilizan con frecuencia, como el cuadro de búsqueda de un motor de búsqueda . El autocompletado de direcciones web es especialmente conveniente porque las direcciones completas suelen ser largas y difíciles de escribir correctamente. HTML5 tiene un atributo de formulario de autocompletado. [ cita requerida ]
En los programas de correo electrónico, la función de autocompletar se utiliza normalmente para rellenar las direcciones de correo electrónico de los destinatarios previstos. Por lo general, hay un pequeño número de direcciones de correo electrónico de uso frecuente, por lo que es relativamente fácil utilizar la función de autocompletar para seleccionar entre ellas. Al igual que las direcciones web, las direcciones de correo electrónico suelen ser largas, por lo que escribirlas por completo resulta un inconveniente. [ cita requerida ]
Por ejemplo, Microsoft Outlook Express encontrará direcciones basándose en el nombre que se utiliza en la libreta de direcciones. Gmail de Google encontrará direcciones por cualquier cadena que aparezca en la dirección o en el nombre almacenado. [ cita requerida ]
En los motores de búsqueda, las funciones de autocompletar de la interfaz de usuario ofrecen a los usuarios sugerencias de consultas o resultados a medida que escriben su consulta en el cuadro de búsqueda. Esto también se conoce comúnmente como búsqueda incremental o autocompletar . Este tipo de búsqueda suele depender de algoritmos de coincidencia que perdonan los errores de entrada, como los algoritmos fonéticos Soundex o el algoritmo Levenshtein independiente del lenguaje . El desafío sigue siendo buscar índices grandes o listas de consultas populares en menos de unos pocos milisegundos para que el usuario vea los resultados emergentes mientras escribe.
El autocompletado puede tener un efecto adverso en las personas y las empresas cuando se sugieren términos de búsqueda negativos durante una búsqueda. El autocompletado se ha convertido en parte de la gestión de la reputación , ya que las empresas vinculadas a términos de búsqueda negativos como estafa, quejas y fraude intentan alterar los resultados. Google, en particular, ha enumerado algunos de los aspectos que afectan al funcionamiento de su algoritmo, pero se trata de un área que está abierta a la manipulación. [19]
El autocompletado del código fuente también se conoce como finalización de código . En un editor de código fuente , el autocompletado se simplifica en gran medida gracias a la estructura regular del lenguaje de programación . Por lo general, solo hay un número limitado de palabras significativas en el contexto o espacio de nombres actual , como nombres de variables y funciones. Un ejemplo de finalización de código es el diseño IntelliSense de Microsoft . Implica mostrar una lista emergente de posibles finalizaciones para el prefijo de entrada actual para permitir que el usuario elija la correcta. Esto es particularmente útil en la programación orientada a objetos porque a menudo el programador no sabrá exactamente qué miembros tiene una clase en particular . Por lo tanto, el autocompletado sirve entonces como una forma de documentación conveniente , así como un método de entrada.
Otra característica beneficiosa de la función de autocompletar para el código fuente es que alienta al programador a utilizar nombres de variables más largos y descriptivos, lo que hace que el código fuente sea más legible. Escribir palabras largas que pueden contener mayúsculas y minúsculas puede numberOfWordsPerParagraph
resultar difícil, pero la función de autocompletar permite al programador completar la escritura de la palabra utilizando una fracción de las pulsaciones de teclas.
La función de autocompletar en las herramientas de consulta de bases de datos permite al usuario completar automáticamente los nombres de tabla en una instrucción SQL y los nombres de columna de las tablas a las que se hace referencia en la instrucción SQL. A medida que se escribe texto en el editor , el contexto del cursor dentro de la instrucción SQL proporciona una indicación de si el usuario necesita completar una tabla o una columna de tabla. La función de autocompletar tabla proporciona una lista de tablas disponibles en el servidor de base de datos al que está conectado el usuario. La función de autocompletar columna proporciona una lista de columnas solo para las tablas a las que se hace referencia en la instrucción SQL. SQL Server Management Studio proporciona la función de autocompletar en las herramientas de consulta. [ cita requerida ]
En muchos programas de procesamiento de texto , la función de autocompletar reduce la cantidad de tiempo que se pasa escribiendo palabras y frases repetitivas. El material de origen para la función de autocompletar se obtiene del resto del documento actual o de una lista de palabras comunes definidas por el usuario. Actualmente, Apache OpenOffice , Calligra Suite , KOffice , LibreOffice y Microsoft Office incluyen compatibilidad con este tipo de función de autocompletar, al igual que editores de texto avanzados como Emacs y Vim .
En un intérprete de línea de comandos , como sh o bash de Unix , o cmd.exe o PowerShell de Windows , o en interfaces de línea de comandos similares , el autocompletado de nombres de comandos y nombres de archivos se puede lograr haciendo un seguimiento de todos los nombres posibles de las cosas a las que el usuario puede acceder. Aquí, el autocompletado generalmente se realiza presionando la tecla después de escribir las primeras letras de la palabra. Por ejemplo, si el único archivo en el directorio actual que comienza con x es xLongFileName, el usuario puede preferir escribir x y autocompletar con el nombre completo. Si hubiera otro nombre de archivo o comando que comenzara con x en el mismo ámbito, el usuario escribiría más letras o presionaría la tecla Tab repetidamente para seleccionar el texto apropiado.Tab ↹
Aunque las investigaciones han demostrado que el software de predicción de palabras reduce la cantidad de pulsaciones de teclas necesarias y mejora la productividad escrita de los niños con discapacidades, [2] existen resultados mixtos en cuanto a si la predicción de palabras realmente aumenta o no la velocidad de salida. [20] [21] Se cree que la razón por la que la predicción de palabras no siempre aumenta la velocidad de entrada de texto se debe a la mayor carga cognitiva y al requisito de mover la mirada del teclado al monitor. [2]
Para reducir esta carga cognitiva, se pueden utilizar parámetros como reducir la lista a cinco palabras probables y tener una disposición vertical de esas palabras. [2] La disposición vertical tiene como objetivo mantener los movimientos de la cabeza y los ojos al mínimo, y también proporciona pistas visuales adicionales porque la longitud de la palabra se hace evidente. [22] Aunque muchos desarrolladores de software creen que si la lista de predicción de palabras sigue al cursor , esto reducirá los movimientos oculares, [2] en un estudio de niños con espina bífida realizado por Tam, Reid, O'Keefe y Nauman (2002) se demostró que escribir era más preciso y que los niños también preferían cuando la lista aparecía en el borde inferior de la pantalla, en la línea media. Varios estudios han descubierto que el rendimiento y la satisfacción de la predicción de palabras aumentan cuando la lista de palabras está más cerca del teclado, debido a la menor cantidad de movimientos oculares necesarios. [23]
El software con predicción de palabras es producido por varios fabricantes. El software se puede comprar como complemento de programas comunes como Microsoft Word (por ejemplo, WordQ+SpeakQ , Typing Assistant, [24] Co:Writer, [ cita requerida ] Wivik, [ cita requerida ] Ghotit Dyslexia), [ cita requerida ] o como una de las muchas funciones de un dispositivo AAC (Pathfinder de PRC, [ cita requerida ] Dynavox Systems, [ cita requerida ] los productos ChatPC de Saltillo [ cita requerida ] ). Algunos programas conocidos: Intellicomplete, [ cita requerida ] que está disponible tanto en versión freeware como de pago, pero solo funciona con programas diseñados para funcionar con él. Letmetype [ cita requerida ] y Typingaid [ cita requerida ] son programas freeware que funcionan en cualquier editor de texto.
Una primera versión del autocompletado fue descrita en 1967 por H. Christopher Longuet-Higgins en su Computer-Assisted Typewriter (CAT), [25] "palabras como 'BEGIN' o 'PROCEDURE' o identificadores introducidos por el programador, serían completados automáticamente por el CAT después de que el programador hubiera escrito sólo uno o dos símbolos".