stringtranslate.com

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

Пример частично введенного поискового запроса, baby stавтоматически заполнившегося различными вариантами

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

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

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

Определение

Первоначальное назначение

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

Описание

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

История

Технология автозаполнения и предиктивного ввода текста была изобретена китайскими учеными и лингвистами в 1950-х годах для решения проблемы неэффективности ввода на китайской пишущей машинке [10] , поскольку процесс печати включал в себя поиск и выбор тысяч логографических символов на лотке, [11] что существенно замедляло скорость обработки текста. [12] [13]

В 1950-х годах машинистки перестроили раскладку символов со стандартной словарной раскладки на группы общих слов и фраз. [14] Инженеры китайских пишущих машинок изобрели механизмы для доступа к общим символам, доступным на максимально возможной скорости с помощью предсказания слов , техники, используемой сегодня в китайских методах ввода для компьютеров и в текстовых сообщениях на многих языках. По словам историка Стэнфордского университета Томаса Маллани, развитие современных китайских пишущих машинок с 1960-х по 1970-е годы повлияло на развитие современных компьютерных текстовых процессоров и повлияло на развитие самих компьютеров. [15] [11] [14]

Типы инструментов автозаполнения

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

Стенография

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

Контекстное завершение

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

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

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

Интеграция программного обеспечения

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

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

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

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

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

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

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

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

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

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

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

Автодополнение исходного кода также известно как автодополнение кода . В редакторе исходного кода автодополнение значительно упрощается за счет регулярной структуры языка программирования . Обычно существует только ограниченное количество слов, имеющих смысл в текущем контексте или пространстве имен, таких как имена переменных и функций. Примером автодополнения кода является разработка Microsoft IntelliSense . Она включает в себя показ всплывающего списка возможных автодополнений для текущего входного префикса, чтобы позволить пользователю выбрать правильный. Это особенно полезно в объектно-ориентированном программировании , поскольку часто программист не будет точно знать, какие члены есть у конкретного класса . Поэтому автодополнение затем служит формой удобной документации , а также методом ввода.

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

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

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

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

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

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

Автодополнение командной строки в PowerShell .

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

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

Исследовать

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

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

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

Ранняя версия автодополнения была описана в 1967 году Х. Кристофером Лонге-Хиггинсом в его книге «Компьютерная пишущая машинка» (CAT) [25] : «Такие слова, как «BEGIN» или «PROCEDURE», или идентификаторы, введенные программистом, автоматически завершались CAT после того, как программист ввел только один или два символа».

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

