Автозаполнение - Autocomplete

Автозаполнение или завершение слова - это функция, при которой приложение предсказывает оставшуюся часть слова, которое вводит пользователь. В смартфонах Android и iOS это называется интеллектуальным вводом текста . В графических пользовательских интерфейсах пользователи обычно могут нажать клавишу табуляции, чтобы принять предложение, или клавишу со стрелкой вниз, чтобы принять одно из нескольких.

Автозаполнение ускоряет взаимодействие человека с компьютером, когда оно правильно предсказывает слово, которое пользователь намеревается ввести после того, как в поле ввода текста было введено всего несколько символов. Он лучше всего работает в доменах с ограниченным количеством возможных слов (например, в интерпретаторах командной строки ), когда некоторые слова гораздо более распространены (например, при адресе электронной почты ) или при написании структурированного и предсказуемого текста (как в исходном коде). редакторы ).

Многие алгоритмы автозаполнения изучают новые слова после того, как пользователь написал их несколько раз, и могут предлагать альтернативы на основе усвоенных привычек отдельного пользователя.

Определение

Первоначальная цель

Первоначальная цель программного обеспечения для предсказания слов заключалась в том, чтобы помочь людям с физическими недостатками увеличить скорость набора текста, а также помочь им уменьшить количество нажатий клавиш, необходимых для завершения слова или предложения. Необходимость увеличения скорости отмечается тем фактом, что люди, использующие устройства для генерации речи, обычно произносят речь со скоростью менее чем на 10% быстрее, чем люди, использующие устную речь. Но эта функция также очень полезна для всех, кто пишет текст, особенно для людей, например врачей, которые часто используют длинную, трудную для написания терминологию, которая может иметь технический или медицинский характер.

Описание

Автозаполнение или завершение слов работают так, что, когда писатель пишет первую букву или буквы слова, программа предсказывает одно или несколько возможных слов в качестве вариантов. Если слово, которое он намеревается написать, включено в список, он может выбрать его, например, с помощью цифровых клавиш. Если слово, которое хочет пользователь, не предсказано, автор должен ввести следующую букву слова. В это время выбор (я) слов изменяется так, чтобы предоставленные слова начинались с тех же букв, что и выбранные. Когда появляется слово, которое хочет пользователь, оно выбирается, и слово вставляется в текст. В другой форме предсказания слова предсказываются слова, которые с наибольшей вероятностью будут следовать за только что написанным, на основе недавно использованных пар слов. В предсказании слов используется языковое моделирование , при котором в заданном словаре вычисляются наиболее вероятные слова. Наряду с языковым моделированием базовое предсказание слов на устройствах AAC часто сочетается с моделью частотности , в которой слова, которые пользователь AAC использовал недавно и часто, с большей вероятностью будут предсказаны. Программное обеспечение для предсказания слов часто также позволяет пользователю вводить свои собственные слова в словари предсказания слов либо напрямую, либо путем «изучения» написанных слов. Некоторые результаты поиска, связанные с гениталиями или другими вульгарными терминами, часто не включаются в технологии автозаполнения, как и болезненные термины.

Автономные инструменты

Существуют автономные инструменты, которые добавляют функцию автозаполнения к существующим приложениям. Эти программы отслеживают нажатия клавиш пользователем и предлагают список слов на основе первых набранных букв. Примеры: Typingaid и Letmetype. LetMeType, бесплатное программное обеспечение, больше не разрабатывается, автор опубликовал исходный код и позволяет любому продолжить разработку. Typingaid, также бесплатная программа, активно развивается. Intellicomplete, как бесплатная, так и платная версия, работает только в определенных программах, которые подключаются к программе сервера intellicomplete. Многие программы автозаполнения также можно использовать для создания сокращенного списка. Первоначальным программным обеспечением для автозаполнения был Smartype, который появился в конце 1980-х годов и доступен до сих пор. Первоначально он был разработан для медицинских транскрипционистов, работающих в WordPerfect для MS / DOS, но теперь он работает для любого приложения в любой Windows или веб-программе.

Стенография

