Autocompletar - Autocomplete

Autocompletar , o completar 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, 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.

Autocompletar acelera las interacciones entre humanos y computadoras cuando predice correctamente la palabra que un usuario intenta ingresar después de que solo se hayan ingresado unos pocos caracteres en un campo de ingreso 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 envía un correo electrónico ) o cuando se escribe texto estructurado y predecible (como en el código fuente). editores ).

Muchos algoritmos de autocompletar aprenden nuevas palabras después de que el usuario las ha escrito varias veces y pueden sugerir alternativas basadas en los hábitos aprendidos del usuario individual.

Definición

Propósito original

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, así como ayudarlas a disminuir la cantidad de pulsaciones de teclas necesarias para completar una palabra o una oración. La necesidad de aumentar la velocidad se observa por el hecho de que las personas que utilizan dispositivos generadores de voz generalmente producen el habla a una velocidad inferior al 10% más rápida que las personas que utilizan el habla oral. Pero la función también es muy útil para cualquiera que escriba un texto, en particular para las personas, como los médicos, que con frecuencia utilizan terminología larga y difícil de escribir que puede ser de naturaleza técnica o médica.

Descripción

Autocompletar o completar 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 que pretende escribir está incluida en la lista, puede seleccionarla, por ejemplo, utilizando las teclas numéricas. Si no se predice la palabra que el usuario desea, el escritor debe ingresar la siguiente letra de la palabra. En este momento, las opciones de palabras se modifican para que las palabras proporcionadas comiencen con las mismas letras que las seleccionadas. Cuando aparece la palabra que el usuario desea, se selecciona y se inserta la palabra en el texto. En otra forma de predicción de palabras, las palabras con mayor probabilidad de seguir a la que se acaba de escribir se predicen, en función de los pares de palabras utilizados recientemente. La predicción de palabras utiliza modelos de lenguaje , donde dentro de un vocabulario establecido se calculan las palabras con mayor probabilidad de ocurrir. Junto con el modelado del lenguaje, la predicción básica de palabras en dispositivos AAC a menudo se combina con un modelo de frecuencia , donde las palabras que el usuario de AAC ha utilizado recientemente y con frecuencia tienen más probabilidades de predecirse. El software de predicción de palabras a menudo también permite al usuario ingresar sus propias palabras en los diccionarios de predicción de palabras, ya sea directamente o "aprendiendo" palabras que se han escrito. Algunos resultados de búsqueda relacionados con los genitales u otros términos vulgares a menudo se omiten de las tecnologías de autocompletado, al igual que los términos mórbidos.

Herramientas independientes

Hay herramientas independientes que agregan la funcionalidad de autocompletar a las aplicaciones existentes. Estos programas monitorean las pulsaciones de teclas del usuario y sugieren una lista de palabras basada en las primeras letras escritas. Algunos ejemplos son Typingaid y Letmetype. 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 gratuita como una de pago, funciona solo en ciertos programas que se conectan al programa del servidor intellicomplete. Muchos programas de Autocompletar también se pueden utilizar para crear una lista abreviada . El software de autocompletar original fue Smartype, que se remonta a finales de la década de 1980 y todavía está disponible en la actualidad. Inicialmente fue desarrollado para transcriptores médicos que trabajan en WordPerfect para MS / DOS, pero ahora funciona para cualquier aplicación en cualquier programa basado en Windows o Web.

Taquigrafía

La taquigrafía , también llamada Autoreplace, es una función relacionada que implica el reemplazo automático de una cadena en particular por otra, generalmente una que es más larga y más difícil de escribir, como "myname" con "Lee John Nikolai François Al Rahman". Esto también puede corregir silenciosamente errores simples de escritura , como convertir " teh " en "the". Varios programas de Autocompletar, independientes o integrados en editores de texto, basados ​​en listas de palabras, también incluyen una función de taquigrafía para frases de uso frecuente.

Completar el contexto

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 completas) según el contexto actual y el contexto de otras palabras similares dentro del mismo documento o dentro de algún conjunto de datos de entrenamiento. La principal ventaja de completar el 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 completar el contexto que para completar palabras más simples. El uso más común de la finalización del contexto se ve en los IDE y los editores de lenguajes de programación avanzados , donde el conjunto de datos de entrenamiento está inherentemente disponible y la finalización del contexto tiene más sentido para el usuario que la finalización amplia de palabras.

