
Autocomplete, or word completion, is a feature in which an
application predicts the rest of a word a user is typing. In
Android and
iOS smartphone
A smartphone is a mobile phone with advanced computing capabilities. It typically has a touchscreen interface, allowing users to access a wide range of applications and services, such as web browsing, email, and social media, as well as multi ...
s, this is called predictive text. In
graphical user interface
A graphical user interface, or GUI, is a form of user interface that allows user (computing), users to human–computer interaction, interact with electronic devices through Graphics, graphical icon (computing), icons and visual indicators such ...
s, users can typically press the
tab key to accept a suggestion or the down
arrow key to accept one of several.
Autocomplete speeds up
human-computer interactions when it correctly predicts the word a user intends to enter after only a few characters have been typed into a text input field. It works best in domains with a limited number of possible words (such as in
command line interpreters), when some words are much more common (such as when addressing an
e-mail), or writing structured and predictable text (as in
source code editors).
Many autocomplete
algorithm
In mathematics and computer science, an algorithm () is a finite sequence of Rigour#Mathematics, mathematically rigorous instructions, typically used to solve a class of specific Computational problem, problems or to perform a computation. Algo ...
s learn new words after the user has written them a few times, and can suggest alternatives based on the learned habits of the individual user.
Definition
Original purpose
The original purpose of word prediction software was to help people with
physical disabilities increase their typing speed,
as well as to help them decrease the number of keystrokes needed in order to complete a word or a sentence.
The need to increase speed is noted by the fact that people who use
speech-generating devices generally produce speech at a rate that is less than 10% as fast as people who use oral speech.
But the function is also very useful for anybody who writes text, particularly people–such as medical doctors–who frequently use long, hard-to-spell terminology that may be technical or medical in nature.
Description
Autocomplete or word completion works so that when the writer writes the first letter or letters of a word, the program predicts one or more possible words as choices. If the intended word is included in the list, the writer can select it, for example, by using the number keys. If the word that the user wants is not predicted, the writer must enter the next letter of the word. At this time, the word choice(s) is altered so that the words provided begin with the same letters as those that have been selected. When the word that the user wants appears it is selected, and the word is inserted into the text.
In another form of word prediction, words most likely to follow the just written one are predicted, based on recent word pairs used.
Word prediction uses
language modeling, where within a set vocabulary the words are most likely to occur are calculated. Along with language modeling, basic word prediction on
AAC devices is often coupled with a
frecency model, where words the AAC user has used recently and frequently are more likely to be predicted.
[ Word prediction software often also allows the user to enter their own words into the word prediction dictionaries either directly, or by "learning" words that have been written.] Some search returns related to genitals or other vulgar terms are often omitted from autocompletion technologies, as are morbid terms
History
The autocomplete and predictive text technology was invented by Chinese scientists and linguists in the 1950s to solve the input inefficiency of the Chinese typewriter, as the typing process involved finding and selecting thousands of logographic characters on a tray, drastically slowing down the word processing speed.
In the 1950s, typists came to rearrange the character layout from the standard dictionary layout to groups of common words and phrases. Chinese typewriter engineers innovated mechanisms to access common characters accessible at the fastest speed possible by word prediction, a technique used today in Chinese input methods for computers, and in text messaging in many languages. According to Stanford University
Leland Stanford Junior University, commonly referred to as Stanford University, is a Private university, private research university in Stanford, California, United States. It was founded in 1885 by railroad magnate Leland Stanford (the eighth ...
historian Thomas Mullaney, the development of modern Chinese typewriters from the 1960s to 1970s influenced the development of modern computer word processors and affected the development of computers themselves.
Types of autocomplete tools
There are standalone tools that add autocomplete functionality to existing applications. These programs monitor user keystrokes and suggest a list of words based on first typed letter(s). Examples are Typingaid and Letmetype. LetMeType, freeware, is no longer developed, the author has published the source code and allows anybody to continue development. Typingaid, also freeware, is actively developed. Intellicomplete, both a freeware and payware version, works only in certain programs which hook into the intellicomplete server program. Many Autocomplete programs can also be used to create a Shorthand
Shorthand is an abbreviated symbolic writing method that increases speed and brevity of writing as compared to Cursive, longhand, a more common method of writing a language. The process of writing in shorthand is called stenography, from the Gr ...
list. The original autocomplete software was Smartype, which dates back to the late 1980s and is still available today. It was initially developed for medical transcriptionists working in WordPerfect for MS/DOS, but it now functions for any application in any Windows or Web-based program.
Shorthand
Shorthand
Shorthand is an abbreviated symbolic writing method that increases speed and brevity of writing as compared to Cursive, longhand, a more common method of writing a language. The process of writing in shorthand is called stenography, from the Gr ...
, also called Autoreplace, is a related feature that involves automatic replacement of a particular string with another one, usually one that is longer and harder to type, such as "myname" with "Lee John Nikolai François Al Rahman". This can also quietly fix simple typing errors, such as turning " teh" into "the". Several Autocomplete programs, standalone or integrated in text editors, based on word lists, also include a shorthand function for often used phrases.
Context completion
Context completion is a text editor feature, similar to word completion, which completes words (or entire phrases) based on the current context and context of other similar words within the same document, or within some training data set. The main advantage of context completion is the ability to predict anticipated words more precisely and even with no initial letters. The main disadvantage is the need of a training data set, which is typically larger for context completion than for simpler word completion. Most common use of context completion is seen in advanced programming language editors and IDEs, where training data set is inherently available and context completion makes more sense to the user than broad word completion would.
Line completion is a type of context completion, first introduced by Juraj Simlovic in TED Notepad, in July 2006. The context in line completion is the current line, while the current document poses as a training data set. When the user begins a line that starts with a frequently used phrase, the editor automatically completes it, up to the position where similar lines differ, or proposes a list of common continuations.
Action completion in applications are standalone tools that add autocomplete functionality to existing applications or all existing applications of an OS, based on the current context. The main advantage of Action completion is the ability to predict anticipated actions. The main disadvantage is the need of a data set. Most common use of Action completion is seen in advanced programming language editors and IDEs. But there are also action completion tools that work globally, in parallel, across all applications of the entire PC without (very) hindering the action completion of the respective applications.
Software integration
In web browsers
In web browser
A web browser, often shortened to browser, is an application for accessing websites. When a user requests a web page from a particular website, the browser retrieves its files from a web server and then displays the page on the user's scr ...
s, autocomplete is done in the address bar (using items from the browser's history) and in text boxes on frequently used pages, such as a search engine
A search engine is a software system that provides hyperlinks to web pages, and other relevant information on World Wide Web, the Web in response to a user's web query, query. The user enters a query in a web browser or a mobile app, and the sea ...
's search box. Autocomplete for web addresses is particularly convenient because the full addresses are often long and difficult to type correctly.
In web forms
Autocompletion or "autofill" is frequently found in web browsers, used to fill in web forms automatically. When a user inputs data into a form and subsequently submits it, the web browser will often save the form's contents by default.
This feature is commonly used to fill in login credentials. However, when a password field is detected, the web browser will typically ask the user for explicit confirmation before saving the password in its password store, often secured with a built-in password manager
A password manager is a software program to prevent password fatigue by Random password generator, automatically generating, Autofill, autofilling and storing Password, passwords. It can do this for Application software, local applications or web ...
to allow the use of a "master password" before credentials can be autofilled.
Most of the time, such as in Internet Explorer and Google Toolbar, the entries depend on the form field's name, so as to not enter street names in a last name field or vice versa. For this use, proposed names for such form fields, in earlier HTML 5 specifications this RFC is no longer referenced, thus leaving the selection of names up to each browser's implementation.
Certain web browsers such as Opera
Opera is a form of History of theatre#European theatre, Western theatre in which music is a fundamental component and dramatic roles are taken by Singing, singers. Such a "work" (the literal translation of the Italian word "opera") is typically ...
automatically autofill credit card information and addresses.
An individual webpage may enable or disable browser autofill by default. This is done in HTML
Hypertext Markup Language (HTML) is the standard markup language for documents designed to be displayed in a web browser. It defines the content and structure of web content. It is often assisted by technologies such as Cascading Style Sheets ( ...
with the autocomplete
attribute in a <form>
element or its corresponding form elements.
It has been shown that the autofill feature of modern browsers can be exploited in a phishing attack with the use of hidden form fields, which allows personal information such as the user's phone number to be collected.
In e-mail programs
In e-mail programs autocomplete is typically used to fill in the e-mail addresses of the intended recipients. Generally, there are a small number of frequently used e-mail addresses, hence it is relatively easy to use autocomplete to select among them. Like web addresses, e-mail addresses are often long, hence typing them completely is inconvenient.
For instance, Microsoft Outlook Express will find addresses based on the name that is used in the address book. Google
Google LLC (, ) is an American multinational corporation and technology company focusing on online advertising, search engine technology, cloud computing, computer software, quantum computing, e-commerce, consumer electronics, and artificial ...
's Gmail
Gmail is the email service provided by Google. it had 1.5 billion active user (computing), users worldwide, making it the largest email service in the world. It also provides a webmail interface, accessible through a web browser, and is also ...
will find addresses by any string that occurs in the address or stored name.
In search engines
In search engines, autocomplete user interface features provide users with suggested queries or results as they type their query in the search box. This is also commonly called ''autosuggest'' or '' incremental search''. This type of search often relies on matching algorithms that forgive entry errors such as phonetic Soundex algorithms or the language independent Levenshtein algorithm. The challenge remains to search large indices or popular query lists in under a few milliseconds so that the user sees results pop up while typing.
Autocomplete can have an adverse effect on individuals and businesses when negative search terms are suggested when a search takes place. Autocomplete has now become a part of reputation management as companies linked to negative search terms such as scam, complaints and fraud seek to alter the results. Google in particular have listed some of the aspects that affect how their algorithm works, but this is an area that is open to manipulation.
In source code editors
Autocompletion of source code is also known as code completion. In a source code editor, autocomplete is greatly simplified by the regular structure of the programming language
A programming language is a system of notation for writing computer programs.
Programming languages are described in terms of their Syntax (programming languages), syntax (form) and semantics (computer science), semantics (meaning), usually def ...
. There are usually only a limited number of words meaningful in the current context or namespace
In computing, a namespace is a set of signs (''names'') that are used to identify and refer to objects of various kinds. A namespace ensures that all of a given set of objects have unique names so that they can be easily identified.
Namespaces ...
, such as names of variables and functions. An example of code completion is Microsoft
Microsoft Corporation is an American multinational corporation and technology company, technology conglomerate headquartered in Redmond, Washington. Founded in 1975, the company became influential in the History of personal computers#The ear ...
's IntelliSense design. It involves showing a pop-up list of possible completions for the current input prefix to allow the user to choose the right one. This is particularly useful in object-oriented programming
Object-oriented programming (OOP) is a programming paradigm based on the concept of '' objects''. Objects can contain data (called fields, attributes or properties) and have actions they can perform (called procedures or methods and impl ...
because often the programmer will not know exactly what members
Member may refer to:
* Military jury, referred to as "Members" in military jargon
* Element (mathematics), an object that belongs to a mathematical set
* In object-oriented programming, a member of a class
** Field (computer science), entries in ...
a particular class
Class, Classes, or The Class may refer to:
Common uses not otherwise categorized
* Class (biology), a taxonomic rank
* Class (knowledge representation), a collection of individuals or objects
* Class (philosophy), an analytical concept used d ...
has. Therefore, autocomplete then serves as a form of convenient documentation
Documentation is any communicable material that is used to describe, explain or instruct regarding some attributes of an object, system or procedure, such as its parts, assembly, installation, maintenance, and use. As a form of knowledge managem ...
as well as an input method.
Another beneficial feature of autocomplete for source code is that it encourages the programmer to use longer, more descriptive variable names, hence making the source code
In computing, source code, or simply code or source, is a plain text computer program written in a programming language. A programmer writes the human readable source code to control the behavior of a computer.
Since a computer, at base, only ...
more readable. Typing large words which may contain camel case like numberOfWordsPerParagraph
can be difficult, but autocomplete allows a programmer to complete typing the word using a fraction of the keystrokes.
In database query tools
Autocompletion in database query tools allows the user to autocomplete the table names in an SQL statement and column names of the tables referenced in the SQL statement. As text is typed into the editor, the context of the cursor within the SQL statement provides an indication of whether the user needs a table completion or a table column completion. The table completion provides a list of tables available in the database server the user is connected to. The column completion provides a list of columns for only tables referenced in the SQL statement. SQL Server Management Studio provides autocomplete in query tools.
In word processors
In many word processing A word processor (WP) is a device or computer program that provides for input, editing, formatting, and output of text, often with some additional features.
Word processor (electronic device), Early word processors were stand-alone devices dedicate ...
programs, autocompletion decreases the amount of time spent typing repetitive words and phrases. The source material for autocompletion is either gathered from the rest of the current document or from a list of common words defined by the user. Currently Apache OpenOffice, Calligra Suite, KOffice, LibreOffice and Microsoft Office include support for this kind of autocompletion, as do advanced text editors such as Emacs
Emacs (), originally named EMACS (an acronym for "Editor Macros"), is a family of text editors that are characterized by their extensibility. The manual for the most widely used variant, GNU Emacs, describes it as "the extensible, customizable, s ...
and Vim.
* Apache OpenOffice Writer and LibreOffice Writer
LibreOffice Writer is the free and open-source Word processor program, word processor and desktop publishing component of the LibreOffice suite and is a Fork (software development), fork of OpenOffice.org#Components, OpenOffice.org Writer. Writer ...
have a working word completion program that proposes words previously typed in the text, rather than from the whole dictionary
* Microsoft Excel
Microsoft Excel is a spreadsheet editor developed by Microsoft for Microsoft Windows, Windows, macOS, Android (operating system), Android, iOS and iPadOS. It features calculation or computation capabilities, graphing tools, pivot tables, and a ...
spreadsheet application has a working word completion program that proposes words previously typed in upper cells
In command-line interpreters
In a command-line interpreter, such as Unix
Unix (, ; trademarked as UNIX) is a family of multitasking, multi-user computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, a ...
's sh or bash, or Windows
Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
's cmd.exe or PowerShell
PowerShell is a shell program developed by Microsoft for task automation and configuration management. As is typical for a shell, it provides a command-line interpreter for interactive use and a script interpreter for automation via a langu ...
, or in similar command line interfaces, autocomplete of command names and file names may be accomplished by keeping track of all the possible names of things the user may access. Here autocomplete is usually done by pressing the key after typing the first several letters of the word. For example, if the only file in the current directory that starts with x is xLongFileName, the user may prefer to type x and autocomplete to the complete name. If there were another file name or command starting with x in the same scope, the user would type more letters or press the Tab key repeatedly to select the appropriate text.
Efficiency
Research
Although research has shown that word prediction software does decrease the number of keystrokes needed and improves the written productivity of children with disabilities,[ there are mixed results as to whether or not word prediction actually increases speed of output. It is thought that the reason why word prediction does not always increase the rate of text entry is because of the increased cognitive load and requirement to move eye gaze from the keyboard to the monitor.][
In order to reduce this cognitive load, parameters such as reducing the list to five likely words, and having a vertical layout of those words may be used.][ The vertical layout is meant to keep head and eye movements to a minimum, and also gives additional visual cues because the word length becomes apparent. Although many software developers believe that if the word prediction list follows the cursor, that this will reduce eye movements,][ in a study of children with spina bifida by Tam, Reid, O'Keefe & Nauman (2002) it was shown that typing was more accurate, and that the children also preferred when the list appeared at the bottom edge of the screen, at the midline. Several studies have found that word prediction performance and satisfaction increases when the word list is closer to the keyboard, because of the decreased amount of eye-movements needed.
Software with word prediction is produced by multiple manufacturers. The software can be bought as an add-on to common programs such as ]Microsoft Word
Microsoft Word is a word processor program, word processing program developed by Microsoft. It was first released on October 25, 1983, under the name Multi-Tool Word for Xenix systems. Subsequent versions were later written for several other platf ...
(for example, WordQ+SpeakQ, Typing Assistant, Co:Writer, Wivik, Ghotit Dyslexia), or as one of many features on an AAC device (PRC's Pathfinder, Dynavox Systems, Saltillo's ChatPC products). Some well known programs: Intellicomplete, which is available in both a freeware and a payware version, but works only with programs which are made to work with it. Letmetype and Typingaid are both freeware programs which work in any text editor.
An early version of autocompletion was described in 1967 by H. Christopher Longuet-Higgins in his Computer-Assisted Typewriter (CAT), "such words as 'BEGIN' or 'PROCEDURE' or identifiers introduced by the programmer, would be automatically completed by the CAT after the programmer had typed only one or two symbols."
See also
* , automatic correction of misspelled words.
*
*
*
*
*
*
*
*
*
*
*
References
External links
{{Wiktionary
Live Search Explained
��Examples and explanations of working web examples plus a discussion of the usability benefits compared to traditional search.
Google Feud
��The first and most popular of many games built using autocomplete data, which won a Webby Award for "Best Game" in 2016.
Mimicking Google's Search Autocomplete With a Single MigratoryData Server
��Optimize search autocomplete using persistent WebSocket connections to achieve both low-latency search experience and bandwidth improvement.
Assistive technology
Disability software