Сокращение , также называемое «Автозамена», - это связанная функция, которая включает автоматическую замену определенной строки другой, обычно более длинной и сложной для ввода, например «myname» на «Lee John Nikolai François Al Rahman». Это также может незаметно исправить простые опечатки , такие как превращение " teh " в "the". Некоторые программы автозаполнения, автономные или встроенные в текстовые редакторы, основанные на списках слов, также включают функцию сокращения для часто используемых фраз.

Завершение контекста

Завершение контекста - это функция текстового редактора, аналогичная автозаполнению слов, которая дополняет слова (или целые фразы) на основе текущего контекста и контекста других похожих слов в том же документе или в пределах некоторого набора обучающих данных. Основное преимущество дополнения контекста - это возможность более точно предугадывать ожидаемые слова и даже без начальных букв. Основным недостатком является необходимость набора обучающих данных, который обычно больше для завершения контекста, чем для более простого завершения слова. Наиболее распространенное использование завершения контекста наблюдается в редакторах продвинутых языков программирования и IDE , где набор обучающих данных изначально доступен, а завершение контекста имеет больший смысл для пользователя, чем завершение общих слов.

Завершение строки - это тип завершения контекста, впервые представленный Юраем Симловичем в TED Notepad в июле 2006 года. Контекст в завершении строки - это текущая строка, а текущий документ представляет собой набор обучающих данных. Когда пользователь начинает строку, которая начинается с часто используемой фразы, редактор автоматически завершает ее до места, где похожие строки различаются, или предлагает список общих продолжений.

Завершение действий в приложениях - это автономные инструменты, которые добавляют функцию автозаполнения к существующим приложениям или всем существующим приложениям ОС в зависимости от текущего контекста. Основное преимущество завершения действий - это возможность предсказывать ожидаемые действия. Главный недостаток - необходимость набора данных. Чаще всего завершение действий используется в редакторах продвинутых языков программирования и в IDE . Но есть также инструменты завершения действий, которые работают глобально, параллельно, во всех приложениях всего ПК, не (очень) препятствуя завершению действий соответствующих приложений.

Использование программным обеспечением

В веб-браузерах

Автозаполнение поля поиска в Mozilla Firefox

В веб - браузерах , автозаполнение делается в адресной строке ( с использованием элементов из истории браузера) , а также в текстовых полях на часто используемые страницы, такие как поисковой строке поиска «s. Автозаполнение веб-адресов особенно удобно, поскольку полные адреса часто бывают длинными и их сложно правильно ввести. HTML5 имеет атрибут формы автозаполнения.

В программах электронной почты

В программах электронной почты автозаполнение обычно используется для заполнения адресов электронной почты предполагаемых получателей. Как правило, существует небольшое количество часто используемых адресов электронной почты, поэтому для их выбора относительно легко использовать автозаполнение. Как и веб-адреса, адреса электронной почты часто бывают длинными, поэтому вводить их полностью неудобно.

Например, Microsoft Outlook Express найдет адреса на основе имени, которое используется в адресной книге. Google «s Gmail будет найти адреса по любой строке , которая происходит в адресе или сохраненное имя.

В поисковых системах

В поисковых системах функции автозаполнения пользовательского интерфейса предоставляют пользователям предлагаемые запросы или результаты, когда они вводят свой запрос в поле поиска. Это также обычно называется автозапуском или инкрементным поиском . Этот тип поиска часто опирается на алгоритмы сопоставления, которые устраняют ошибки ввода, такие как фонетические алгоритмы Soundex или независимый от языка алгоритм Левенштейна . Остается задача выполнить поиск по большим индексам или спискам популярных запросов менее чем за несколько миллисекунд, чтобы пользователь видел всплывающие результаты во время набора текста.

Автозаполнение может отрицательно сказаться на частных лицах и компаниях, если при поиске предлагаются отрицательные поисковые запросы. Автозаполнение теперь стало частью управления репутацией, поскольку компании, связанные с негативными поисковыми запросами, такими как мошенничество, жалобы и мошенничество, стремятся изменить результаты. Google, в частности, перечислил некоторые аспекты, которые влияют на работу их алгоритмов, но это область, которая открыта для манипуляций.

