stringtranslate.com

Autocompletar

Ejemplo de un término de búsqueda parcialmente escrito baby stque se completa automáticamente con varias opciones

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.

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, [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.

Descripción

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]

Historia

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]

Tipos de herramientas de autocompletar

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.

Taquigrafía

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 ]

Completar 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 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 ]

Integración de software

En navegadores web

Autocompletar el 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 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 programas de correo electrónico

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

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]

En editores de código fuente

Completado de código en Qt Creator 5.0: El programador escribe un 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 realiza una elección con el ratón o con las teclas de flecha del teclado. Si el programador continúa escribiendo sin hacer una elección, el menú desaparece.

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 numberOfWordsPerParagraphresultar 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.

En herramientas de consulta de bases de datos

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 procesadores de texto

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 intérpretes de línea de comandos

Completar línea de comandos en PowerShell .

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 ↹

Eficiencia

Investigación

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".

Véase también

Referencias

  1. ^ "Cómo utilizar la función de autocorrección y el texto predictivo en tu iPhone, iPad o iPod touch". Soporte técnico de Apple . Apple.
  2. ^ abcde Tam, Cynthia; Wells, David (2009). "Evaluación de los beneficios de mostrar listas de predicción de palabras en un asistente digital personal a nivel de teclado". Tecnología de asistencia . 21 (3): 105–114. doi :10.1080/10400430903175473. PMID  19908678. S2CID  23183632.
  3. ^ Anson, D.; Moist, P.; Przywara, M.; Wells, H.; Saylor, H.; Maxime, H. (2006). "Los efectos de la finalización de palabras y la predicción de palabras en las velocidades de escritura mediante teclados en pantalla". Tecnología de asistencia . 18 (2): 146–154. doi :10.1080/10400435.2006.10131913. PMID  17236473. S2CID  11193172.
  4. ^ ab Trnka, K.; Yarrington, JM; McCoy, KF (2007). "Los efectos de la predicción de palabras en la tasa de comunicación para CAA". NAACL-Short '07: Human Language Technologies 2007: La conferencia del Capítulo norteamericano de la Asociación de Lingüística Computacional . Vol. Volumen complementario, Artículos breves. Asociación de Lingüística Computacional. págs. 173–6. CiteSeerX 10.1.1.363.2416 . 
  5. ^ ab Beukelman, DR; Mirenda, P. (2005). Comunicación aumentativa y alternativa: apoyo a niños y adultos con necesidades de comunicación complejas (3.ª ed.). Baltimore, MD: Brookes. pág. 77. ISBN 9781557666840.OCLC 254228982  .
  6. ^ abc Witten, IH; Darragh, John J. (1992). El teclado reactivo. Cambridge University Press. págs. 43–44. ISBN 978-0-521-40375-7.
  7. ^ Jelinek, F. (1990). "Modelado del lenguaje autoorganizado para el reconocimiento de voz". En Waibel, A.; Lee, Kai-Fu (eds.). Lecturas en reconocimiento de voz . Morgan Kaufmann. pág. 450. ISBN 9781558601246.
  8. ^ Oster, Jan (2015). "Comunicación, difamación y responsabilidad de los intermediarios". Estudios jurídicos . 35 (2): 348–368. doi :10.1111/lest.12064. S2CID  143005665.
  9. ^ McCulloch, Gretchen (11 de febrero de 2019). «Autocomplete Presents the Best Version of You» (Autocompletar presenta la mejor versión de ti). Wired . Consultado el 11 de febrero de 2019 .
  10. ^ Mcclure, Max (12 de noviembre de 2012). "La máquina de escribir china anticipó el texto predictivo, según un historiador".
  11. ^ ab Sorrel, Charlie (23 de febrero de 2009). "Cómo funciona: la máquina de escribir china". Wired .
  12. ^ Greenwood, Veronique (14 de diciembre de 2016). «Por qué el texto predictivo nos hace olvidar cómo escribir». New Scientist .
  13. ^ O'Donovan, Caroline (16 de agosto de 2016). "Cómo esta tecnología de hace décadas marcó el comienzo del texto predictivo". Buzzfeed .
  14. ^ ab Mullaney, Thomas S. (16 de julio de 2018). «90.000 caracteres en un teclado». Foreign Policy . Consultado el 25 de abril de 2020 .
  15. ^ Investigación destacada: La primera historia de la máquina de escribir china en el mundo, Humanidades en Stanford, 2 de enero de 2010
  16. ^ "[AHK 1.1] TypingAid v2.22.0 — Utilidad de autocompletado de palabras". AutoHotkey. 2010.
  17. ^ Clasohm, Carsten (2011). "LetMeType". Archivado desde el original el 27 de mayo de 2012. Consultado el 9 de mayo de 2012 .
  18. ^ "Software de transcripción médica: IntelliComplete". FlashPeak. 2014.
  19. ^ Davids, Neil (3 de junio de 2015). "Cambiar las sugerencias de búsqueda de autocompletar". Reputation Station . Consultado el 19 de junio de 2015 .
  20. ^ Dabbagh, HH; Damper, RI (1985). "Longitud y tiempo de selección promedio como predictores de la tasa de comunicación". En Brubaker, C.; Hobson, DA (eds.). Tecnología, un puente hacia la independencia: Actas de la Octava Conferencia Anual sobre Tecnología de Rehabilitación, Memphis, Tennessee, 24-28 de junio de 1985. Sociedad de Ingeniería de Rehabilitación de Norteamérica. págs. 404-406. OCLC  15055289. 80177b42-e668-4ed5-a256-49b9440bdfa5.
  21. ^ Goodenough-Trepagnier, C.; Rosen, MJ (1988). "Evaluación predictiva para la prescripción de ayudas para la comunicación: tasa máxima de comunicación determinada por el motor". En Bernstein, LE (ed.). Personas con discapacidad vocal: práctica clínica e investigación . Filadelfia: Grune & Stratton. págs. 165–185. ISBN 9780808919087.OCLC 567938402  .como se cita en Tam & Wells 2009
  22. ^ Swiffin, AL; Arnott, JL; Pickering, JA; Newell, AF (1987). "Técnicas adaptativas y predictivas en una prótesis de comunicación". Comunicación aumentativa y alternativa . 3 (4): 181–191. doi :10.1080/07434618712331274499.como se cita en Tam & Wells 2009
  23. ^ Tam, C.; Reid, D.; Naumann, S.; O'Keefe, B. (2002). "Beneficios percibidos de la intervención de predicción de palabras en la productividad escrita en niños con espina bífida e hidrocefalia". Occupational Therapy International . 9 (3): 237–255. doi : 10.1002/oti.167 . PMID  12374999.como se cita en Tam & Wells 2009.
  24. ^ Sumit Software (2010). "Typing Assistant – New generation of word prediction software" (Asistente de mecanografía: nueva generación de software de predicción de palabras). PRLog: distribución de notas de prensa.
  25. ^ Longuet-Higgins, HC; Ortony, A. (1968). "La memorización adaptativa de secuencias". Machine Intelligence 3, Actas del tercer taller anual sobre inteligencia artificial, Universidad de Edimburgo, septiembre de 1967. Edinburgh University Press. págs. 311–322.

Enlaces externos