Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

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

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

Определение [ править ]

Первоначальная цель [ править ]

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

Описание [ править ]

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

Автономные инструменты [ править ]

Существуют автономные инструменты, которые добавляют функцию автозаполнения к существующим приложениям. Эти программы отслеживают нажатия клавиш пользователем и предлагают список слов на основе первых набранных букв. Примеры: Typingaid и Letmetype. [10] [11] LetMeType, бесплатное ПО, больше не разрабатывается, автор опубликовал исходный код и позволяет любому продолжать разработку. Typingaid, также бесплатная программа, активно развивается. Intellicomplete, как бесплатная, так и платная версия, работает только в определенных программах, которые подключаются к программе сервера intellicomplete. [12] Многие программы автозаполнения также можно использовать для создания сокращений.список. Первоначальным программным обеспечением для автозаполнения был 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, в частности, перечислил некоторые аспекты, которые влияют на работу их алгоритмов, но это область, которая открыта для манипуляций. [13]

В редакторах исходного кода [ править ]

Автозавершение кода в 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; это исследование [14] показывает, что средняя длина английских слов в корпусе из более чем 100 000 слов составляет 8,93, для чешского - 10,55 и для немецкого - 13,24. Кроме того, в некоторых языках, таких как немецкий, называемых фузионными языками, а также в агглютинативных языках , слова можно комбинировать, создавая даже более длинные слова.

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

Исследование [ править ]

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

Чтобы уменьшить эту когнитивную нагрузку, можно использовать такие параметры, как сокращение списка до пяти вероятных слов и вертикальное расположение этих слов. [2] Вертикальная компоновка предназначена для сведения к минимуму движений головы и глаз, а также дает дополнительные визуальные подсказки, поскольку длина слова становится очевидной. [17] Хотя многие разработчики программного обеспечения считают, что если список предсказаний слов следует за курсором , это уменьшит движения глаз, [2] в исследовании детей с расщелиной позвоночникаТам, Ридом, О'Кифом и Науманом (2002) было показано, что набор текста был более точным и что дети также предпочитали, когда список появлялся в нижней части экрана, в средней линии. Несколько исследований показали, что эффективность предсказания слов и удовлетворенность повышаются, когда список слов приближается к клавиатуре, из-за уменьшения количества необходимых движений глаз. [18]

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

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

См. Также [ править ]

  • Автокоррекция , автоматическое исправление слов с ошибками.
  • Предсказуемый текст
  • Автозаполнение  - программная функция, которая автоматически заполняет поля
  • Инкрементальный поиск
  • Фрагмент  - небольшая область повторно используемого исходного кода, машинного кода или текста.
  • Контекстно-зависимый пользовательский интерфейс  - программное меню, элементы которого меняются в зависимости от условий, при которых это меню было вызвано.
  • Поле со списком
  • Раскрывающийся список предложений поиска
  • OpenSearch  - набор технологий, позволяющих публиковать результаты поиска в формате, подходящем для синдикации и агрегирования, содержит спецификацию веб-сервисов предложений поиска.
  • Google Feud  - игра на сайте, игра с автозаполнением.
  • Эффект вуби

Ссылки [ править ]

  1. ^ https://support.apple.com/en-us/HT207525
  2. ^ a b c d e Там, Синтия; Уэллс, Дэвид (2009). «Оценка преимуществ отображения списков прогнозирования слов на персональном цифровом помощнике на уровне клавиатуры». Вспомогательные технологии . 21 (3): 105–114. DOI : 10.1080 / 10400430903175473 . PMID  19908678 . S2CID  23183632 .
  3. ^ Ансон, Д., Мойст, П., Прзивара, М., Уэллс, Х., Сэйлор, Х. и Максим, Х. (2006). Влияние завершения слова и предсказания слов на скорость набора текста с помощью экранной клавиатуры . Вспомогательные технологии, 18, 146-154.
  4. ^ а б Трнка, К., Яррингтон, Дж. М. и Маккой, К. Ф. (2007). Влияние предсказания слов на скорость передачи данных для AAC . Труды NAACL HLT 2007, Companion Volume, 173-176.
  5. ^ a b Beukelman, DR & Mirenda, P. (2008). Дополнительное и альтернативное общение: поддержка детей и взрослых со сложными коммуникативными потребностями. (3-е изд.) Балтимор, Мэриленд: Brookes Publishing, стр. 77.
  6. ^ а б в Виттен, штат Айленд; Дарра, Джон Дж. (1992). Реактивная клавиатура . Кембридж, Великобритания: Издательство Кембриджского университета. С. 43–44. ISBN 978-0-521-40375-7.
  7. Перейти ↑ Jelinek, F. (1990). Самоорганизующееся языковое моделирование для распознавания речи . В Вайбеле А. и Кай-Фули, изд. Морган, М.Б. Чтения в распознавании речи (стр. 450). Сан-Матео, Калифорния: Morgan Kaufmann Publishers, Inc.
  8. Остер, Янв. « Связь, клевета и ответственность посредников ». Правовые исследования 35.2 (2015): 348-368
  9. Маккаллох, Гретхен (11 февраля 2019 г.). «Автозаполнение представляет лучшую версию вас» . Проводной . Проверено 11 февраля 2019 .
  10. ^ http://www.autohotkey.com/community/viewtopic.php?f=2&t=53630 TypingAid
  11. ^ "Архивная копия" . Архивировано из оригинала на 2012-05-27 . Проверено 9 мая 2012 .CS1 maint: заархивированная копия как заголовок ( ссылка ) LetMeType
  12. ^ http://www.intellicomplete.com/ Программа автозаполнения со списком слов для медицины
  13. ^ Дэвидс, Нил (2015-06-03). «Изменение предложений автозаполнения при поиске» . Станция репутации . Дата обращения 19 июня 2015 .
  14. ^ [1]
  15. ^ Даббагй, HH & демпфер, RI (1985). Средняя длина и время выбора как предикторы скорости связи. Материалы Ежегодной конференции RESNA 1985, RESNA Press, 104-106.
  16. ^ Гуденаф-Трепанье, С., и Розен, MJ (1988). Прогнозирующая оценка для предписания средств коммуникации: максимальная скорость передачи данных, определяемая двигателем. В Л. Е. Бернштейне (ред.), Голосовые нарушения: Клиническая практика и исследования (стр. 165-185). Филадельфия: Grune & Stratton .; цитируется по Tam & Wells (2009), стр. 105-114.
  17. ^ Swiffin, AL, Арнотт, JL, Pickering, JA, и Ньюэлл, А. Ф. (1987). Адаптивные и прогностические методы в коммуникативном протезе. Дополнительное и альтернативное общение, 3, 181–191; цитируется по Tam & Wells (2009).
  18. Перейти ↑ Tam, C., Reid, D., Naumann, S., & O 'Keefe, B. (2002). Воспринимаемые преимущества вмешательства с предсказанием слов на производительность письменной речи у детей с расщелиной позвоночника и гидроцефалией . Международная организация профессиональной терапии, 9, 237–255; цитируется по Tam & Wells (2009).
  19. ^ http://www.prlog.org/10519217-typing-assistant-new-generation-of-word-prediction-software.html Ассистент набора текста
  20. ^ Лонге-Хиггинс, ХК, Ортони, А., Адаптивное запоминание последовательностей, В машинном интеллекте 3, Труды третьего ежегодного семинара по машинному интеллекту, Эдинбургский университет, сентябрь 1967 г. 311-322, Издательство: Edinburgh University Press, 1968

Внешние ссылки [ править ]

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