В редакторах исходного кода

Автозавершение кода в Qt Creator 5.0: программист вводит некоторый код, и когда программное обеспечение обнаруживает распознаваемую строку, такую ​​как идентификатор переменной или имя класса, оно представляет программисту меню, которое содержит полное имя идентифицированной переменной или методы, применимые к обнаруженный класс, и программист делает выбор с помощью мыши или клавиш со стрелками на клавиатуре. Если программист продолжит печатать, не сделав выбора, меню исчезнет.

Автозаполнение исходного кода также известно как завершение кода . В редакторе исходного кода автозаполнение значительно упрощено за счет регулярной структуры языков программирования . Обычно существует только ограниченное количество слов, значимых в текущем контексте или пространстве имен , таких как имена переменных и функций. Пример автозавершения кода является Microsoft «s IntelliSense дизайн. Он включает в себя отображение всплывающего списка возможных завершений для текущего входного префикса, чтобы пользователь мог выбрать правильный. Это особенно полезно в объектно-ориентированном программировании, потому что часто программист не знает точно, какие члены имеет конкретный класс . Таким образом, автозаполнение служит формой удобной документации, а также методом ввода. Еще одна полезная особенность автозаполнения для исходного кода заключается в том, что она побуждает программистов использовать более длинные и описательные имена переменных, включающие как строчные, так и прописные буквы ( CamelCase ), что делает исходный код более читабельным. Ввод больших слов со множеством смешанных случаев, таких как «numberOfWordsPerParagraph», может быть трудным, но автозаполнение позволяет завершить набор слова, используя лишь часть нажатий клавиш.

В инструментах запросов к базе данных

Автозаполнение в запросах к базам данных инструментов позволяет пользователю автозаполнения имен таблицы в SQL имен заявления и столбцов таблиц , упоминаемых в заявлении SQL. По мере ввода текста в редакторе контекст курсора в операторе SQL указывает, нужно ли пользователю завершение таблицы или завершение столбца таблицы. Завершение таблицы предоставляет список таблиц, доступных на сервере базы данных, к которому подключен пользователь. Автозавершение столбцов предоставляет список столбцов только для таблиц, на которые имеется ссылка в операторе SQL. SQL Server Management Studio обеспечивает автозаполнение в инструментах запросов.

В текстовых процессорах

Во многих текстовых редакторах автозаполнение сокращает время, затрачиваемое на набор повторяющихся слов и фраз. Исходный материал для автозаполнения берется либо из остальной части текущего документа, либо из списка общих слов, определенных пользователем. В настоящее время Apache OpenOffice , Calligra Suite , KOffice , LibreOffice и Microsoft Office включают поддержку этого вида автозаполнения, как и расширенные текстовые редакторы, такие как Emacs и Vim .

  • Apache OpenOffice Writer и LibreOffice Writer имеют рабочую программу завершения слов, которая предлагает слова, ранее введенные в текст, а не из всего словаря.
  • Приложение для работы с электронными таблицами Microsoft Excel имеет программу завершения рабочего слова, которая предлагает слова, ранее введенные в верхние ячейки.

В интерпретаторах командной строки

Завершение командной строки в PowerShell .

В интерпретатор командной строки , такие как Unix «s ш или Баш , или Windows , » s cmd.exe или PowerShell , или в подобных интерфейсов командной строки , автозаполнение имен команд и имен файлов может быть достигнуто путем отслеживания всех возможных имена вещей, к которым пользователь может получить доступ. Здесь автозаполнение обычно выполняется нажатием Tab ↹клавиши после ввода нескольких первых букв слова. Например, если единственный файл в текущем каталоге, который начинается с x, - это xLongFileName, пользователь может предпочесть ввести x и автозаполнить полное имя. Если бы в той же области было другое имя файла или команда, начинающаяся с x, пользователь набирал бы больше букв или нажимал клавишу TAB несколько раз, чтобы выбрать соответствующий текст.

Эффективность

Параметры эффективности