La finalización de línea es un tipo de finalización de contexto, presentada 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 hace pasar por 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 las líneas similares difieren, o propone una lista de continuaciones comunes.

La finalización de acciones en las aplicaciones son herramientas independientes que agregan la funcionalidad de autocompletar a una aplicación existente o 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 los IDE y los editores de lenguajes de programación avanzados . Pero también hay herramientas de finalización de acciones que funcionan globalmente, en paralelo, en todas las aplicaciones de toda la PC sin (mucho) obstaculizar la finalización de acciones de las aplicaciones respectivas.

Uso por software

En navegadores web

Autocompletar del cuadro de búsqueda en Mozilla Firefox

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 de uso frecuente, como el cuadro de búsqueda de un motor de búsqueda. La función de autocompletar para direcciones web es particularmente conveniente porque las direcciones completas suelen ser largas y difíciles de escribir correctamente. HTML5 tiene un atributo de formulario de autocompletado.

En programas de correo electrónico

En los programas de correo electrónico, el autocompletado se usa típicamente para completar las direcciones de correo electrónico de los destinatarios previstos. Generalmente, hay una pequeña cantidad 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 es un inconveniente.

Por ejemplo, Microsoft Outlook Express encontrará direcciones basadas en el nombre que se utiliza en la libreta de direcciones. Google 's Gmail encontrará direcciones de cualquier cadena que se produce en la dirección o el nombre almacenado.

En buscadores

En los motores de búsqueda, las funciones de la interfaz de usuario de autocompletar proporcionan a los usuarios consultas o resultados sugeridos a medida que escriben su consulta en el cuadro de búsqueda. Esto también se conoce comúnmente como autosugestión o búsqueda incremental . Este tipo de búsqueda a menudo se basa en algoritmos de coincidencia que perdonan los errores de entrada, como los algoritmos fonéticos de Soundex o el algoritmo de Levenshtein independiente del idioma . 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.

La función de autocompletar puede tener un efecto adverso en las personas y las empresas cuando se sugieren términos de búsqueda negativos cuando se realiza una búsqueda. El autocompletado se ha convertido ahora 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 buscan alterar los resultados. Google, en particular, ha enumerado algunos de los aspectos que afectan el funcionamiento de su algoritmo, pero esta es un área que está abierta a la manipulación.

En editores de código fuente

Finalización de código en Qt Creator 5.0: el programador escribe algún código, y cuando el software detecta una cadena reconocible, como un identificador de variable o un nombre de clase, presenta un menú al programador que contiene el nombre completo de la variable identificada o los métodos aplicables a la clase detectada, y el programador hace una elección con su mouse o con las teclas de flecha del teclado. Si el programador continúa escribiendo sin hacer una elección, el menú desaparece

El autocompletado de 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 por la estructura regular de los lenguajes 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 al usuario elegir el correcto. 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, la función de autocompletar sirve como una forma de documentación conveniente, así como también como un método de entrada. Otra característica beneficiosa del autocompletado para el código fuente es que alienta a los programadores a usar nombres de variables más largos y descriptivos que incorporan letras mayúsculas y minúsculas ( CamelCase ), lo que hace que el código fuente sea más legible. Escribir palabras grandes con muchos casos mixtos como "numberOfWordsPerParagraph" puede ser difícil, pero Autocompletar permite completar la escritura de la palabra usando una fracción de las pulsaciones de tecla.

En herramientas de consulta de bases de datos

El autocompletado en las herramientas de consulta de la base de datos permite al usuario autocompletar los nombres de las tablas en una declaración SQL y los nombres de las columnas de las tablas a las que se hace referencia en la declaració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 completar una columna de la tabla. La finalización de la tabla proporciona una lista de tablas disponibles en el servidor de base de datos al que está conectado el usuario. La finalización de la 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 autocompletar en herramientas de consulta.

En procesadores de texto