Ссылки

  1. ^ "Как использовать автокоррекцию и предиктивный ввод текста на iPhone, iPad или iPod touch". Поддержка Apple . Apple.
  2. ^ abcde Там, Синтия; Уэллс, Дэвид (2009). «Оценка преимуществ отображения списков предсказаний слов на персональном цифровом помощнике на уровне клавиатуры». Вспомогательные технологии . 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). «Влияние завершения слов и прогнозирования слов на скорость набора текста с использованием экранных клавиатур». Вспомогательные технологии . 18 (2): 146–154. doi :10.1080/10400435.2006.10131913. PMID  17236473. S2CID  11193172.
  4. ^ ab Trnka, K.; Yarrington, JM; McCoy, KF (2007). "Влияние предсказания слов на скорость коммуникации для AAC". NAACL-Short '07: Human Language Technologies 2007: Конференция североамериканского отделения Ассоциации компьютерной лингвистики . Том. Companion Volume, Short Papers. Ассоциация компьютерной лингвистики. стр. 173–6. CiteSeerX 10.1.1.363.2416 . 
  5. ^ ab Beukelman, DR; Mirenda, P. (2005). Augmentative and Alternative Communication: Supporting Children and Adults with Complex Communication Needs (3-е изд.). Балтимор, Мэриленд: Brookes. стр. 77. ISBN 9781557666840. OCLC  254228982.
  6. ^ abc Witten, IH; Darragh, John J. (1992). Реактивная клавиатура. Cambridge University Press. стр. 43–44. ISBN 978-0-521-40375-7.
  7. ^ Jelinek, F. (1990). "Моделирование самоорганизованного языка для распознавания речи". В Waibel, A.; Lee, Kai-Fu (ред.). Чтения по распознаванию речи . Morgan Kaufmann. стр. 450. ISBN 9781558601246.
  8. ^ Остер, Ян (2015). «Коммуникация, клевета и ответственность посредников». Юридические исследования . 35 (2): 348–368. doi :10.1111/lest.12064. S2CID  143005665.
  9. ^ Маккалок, Гретхен (11 февраля 2019 г.). «Автозаполнение представляет лучшую версию вас». Wired . Получено 11 февраля 2019 г.
  10. ^ Макклюр, Макс (12 ноября 2012 г.). «Китайская пишущая машинка предвосхитила предиктивный текст, считает историк».
  11. ^ ab Соррел, Чарли (23 февраля 2009 г.). «Как это работает: китайская пишущая машинка». Wired .
  12. ^ Гринвуд, Вероник (14 декабря 2016 г.). «Почему предиктивный ввод текста заставляет вас забыть, как писать». New Scientist .
  13. ^ О'Донован, Кэролайн (16 августа 2016 г.). «Как эта десятилетняя технология открыла путь предиктивному вводу текста». Buzzfeed .
  14. ^ ab Mullaney, Thomas S. (2018-07-16). "90,000 символов на 1 клавиатуре". Foreign Policy . Получено 25 апреля 2020 г. .
  15. ^ Избранное исследование – первая в мире история китайской пишущей машинки, гуманитарные науки в Стэнфорде, 2 января 2010 г.
  16. ^ "[AHK 1.1]TypingAid v2.22.0 — Утилита автодополнения слов". AutoHotkey. 2010.
  17. ^ Clasohm, Carsten (2011). "LetMeType". Архивировано из оригинала 2012-05-27 . Получено 2012-05-09 .
  18. ^ «Программное обеспечение для медицинской транскрипции — IntelliComplete». FlashPeak. 2014.
  19. ^ Дэвидс, Нил (2015-06-03). "Изменение предложений автозаполнения поиска". Reputation Station . Получено 19 июня 2015 г.
  20. ^ Dabbagh, HH; Damper, RI (1985). «Средняя длина и время выбора как предикторы скорости коммуникации». В Brubaker, C.; Hobson, DA (ред.). Технология, мост к независимости: Труды Восьмой ежегодной конференции по технологиям реабилитации, Мемфис, Теннесси, 24–28 июня 1985 г. Общество инженеров-реабилитологов Северной Америки. стр. 404–6. OCLC  15055289. 80177b42-e668-4ed5-a256-49b9440bdfa5.
  21. ^ Goodenough-Trepagnier, C.; Rosen, MJ (1988). «Прогностическая оценка для назначения коммуникационной помощи: максимальная скорость коммуникации, определяемая моторикой». В Bernstein, LE (ред.). Нарушения голоса: клиническая практика и исследования . Филадельфия: Grune & Stratton. стр. 165–185. ISBN 9780808919087. OCLC  567938402.как указано в Tam & Wells 2009
  22. ^ Swiffin, AL; Arnott, JL; Pickering, JA; Newell, AF (1987). «Адаптивные и предиктивные методы в коммуникационном протезе». Augmentative and Alternative Communication . 3 (4): 181–191. doi :10.1080/07434618712331274499.как указано в Tam & Wells 2009
  23. ^ Tam, C.; Reid, D.; Naumann, S.; O'Keefe, B. (2002). «Воспринимаемые преимущества вмешательства по прогнозированию слов в письменную продуктивность у детей с spina bifida и гидроцефалией». Occupational Therapy International . 9 (3): 237–255. doi : 10.1002/oti.167 . PMID  12374999.как цитируется в Tam & Wells 2009.
  24. ^ Sumit Software (2010). «Помощник по набору текста – Новое поколение программного обеспечения для прогнозирования слов». PRLog: Распространение пресс-релизов.
  25. ^ Лонге-Хиггинс, ХК; Ортони, А. (1968). «Адаптивное запоминание последовательностей». Машинный интеллект 3, Труды третьего ежегодного семинара по машинному интеллекту, Эдинбургский университет, сентябрь 1967 г. Издательство Эдинбургского университета. С. 311–322.

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