stringtranslate.com

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

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

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

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

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

Определение

Исходная цель

Первоначальная цель программного обеспечения для прогнозирования слов заключалась в том, чтобы помочь людям с ограниченными физическими возможностями увеличить скорость набора текста [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 или веб-программе.

стенография

Сокращение , также называемое автозаменой, — это связанная функция, которая включает автоматическую замену определенной строки на другую, обычно более длинную и сложную для ввода, например «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 . Он предполагает отображение всплывающего списка возможных дополнений для текущего входного префикса, чтобы пользователь мог выбрать правильный вариант. Это особенно полезно в объектно-ориентированном программировании, поскольку часто программист не знает точно, какие члены имеет конкретный класс . Таким образом, автозаполнение служит формой удобной документации , а также методом ввода.

Еще одна полезная особенность автозаполнения исходного кода заключается в том, что оно побуждает программиста использовать более длинные и описательные имена переменных, что делает исходный код более читабельным. Ввод больших слов, которые могут содержать верблюжий регистр , 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] в исследовании детей с расщелиной позвоночника , проведенном Тэмом, Ридом, О'Кифом и Науманом (2002), это Было показано, что набор текста был более точным и что дети также предпочитали, чтобы список появлялся у нижнего края экрана, на средней линии. Несколько исследований показали, что эффективность и удовлетворенность предсказанием слов повышаются, когда список слов находится ближе к клавиатуре, из-за меньшего количества необходимых движений глаз. [23]

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

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

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

