Предиктивный ввод текста
Предиктивный ввод текста (через англ. predictive «предсказывающий», «предвещающий» из лат. praedictīvus) — система ускоренного ввода текста в цифровые устройства, при которой программное обеспечение устройства в процессе набора предлагает варианты окончания слов и фраз, основываясь на имеющихся в его словаре, а также может предлагать исправлять распространённые ошибки.
Применение
Мобильные устройства
Предиктивный ввод текста распространён на мобильных устройствах (прежде всего на телефонах), на которых ввод текста затруднён, например, при написании SMS-сообщений. В основном применяются две системы предиктивного ввода: автозамена и T9.
Редакторы для программистов
Редактор проводит анализ текста и выводит меню, в котором предлагается окончание вводимого ключевого слова или идентификатора. Либо, например, при вводе тэга HTML предлагает на выбор все его параметры.
В большинстве редакторов меню предиктивного ввода вызывается либо при короткой паузе набора, либо по кнопке Ctrl-Пробел.
Редакторы документов
При вводе текста система предлагает окончание вводимого слова. Например, это может помочь при вводе таблиц, в которых содержимое ячеек часто повторяется. В редакторах документов разработчики используют предиктивный ввод очень осторожно, так как ошибки предсказания здесь особенно часты.
Проблемы
Общие
В языках с развитой системой окончаний (как в русском) плохо работает система, предлагающая окончание слова по его началу — нет гарантии, что слово получится в том падеже, в котором надо.
Применительно к мобильным устройствам
В языках с большим количеством коротких слов (английский) предиктивный набор предлагает слишком много альтернатив. Да и в других языках одна и та же комбинация клавиш может выдать несколько слов, и если не смотреть на экран, можно отправить сообщение с ошибкой. Наиболее занимательные ошибки телефона служат объектом коллекционирования, а иногда входят в подростковый сленг.
В программистских редакторах
Система предиктивного ввода текста, применяющаяся в программистских редакторах, должна быть устойчива к ошибкам. Например:
rObject.x = aObject.x + someVector.x // программист пропустил точку с запятой
rObject.y = aObject.y + so_ // тут стоит курсор
В данном случае система предиктивного ввода должна, несмотря на упущенную точку с запятой, дать возможность программисту выбрать в меню идентификатор someVector.
Иногда ошибка в коде может стать предпосылкой для предиктивного ввода. Например.
Vector so_ // тут стоит курсор
. . .
rObject.x = aObject.x + someVector.x; // идентификатор someVector не определён
В таком случае система может предложить ввести идентификатор someVector.
Примечания
См. также
- Автодополнение
- Рукописный ввод текста
- Экранная клавиатура
- Acme (программное обеспечение)
- Подсветка синтаксиса
Ссылки
- Маркус Дю Сотой. Код креативности. Как искусственный интеллект учится писать, рисовать и думать. Азбука-Аттикус, 2020.
- А. А. Волков, С. В. Антонов. Элементы автоматизации дистанционного оповещения о чрезвычайных ситуациях… Вестник МГСУ № 11, 2015 стр. 120—128