Эффективность завершения слов основана на средней длине набранных слов. Если, например, текст состоит из языков программирования, которые часто имеют длинные имена из нескольких слов для переменных, функций или классов, завершение полезно и обычно применяется в редакторах, специально предназначенных для программистов, таких как Vim .

В разных языках длина слова может сильно отличаться. В приведенном выше примере футболист на немецком языке переводится как "Fussballspieler", длина которого составляет 15 символов. Этот пример показывает, что английский - не самый эффективный язык для WC; это исследование показывает, что средняя длина английских слов в корпусе из более чем 100 000 слов составляет 8,93, для чешского - 10,55 и для немецкого - 13,24. Кроме того, в некоторых языках, таких как немецкий, называемых фузионными языками, а также в агглютинативных языках , слова можно комбинировать, создавая даже более длинные слова.

Авторы, которые часто используют очень длинные слова, такие как врачи и химики, очевидно, даже больше используют программное обеспечение для автозаполнения (завершения слов), чем другие авторы.

Исследовать

Хотя исследования показали, что программное обеспечение для предсказания слов действительно уменьшает количество необходимых нажатий клавиш и улучшает письменную продуктивность детей с ограниченными возможностями, существуют неоднозначные результаты относительно того, действительно ли предсказание слов увеличивает скорость вывода. Считается, что причина, по которой предсказание слов не всегда увеличивает скорость ввода текста, заключается в повышенной когнитивной нагрузке и необходимости переводить взгляд с клавиатуры на монитор.

Чтобы уменьшить эту когнитивную нагрузку, можно использовать такие параметры, как сокращение списка до пяти вероятных слов и наличие вертикального расположения этих слов. Вертикальная компоновка призвана свести к минимуму движения головы и глаз, а также дает дополнительные визуальные подсказки, поскольку длина слова становится очевидной. Хотя многие разработчики программного обеспечения полагают, что если список предсказаний слов следует за курсором , это уменьшит движения глаз, в исследовании детей с расщелиной позвоночника, проведенном Tam, Reid, O'Keefe и Nauman (2002), было показано, что печатание было более сложным. точным, и что дети также предпочли, чтобы список отображался в нижнем краю экрана по средней линии. Несколько исследований показали, что эффективность предсказания слов и удовлетворенность повышаются, когда список слов приближается к клавиатуре, из-за уменьшения количества необходимых движений глаз.

Программное обеспечение с предсказанием слов производится несколькими производителями. Программное обеспечение можно купить как дополнение к обычным программам, таким как Microsoft Word (например, WordQ + SpeakQ , Typing Assistant, Co: Writer, Wivik, Ghotit Dyslexia), или как одну из многих функций на устройстве AAC (PRC's Pathfinder, Dynavox Systems, продукты Saltillo ChatPC). Некоторые хорошо известные программы: Intellicomplete, которая доступна как в бесплатной, так и в платной версии, но работает только с программами, которые созданы для работы с ней. Letmetype и Typingaid - это бесплатные программы, которые работают в любом текстовом редакторе.

Ранняя версия автозаполнения была описана в 1967 году Х. Кристофером Лонге-Хиггинсом в его «Пишущей машинке с компьютерным управлением» (CAT): «Такие слова, как« НАЧАЛО »или« ПРОЦЕДУРА », или идентификаторы, введенные программистом, автоматически заполнялись программистом. CAT после того, как программист набрал только один или два символа ».

Смотрите также

использованная литература

внешние ссылки

  • Объяснение интерактивного поиска - примеры и объяснения рабочих веб-примеров, а также обсуждение преимуществ удобства использования по сравнению с традиционным поиском.
  • Google Feud - первая и самая популярная из многих игр, созданных с использованием данных автозаполнения, которая выиграла премию Webby в категории «Лучшая игра» в 2016 году.
  • Имитация автозаполнения поиска Google с помощью единого сервера MigratoryData. Оптимизируйте автозаполнение поиска с помощью постоянных соединений WebSocket, чтобы добиться как поиска с малой задержкой, так и улучшения пропускной способности.