Рекомендации

  1. ^ «Как использовать автокоррекцию и интеллектуальный ввод текста на iPhone, iPad или iPod touch». Поддержка Apple . Яблоко.
  2. ^ abcde Тэм, Синтия; Уэллс, Дэвид (2009). «Оценка преимуществ отображения списков прогнозируемых слов на личном цифровом помощнике на уровне клавиатуры». Вспомогательные технологии . 21 (3): 105–114. дои : 10.1080/10400430903175473. PMID  19908678. S2CID  23183632.
  3. ^ Энсон, Д.; Мойст, П.; Пшивара, М.; Уэллс, Х.; Сэйлор, Х.; Максим, Х. (2006). «Влияние завершения слов и прогнозирования слов на скорость набора текста с помощью экранной клавиатуры». Вспомогательные технологии . 18 (2): 146–154. дои : 10.1080/10400435.2006.10131913. PMID  17236473. S2CID  11193172.
  4. ^ аб Трнка, К.; Яррингтон, Дж. М.; Маккой, К.Ф. (2007). «Влияние прогнозирования слов на скорость связи для AAC». NAACL-Short '07: Человеческие языковые технологии 2007: Конференция североамериканского отделения Ассоциации компьютерной лингвистики . Том. Сопутствующий том, короткие статьи. Ассоциация компьютерной лингвистики. стр. 173–6. CiteSeerX 10.1.1.363.2416 . 
  5. ^ аб Бёкельман, доктор медицинских наук; Миренда, П. (2005). Дополняющая и альтернативная коммуникация: поддержка детей и взрослых со сложными коммуникативными потребностями (3-е изд.). Балтимор, Мэриленд: Брукс. п. 77. ИСБН 9781557666840. ОКЛК  254228982.
  6. ^ abc Виттен, штат Айова; Дарра, Джон Дж. (1992). Реактивная клавиатура. Издательство Кембриджского университета. стр. 43–44. ISBN 978-0-521-40375-7.
  7. ^ Елинек, Ф. (1990). «Самоорганизующееся языковое моделирование для распознавания речи». В Вайбель, А.; Ли, Кай-Фу (ред.). Чтения по распознаванию речи . Морган Кауфманн. п. 450. ИСБН 9781558601246.
  8. ^ Остер, Январь (2015). «Коммуникация, клевета и ответственность посредников». Правовые исследования . 35 (2): 348–368. дои : 10.1111/lest.12064. S2CID  143005665.
  9. Маккалок, Гретхен (11 февраля 2019 г.). «Автозаполнение представляет лучшую версию вас». Проводной . Проверено 11 февраля 2019 г.
  10. Макклюр, Макс (12 ноября 2012 г.). «Китайская пишущая машинка предвосхищала предсказывающий текст, находит историк».
  11. ^ аб Соррел, Чарли (23 февраля 2009 г.). «Как это работает: китайская пишущая машинка». Проводной .
  12. Гринвуд, Вероника (14 декабря 2016 г.). «Почему интеллектуальный текст заставляет вас забыть, как писать». Новый учёный .
  13. ^ О'Донован, Кэролайн (16 августа 2016 г.). «Как эта десятилетняя технология привела к созданию интеллектуального текста». Баззфид .
  14. ^ Аб Маллани, Томас С. (16 июля 2018 г.). «90 000 символов на 1 клавиатуре». Внешняя политика . Проверено 25 апреля 2020 г.
  15. ^ Рекомендуемое исследование - первая в мире история китайской пишущей машинки, Гуманитарные науки в Стэнфорде, 2 января 2010 г.
  16. ^ «[AHK 1.1] TypingAid v2.22.0 — Утилита автозаполнения слов» . Автохоткей. 2010.
  17. ^ Класом, Карстен (2011). «ДайМенеТип». Архивировано из оригинала 27 мая 2012 г. Проверено 9 мая 2012 г.
  18. ^ «Программное обеспечение для медицинской транскрипции — IntelliComplete» . ФлэшПик. 2014.
  19. ^ Дэвидс, Нил (3 июня 2015 г.). «Изменение поисковых предложений автозаполнения». Станция Репутация . Проверено 19 июня 2015 г.
  20. ^ Даббаг, Х.Х.; Дампер, Род-Айленд (1985). «Средняя длина и время выбора как факторы, определяющие скорость связи». В Брубейкере, К.; Хобсон, Д.А. (ред.). Технология, мост к независимости: материалы восьмой ежегодной конференции по реабилитационным технологиям, Мемфис, Теннесси, 24–28 июня 1985 г. Общество реабилитационных инженеров Северной Америки. стр. 404–6. OCLC  15055289. 80177b42-e668-4ed5-a256-49b9440bdfa5.
  21. ^ Гуденаф-Трепанье, К.; Розен, MJ (1988). «Прогнозная оценка назначения средств связи: максимальная скорость связи, определяемая двигателем». В Бернштейне, Л.Е. (ред.). Люди с нарушениями голоса: Клиническая практика и исследования . Филадельфия: Грюн и Страттон. стр. 165–185. ISBN 9780808919087. OCLC  567938402.как указано в Tam & Wells 2009.
  22. ^ Свиффин, Алабама; Арнотт, Дж.Л.; Пикеринг, Дж. А.; Ньюэлл, А.Ф. (1987). «Адаптивные и прогностические методы в коммуникационном протезе». Дополняющая и альтернативная коммуникация . 3 (4): 181–191. дои : 10.1080/07434618712331274499.как указано в Tam & Wells 2009.
  23. ^ Тэм, К.; Рид, Д.; Науманн, С.; О'Киф, Б. (2002). «Ощущаемые преимущества вмешательства в предсказание слов на письменную продуктивность у детей с расщелиной позвоночника и гидроцефалией». Международная профессиональная терапия . 9 (3): 237–255. дои : 10.1002/оти.167 . ПМИД  12374999.как указано в Tam & Wells 2009.
  24. ^ Программное обеспечение Sumit (2010). «Помощник по набору текста - новое поколение программного обеспечения для прогнозирования слов». PRLog: Распространение пресс-релизов.
  25. ^ Лонге-Хиггинс, ХК; Ортони, А. (1968). «Адаптивное запоминание последовательностей». Машинный интеллект 3, Материалы третьего ежегодного семинара по машинному интеллекту, Эдинбургский университет, сентябрь 1967 г. Издательство Эдинбургского университета. стр. 311–322.

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