En muchos programas de procesamiento de texto , el autocompletado disminuye la cantidad de tiempo que se dedica a escribir palabras y frases repetitivas. El material de origen para el autocompletado se recopila 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 soporte para este tipo de autocompletado, al igual que los editores de texto avanzados como Emacs y Vim .

  • Apache OpenOffice Writer y LibreOffice Writer tienen un programa de finalización de palabras en funcionamiento que propone palabras previamente escritas en el texto, en lugar de todo el diccionario.
  • La aplicación de hoja de cálculo de Microsoft Excel tiene un programa de trabajo de completar palabras que propone palabras previamente escritas en las celdas superiores

En intérpretes de línea de comandos

Finalización de la línea de comandos en PowerShell .

En un intérprete de línea de comandos , tales como Unix 's sh o fiesta , o de Windows ' s cmd.exe o PowerShell , o similares en las interfaces de línea de comandos , autocompletado de nombres de comandos y nombres de archivos se puede realizar mediante el seguimiento de todos los posibles nombres de las cosas a las que el usuario puede acceder. Aquí, el autocompletado generalmente se realiza presionando la Tab ↹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 hasta el nombre completo. Si hubiera otro nombre de archivo o comando que comience 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.

Eficiencia

Parámetros de eficiencia

La eficiencia de la terminación de palabras se basa en la longitud promedio de las palabras escritas. Si, por ejemplo, el texto consta de lenguajes de programación que a menudo tienen nombres largos de varias palabras para variables, funciones o clases, la finalización es útil y se aplica generalmente en editores especialmente dirigidos a programadores como Vim .

En diferentes idiomas, la longitud de las palabras puede diferir dramáticamente. Retomando el ejemplo anterior, un jugador de fútbol en alemán se traduce como "Fussballspieler", con una longitud de 15 caracteres. Este ejemplo ilustra que el inglés no es el idioma más eficaz para WC; Este estudio muestra que la longitud media de las palabras en inglés en un corpus de más de 100.000 palabras es de 8,93, la del checo es de 10,55 y la del alemán es de 13,24. Además, en algunos idiomas como el alemán llamados idiomas fusionales , así como idiomas aglutinantes , las palabras se pueden combinar, creando palabras aún más largas.

Los autores que a menudo usan palabras muy largas, como médicos y químicos, obviamente usan aún más el software de Autocompletar (Completar palabras) que otros autores.

Investigar

Aunque la investigación ha demostrado que el software de predicción de palabras disminuye el número de pulsaciones de teclas necesarias y mejora la productividad escrita de los niños con discapacidades, existen resultados mixtos en cuanto a si la predicción de palabras realmente aumenta o no la velocidad de salida. 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 desde el teclado al monitor.

Para reducir esta carga cognitiva, se pueden utilizar parámetros como reducir la lista a cinco palabras probables y tener un diseño vertical de esas palabras. El diseño vertical está destinado a mantener los movimientos de la cabeza y los ojos al mínimo, y también proporciona señales visuales adicionales porque la longitud de la palabra se hace evidente. Aunque muchos desarrolladores de software creen que si la lista de predicción de palabras sigue al cursor , esto reducirá los movimientos oculares, en un estudio de niños con espina bífida realizado por Tam, Reid, O'Keefe & Nauman (2002) se demostró que escribir era más precisa, 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 encontrado 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.

Varios fabricantes producen software con predicción de palabras. El software se puede comprar como complemento de programas comunes como Microsoft Word (por ejemplo, WordQ + SpeakQ , Typing Assistant, Co: Writer, Wivik, Ghotit Dyslexia) o como una de las muchas funciones de un dispositivo AAC (PRC Pathfinder, Dynavox Systems, productos ChatPC de Saltillo). Algunos programas bien conocidos: Intellicomplete, que está disponible tanto en versión gratuita como en versión de pago, pero solo funciona con programas que están diseñados para funcionar con él. Letmetype y Typingaid son programas gratuitos 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), “palabras como 'BEGIN' o 'PROCEDURE' o identificadores introducidos por el programador, serían automáticamente completadas por el CAT después de que el programador haya escrito solo uno o dos símbolos ".

Ver también

Referencias

enlaces externos