Область техники, к которой относится изобретение
[01] Настоящая технология относится к формированию текстовых подсказок в целом и к способу и системе для формирования текстовых подсказок при вводе текста в приложениях на электронных устройствах - в частности.
Уровень техники
[02] Различные приложения, устанавливаемые на персональных электронных устройствах (таких как смартфон, планшет, ноутбук и т.п.), могут запрашивать у пользователя различные данные. Например, приложение для обмена сообщениями позволяет пользователю вводить текст, изображения, аудио- и видеофайлы для их передачи в качестве личных сообщений лицам из списка контактов пользователя. Приложение социальной сети позволяет пользователю вводить текст публикаций и комментариев, используя учетную запись пользователя в этой социальной сети. В еще одном примере картографическое приложение обычно позволяет пользователю вводить текст, содержащий название или адрес географического места. Как правило, пользователь вводит текст с помощью физической или виртуальной клавиатуры электронного устройства.
[03] Для помощи пользователю при вводе текстовых данных в такое приложение электронное устройство может выдавать текстовые подсказки, включающие в себя следующее слово, полную форму следующего слова и/или правильную орфографическую форму следующего слова, вводимого пользователем, при вводе пользователем какого-либо текста, например, слова, буквы или символа.
[04] При этом формирование электронным устройством одной и той же текстовой подсказки при вводе пользователем определенного текста во всех приложениях, выполняемых на электронном устройстве, может ухудшать впечатления пользователя от взаимодействия с электронным устройством и/или с приложениями.
[05] В частности, если при вводе пользователем текста, начинающегося с латинской буквы «H», в приложении для обмена сообщениями электронное устройство сформирует текстовую подсказку «Hello», пользователь может положительно оценить эту подсказку. А если электронное устройство выдаст такую текстовую подсказку при вводе латинской буквы «H» в приложении, управляющем контактами пользователя, или в картографическом приложении, пользователь может воспринять эту подсказку как неуместную и бесполезную, так как она не соответствует типичному лексическому контексту, связанному с такими приложениями. В результате удовлетворенность пользователя от взаимодействия как с электронным устройством, так и с выполняемыми на нем приложениями может снижаться.
[06] В известных технических решениях был предложен ряд способов для решения вышеуказанной технической проблемы.
[07] В патенте US11579730B2 «Systems for real-time intelligent haptic correction to typing errors and methods thereof» (Системы и способы коррекции ошибок при вводе текста на базе интеллектуальной тактильной обратной связи в реальном времени), выданном 14 февраля 2023 года и принадлежащем компании Capital One Services LLC, раскрыты системы и способы, обеспечивающие выдачу тактильных уведомлений об ошибках с учетом контекста. Такие системы и способы предусматривают использование процессора для передачи вводимых сегментов данных от устройства ввода символов в программное приложение и для определения адресата. Модель идентификации контекста обеспечивает предварительную контекстную классификацию вводимых сегментов данных в зависимости, по меньшей мере частично, от программного приложения и от адресата. По результатам контекстной классификации обнаруживаются потенциальные ошибки во вводимых сегментах данных. Модель машинного обучения для оценки ошибок классифицирует одну или несколько потенциальных ошибок по типу и оценивает степень их серьезности, исходя из чего определяется режим тактильной обратной связи для каждой потенциальной ошибки. Время задержки тактильной обратной связи выбирается в зависимости от типа и степени серьезности каждой потенциальной ошибки.
[08] В патенте US11573697B2 «Methods and systems for predicting keystrokes using a unified neural network» (Способы и системы прогнозирования нажатия клавиш на основе унифицированной нейронной сети), выданном 7 февраля 2023 года и принадлежащем компании Samsung Electronics Co Ltd, раскрыты способы и системы для прогнозирования нажатия клавиш на основе нейронной сети, которая анализирует совокупное действие множества факторов, оказывающих влияние на поведение пользователя при вводе текста. В число таких факторов могут входить манера ввода текста, предыдущие нажатия клавиш, особенности клавиатуры, используемой для ввода текста, а также контекстные параметры, относящиеся к пользователю и к устройству, на котором отображается клавиатура. За счет выделения и объединения множества признаков может быть получено множество векторов признаков. Оптимизируя и обрабатывая это множество векторов признаков, нейронная сеть способна распознавать известные признаки, а также обучаться распознаванию неизвестных признаков, которые оказывают влияние на поведение при вводе текста. В результате нейронная сеть прогнозирует нажатия клавиш, используя известные и неизвестные признаки.
Раскрытие изобретения
[09] При этом существует потребность в системах и способах, позволяющих исключить, уменьшить или преодолеть недостатки известных технических решений.
[010] Разработчики настоящей технологии установили, что текстовые подсказки могут формироваться с учетом конкретного приложения, в котором пользователь осуществляет ввод текста. В частности, некоторые не имеющие ограничительного характера варианты осуществления настоящей технологии относятся к способу и системе для обучения модели машинного обучения формированию текстовых подсказок на основе (1) текущих данных, вводимых пользователем в приложении из множества приложений, выполняемых на электронном устройстве, и (2) названии этого приложения.
[011] Иными словами, по меньшей мере некоторые не имеющие ограничительного характера варианты осуществления настоящих способа и системы предусматривают формирование отдельных векторных представлений для названий приложений из множества приложений и использование таких векторных представлений в целях обучения и применения модели машинного обучения для формирования различных текстовых подсказок в зависимости от приложения, в котором пользователь вводит свой текст в текущий момент. Таким образом, настоящие способ и система позволяют формировать большее количество текстовых подсказок, потенциально более подходящих пользователю в конкретном приложении, и тем самым улучшать впечатления пользователя от взаимодействия как с электронным устройством в целом, так и с этим приложением в частности.
[012] В частности, в соответствии с первым широким аспектом настоящей технологии реализован компьютерный способ формирования текстовых подсказок для текста, вводимого в одном из множества приложений, выполняемых на электронном устройстве. Способ предусматривает получение текстовых данных пользовательского ввода от пользователя электронного устройства, формирование первого векторного представления, характеризующего текстовые данные пользовательского ввода, формирование второго векторного представления, характеризующего название приложения из множества приложений, в котором пользователем выполнен ввод этих текстовых данных, объединение первого и второго векторных представлений с целью формирования комбинированного векторного представления для текстовых данных пользовательского ввода, передачу комбинированного векторного представления в модель обработки естественного языка (NLPM, Natural Language Processing Model), обученную формированию текстовых подсказок на основе текущих данных пользовательского ввода в каждом из множества приложений и на основе, по меньшей мере частично, названий этих приложений, с целью формирования текстовой подсказки, которую пользователь может выбрать для ввода в заданном приложении после текстовых данных пользовательского ввода, и выдачу текстовой подсказки, обеспечивающей пользователю электронного устройства возможность введения текстовой подсказки в заданном приложении после текстовых данных пользовательского ввода.
[013] В некоторых вариантах реализации способа формирование первого векторного представления предусматривает применение алгоритма векторного представления текста на основе сверточной нейронной сети (CNN, Convolutional Neural Network).
[014] В некоторых вариантах реализации способа алгоритм векторного представления текста представляет собой алгоритм векторного представления CHAR-CNN.
[015] В некоторых вариантах реализации способа формирование второго векторного представления предусматривает применение алгоритма прямого унитарного кодирования.
[016] В некоторых вариантах реализации способа объединение первого и второго векторных представлений включает в себя суммирование этих векторных представлений.
[017] В некоторых вариантах реализации способа модель обработки естественного языка содержит рекуррентную нейронную сеть (RNN, Recurrent Neural Network).
[018] В некоторых вариантах реализации способа модель обработки естественного языка представляет собой нейронную сеть с длинной кратковременной памятью (LSTM, Long Short-Term Memory).
[019] В некоторых вариантах реализации способа модель обработки естественного языка представляет собой нейронную сеть с чередованием слоев смешивания каналов и смешивания по времени (RWKV, Receptance Weighted Key Value).
[020] В некоторых вариантах реализации способа ввод пользователем текстовых данных выполнен путем проведения пальцем по виртуальной клавиатуре электронного устройства с намерением ввести тот или иной символ из некоторого слова, а текстовая подсказка содержит символ, следующий в этом слове непосредственно за этим символом.
[021] В некоторых вариантах реализации способа он дополнительно предусматривает определение намерения на основе кривой, сформированной в результате проведения пальцем по виртуальной клавиатуре.
[022] В некоторых вариантах реализации способа текстовые данные пользовательского ввода содержат слово и префикс следующего слова, а текстовая подсказка содержит полную форму следующего слова и/или правильную орфографическую форму следующего слова.
[023] В некоторых вариантах реализации способа полная форма следующего слова включает в себя список полных форм кандидатов следующего слова.
[024] В некоторых вариантах реализации способа правильная орфографическая форма следующего слова включает в себя словосочетание, содержащее следующее слово.
[025] В некоторых вариантах реализации способа он дополнительно предусматривает ранжирование полных и/или правильных орфографических форм следующего слова в зависимости от значений параметра ранжирования, а выдача предполагает выдачу полных и/или правильных орфографических форм в порядке убывания значений параметра ранжирования.
[026] В некоторых вариантах реализации способа параметр ранжирования характеризует позицию текстовой подсказки при сортировке в алфавитном порядке или уровень достоверности при формировании текстовой подсказки.
[027] В некоторых вариантах реализации способа текстовая подсказка для текстовых данных пользовательского ввода в одном приложении отличается от текстовой подсказки для тех же текстовых данных пользовательского ввода в другом приложении из множества приложений электронного устройства.
[028] В некоторых вариантах реализации способа он реализуется на электронном устройстве.
[029] В некоторых вариантах реализации способа он дополнительно предусматривает обучение модели обработки естественного языка путем получения обучающего набора данных, содержащего множество обучающих цифровых объектов, каждый из которых содержит (1) первое обучающее векторное представление, характеризующее заданные обучающие текстовые данные пользовательского ввода в обучающем приложении, (2) второе обучающее векторное представление, характеризующее название обучающего приложения, в котором был выполнен ввод обучающих данных пользовательского ввода, и (3) метку, содержащую третье обучающее векторное представление, характеризующее другие обучающие текстовые данные пользовательского ввода, вводимые в обучающем приложении после заданных текстовых данных пользовательского ввода, и путем передачи обучающего цифрового объекта из множества обучающих цифровых объектов в модель обработки естественного языка с целью сведения к минимуму на текущей итерации обучения расхождения между текущим прогнозом, сформированным моделью обработки естественного языка, и меткой.
[030] Кроме того, в соответствии со вторым широким аспектом настоящей технологии реализовано электронное устройство, обеспечивающее формирование текстовых подсказок для текста, вводимого в одном из множества приложений, выполняемых на электронном устройстве. Электронное устройство содержит по меньшей мере один процессор и по меньшей мере одну физическую машиночитаемую память, хранящую исполняемые команды, при исполнении которых по меньшей мере одним процессором на электронном устройстве обеспечиваются получение текстовых данных пользовательского ввода от пользователя электронного устройства, формирование первого векторного представления, характеризующего текстовые данные пользовательского ввода, формирование второго векторного представления, характеризующего название приложения из множества приложений, в котором пользователем выполнен ввод этих текстовых данных:
[031] объединение первого и второго векторных представлений с целью формирования комбинированного векторного представления для текстовых данных пользовательского ввода, передача комбинированного векторного представления в модель обработки естественного языка, обученную формированию текстовых подсказок на основе текущих данных пользовательского ввода в каждом из множества приложений и на основе, по меньшей мере частично, названий этих приложений, с целью формирования текстовой подсказки, которую пользователь может выбрать для ввода в заданном приложении после текстовых данных пользовательского ввода, и выдача текстовой подсказки, обеспечивающей пользователю электронного устройства возможность введения текстовой подсказки в заданном приложении после текстовых данных пользовательского ввода.
[032] В некоторых вариантах реализации электронного устройства для формирования первого векторного представления по меньшей мере один процессор обеспечивает на электронном устройстве применение алгоритма векторного представления CHAR-CNN к текстовым данным пользовательского ввода.
[033] В контексте настоящего описания «сервер» представляет собой компьютерную программу, выполняемую на соответствующих аппаратных средствах и способную принимать по сети запросы (например, от электронных устройств), а также выполнять эти запросы или инициировать их выполнение. Такие аппаратные средства могут быть реализованы в виде одного физического компьютера или одной физической компьютерной системы, что не имеет существенного значения для настоящей технологии. В данном контексте при употреблении выражения «сервер» не подразумевается, что какая-либо конкретная задача или все задачи (например, принятые команды или запросы) принимаются, выполняются или запускаются на одном и том же сервере (т.е. одними и теми же программными и/или аппаратными средствами), а имеется в виду, что участвовать в приеме, передаче, выполнении или инициировании выполнения каких-либо задач или запросов либо результатов каких-либо задач или запросов может любое количество программных или аппаратных средств, и что все эти программные и аппаратные средства могут представлять собой один сервер или несколько серверов, причем выражение «по меньшей мере один сервер» охватывает оба этих случая.
[034] В контексте настоящего описания «электронное устройство» представляет собой любые компьютерные аппаратные средства, способные обеспечивать работу программного обеспечения, подходящего для выполнения поставленной задачи. В контексте настоящего описания термин «электронное устройство» подразумевает, что устройство может функционировать в качестве сервера для других электронных устройств, но это не носит обязательного характера для настоящей технологии. Таким образом, примерами (не имеющими ограничительного характера) электронных устройств являются блок автономного вождения, персональные компьютеры (настольные компьютеры, ноутбуки, нетбуки и т.п.), смартфоны и планшеты, а также сетевое оборудование, например, маршрутизаторы, коммутаторы и шлюзы. Следует понимать, что в данном контексте факт функционирования оборудования в качестве электронного устройства не означает, что оно не может функционировать в качестве сервера для других электронных устройств.
[035] В контексте данного описания выражение «информация» включает в себя информацию любого рода или вида, допускающую хранение в базе данных. Таким образом, информация включает в себя, среди прочего, визуальные произведения (например, карты), аудиовизуальные произведения (например, изображения, фильмы, звукозаписи, презентации и т.д.), данные (например, данные о местоположении, данные о погоде, данные о дорожном движении, числовые данные и т.д.), текст (например, отзывы, комментарии, вопросы, сообщения и т.д.), документы, электронные таблицы и т.д.
[036] В контексте данного описания термин «база данных» означает любой структурированный набор данных, независимо от его конкретной структуры, программного обеспечения для управления базой данных и компьютерных аппаратных средств для хранения таких данных, их применения или обеспечения их использования иным способом. База данных может размещаться в тех же аппаратных средствах, в которых реализован процесс, обеспечивающий хранение или использование информации, хранящейся в базе данных, либо в отдельных аппаратных средствах, таких как специализированный сервер или группа серверов.
[037] В контексте настоящего описания числительные «первый», «второй», «третий» и т.д. служат лишь для указания на различие между существительными, к которым они относятся, но не для описания каких-либо определенных взаимосвязей между этими существительными. Кроме того, ссылки на «первый» элемент и «второй» элемент не исключают того, что эти два элемента в действительности могут быть одним и тем же элементом, что встречается здесь в другом контексте.
[038] Каждый вариант осуществления настоящей технологии относится по меньшей мере к одной из вышеупомянутых целей и/или к одному из вышеупомянутых аспектов, но не обязательно ко всем ним. Следует понимать, что некоторые аспекты настоящей технологии, связанные с попыткой достижения вышеупомянутой цели, могут не соответствовать этой цели и/или могут соответствовать другим целям, не упомянутым здесь явным образом.
[039] Дополнительные и/или альтернативные признаки, аспекты и преимущества вариантов осуществления настоящей технологии содержатся в дальнейшем описании, на приложенных чертежах и в формуле изобретения.
Краткое описание чертежей
[040] Эти и другие признаки, аспекты и преимущества настоящей технологии содержатся в дальнейшем описании, в приложенной формуле изобретения и на следующих чертежах.
[041] На фиг. 1 схематически представлен пример компьютерной системы, пригодной для реализации некоторых не имеющих ограничительного характера вариантов осуществления настоящей технологии.
[042] На фиг. 2 схематически представлена сетевая компьютерная среда, содержащая компьютерную систему, показанную на фиг. 1, и пригодная для использования с некоторыми не имеющими ограничительного характера вариантами осуществления настоящей технологии.
[043] На фиг. 3 и 4 схематически представлены графические пользовательские интерфейсы иллюстративных приложений, выполняемых на электронном устройстве, входящем в состав сетевой компьютерной среды, показанной на фиг. 2, которые обеспечивают ввод пользователем текстовых данных с помощью виртуальной клавиатуры электронного устройства, в соответствии с некоторыми не имеющими ограничительного характера вариантами осуществления настоящей технологии.
[044] На фиг. 5 схематически представлена архитектура модели машинного обучения, пригодная для реализации некоторых не имеющих ограничительного характера вариантов осуществления настоящей технологии.
[045] На фиг. 6 схематически представлен процесс обучения модели обработки естественного языка, реализованной на базе архитектуры модели машинного обучения, показанной на фиг. 5, для обеспечения формирования текстовых подсказок при вводе текстовых данных через графические пользовательские интерфейсы приложений, показанные на фиг. 3 и 4, в соответствии с некоторыми не имеющими ограничительного характера вариантами осуществления настоящей технологии.
[046] На фиг. 7 схематически представлен процесс работы модели обработки естественного языка, реализованной на электронном устройстве, входящем в состав сетевой компьютерной среды, показанной на фиг. 2, в соответствии с некоторыми не имеющими ограничительного характера вариантами осуществления настоящей технологии.
[047] На фиг. 8 схематически представлен графический пользовательский интерфейс, показанный на фиг. 4, с текстовыми подсказками, сформированными на электронном устройстве, входящем в состав сетевой компьютерной среды, показанной на фиг. 2, в процессе работы модели обработки естественного языка, в соответствии с некоторыми не имеющими ограничительного характера вариантами осуществления настоящей технологии.
[048] На фиг. 9 представлена блок-схема способа формирования текстовых подсказок на электронном устройстве, входящем в состав сетевой компьютерной среды, показанной на фиг. 2, в соответствии с некоторыми не имеющими ограничительного характера вариантами осуществления настоящей технологии.
Осуществление изобретения
[049] Представленные здесь примеры и условный язык предназначены для обеспечения лучшего понимания принципов настоящей технологии, а не для ограничения ее объема до таких специально приведенных примеров и условий. Очевидно, что специалисты в данной области техники способны разработать различные способы и устройства, которые явно не описаны и не показаны, но реализуют принципы настоящей технологии в пределах ее существа и объема.
[050] Кроме того, чтобы способствовать лучшему пониманию, последующее описание может содержать упрощенные варианты реализации настоящей технологии. Специалисты в данной области техники должны понимать, что различные варианты осуществления настоящей технологии могут быть значительно сложнее.
[051] В некоторых случаях приводятся предположительно полезные примеры модификаций настоящей технологии. Они призваны лишь способствовать пониманию и также не определяют объема или границ настоящей технологии. Представленный перечень модификаций не является исчерпывающим и специалист в данной области техники может разработать другие модификации в пределах объема настоящей технологии. Кроме того, если в некоторых случаях модификации не описаны, это не означает, что они невозможны и/или что описание содержит единственно возможный вариант реализации того или иного элемента настоящей технологии.
[052] Описание принципов, аспектов и вариантов реализации настоящей технологии, а также их конкретные примеры предназначены для охвата их структурных и функциональных эквивалентов, независимо от того, известны они в настоящее время или будут разработаны в будущем. Например, специалисты в данной области техники должны понимать, что все приведенные здесь блок-схемы соответствуют концептуальным представлениям иллюстративных принципиальных схем, реализующих принципы настоящей технологии. Также следует понимать, что все блок-схемы, схемы процессов, диаграммы изменения состояния, псевдокоды и т.п. соответствуют различным процессам, которые могут быть представлены на машиночитаемом физическом носителе информации и могут выполняться компьютером или процессором независимо от того, показан такой компьютер или процессор в явном виде или нет.
[053] Функции различных элементов, показанных на чертежах, включая все функциональные блоки, обозначенные как «процессор», могут быть реализованы с использованием специализированных аппаратных средств, а также аппаратных средств, способных обеспечивать работу соответствующего программного обеспечения. Если используется процессор, эти функции могут выполняться одним выделенным процессором, одним совместно используемым процессором или несколькими отдельными процессорами, некоторые из которых могут использоваться совместно. Кроме того, явное использование термина «процессор» или «контроллер» не должно трактоваться как указание исключительно на аппаратные средства, способные обеспечивать работу программного обеспечения, и может подразумевать, среди прочего, аппаратные средства цифрового сигнального процессора (DSP), сетевой процессор, специализированную интегральную схему (ASIC), программируемую вентильную матрицу (FPGA), ПЗУ для хранения программного обеспечения, ОЗУ и энергонезависимое ЗУ. Могут подразумеваться и другие аппаратные средства, общего назначения и/или заказные.
[054] Программные модули или просто модули, реализация которых предполагается на базе программных средств, могут быть представлены здесь в виде любого сочетания элементов блок-схемы или других элементов, указывающих на выполнение шагов процесса и/или содержащих текстовое описание. Такие модули могут реализовываться с применением аппаратных средств, показанных явно или подразумеваемых.
[055] С учетом вышеизложенных принципов ниже рассмотрены некоторые не имеющие ограничительного характера примеры, иллюстрирующие различные варианты реализации аспектов настоящей технологии.
Компьютерная система
[056] На фиг. 1 показана компьютерная система 100, пригодная для использования в некоторых вариантах осуществления настоящей технологии. Компьютерная система 100 содержит различные аппаратные элементы, включая один или несколько одноядерных или многоядерных процессоров, совместно представленных процессором 110, графический процессор 111, твердотельный накопитель 120, оперативное запоминающее устройство 130, интерфейс 140 дисплея и интерфейс 150 ввода-вывода.
[057] Связь между элементами компьютерной системы 100 может осуществляться через одну или несколько внутренних и/или внешних шин 160 (таких как шина PCI, шина USB, шина FireWire стандарта IEEE 1394, шина SCSI, шина Serial-ATA и т.д.), с которыми различные аппаратные элементы соединены электронными средствами.
[058] Интерфейс 150 ввода-вывода может быть соединен с сенсорным экраном 190 и/или с одной или несколькими внутренними и/или внешними шинами 160. Сенсорный экран 190 может также называться экраном, например, экраном (отдельно не обозначен) электронного устройства 204, показанного на фиг. 2. В вариантах осуществления, представленных на фиг. 1, сенсорный экран 190 содержит сенсорные средства 194 (например, сенсорные элементы, встроенные в слой дисплея и обеспечивающие регистрацию физического взаимодействия между пользователем и дисплеем) и контроллер 192 сенсорных средств ввода-вывода, обеспечивающий связь с интерфейсом 140 дисплея и/или с одной или несколькими внутренними и/или внешними шинами 160. В некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии интерфейс 150 ввода-вывода может быть соединен с клавиатурой (отдельно не показана), мышью (отдельно не показана) или сенсорной панелью (отдельно не показана), которые обеспечивают взаимодействие пользователя с компьютерной системой 100 в дополнение к сенсорному экрану 190 или вместо него.
[059] Следует отметить, что в некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии часть элементов компьютерной системы 100 может отсутствовать. Например, могут отсутствовать клавиатура и мышь (отдельно не показаны), в частности, в тех случаях (но не ограничиваясь ими), когда компьютерная система 100 реализована в виде компактного электронного устройства, например, смартфона.
[060] Согласно вариантам реализации настоящей технологии, на твердотельном накопителе 120 хранятся программные команды, пригодные для загрузки в оперативное запоминающее устройство 130 и исполнения процессором 110 и/или графическим процессором 111. Например, программные команды могут входить в состав библиотеки или приложения.
Сетевая компьютерная среда
[061] На фиг. 2 представлена сетевая компьютерная среда 200, пригодная для использования с некоторыми не имеющими ограничительного характера вариантами осуществления настоящей технологии. Сетевая компьютерная среда 200 содержит электронное устройство 204, соединенное с сервером 202 через сеть 208 связи. В некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии электронное устройство 204 может быть связано с пользователем 210.
[062] В не имеющих ограничительного характера вариантах осуществления настоящей технологии электронным устройством 204 могут быть любые компьютерные аппаратные средства, способные обеспечивать работу программного обеспечения, подходящего для решения поставленной задачи. Таким образом, не имеющими ограничительного характера примерами электронного устройства 204 являются персональные компьютеры (настольные компьютеры, ноутбуки, нетбуки и т.п.), смартфоны и планшеты. Соответственно, электронное устройство 204 может содержать некоторые или все элементы компьютерной системы 100, представленной на фиг. 1.
[063] В некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии сервер 202 реализован как обычный компьютерный сервер и может содержать некоторые или все элементы компьютерной системы 100, показанной на фиг. 1. В одном не имеющем ограничительного характера примере сервер 202 реализован в виде сервера Dell™ PowerEdge™, работающего под управлением операционной системы Microsoft™ Windows Server™, но он также может быть реализован на базе любых других подходящих видов аппаратных средств, программного обеспечения и/или микропрограммного обеспечения либо их сочетания. В показанных не имеющих ограничительного характера вариантах осуществления настоящей технологии сервер 202 представляет собой одиночный сервер. В других не имеющих ограничительного характера вариантах осуществления настоящей технологии (не показаны) функции сервера 202 могут быть распределены между несколькими серверами.
[064] В соответствии с некоторыми не имеющими ограничительного характера вариантами осуществления настоящей технологии, электронное устройство 204 способно обеспечивать выполнение множества приложений, предварительно установленных на электронном устройстве 204. В соответствии с некоторыми не имеющими ограничительного характера вариантами осуществления настоящей технологии, множество приложений может включать в себя как (1) веб-приложения, то есть приложения, запускаемые и выполняемые в веб-браузере (который также может входить в состав множества приложений) электронного устройства 204, так и (2) собственные приложения, то есть приложения, специально разработанные для операционной системы электронного устройства 204. В частности, собственные приложения могут быть разработаны для операционной системы Microsoft™ Windows™, Apple™ iOS™ или Google™ Android™ и их мобильных версий.
[065] Например, среди прочего, в соответствии с некоторыми не имеющими ограничительного характера вариантами осуществления настоящей технологии, множество приложений, выполняемых на электронном устройстве 204, может включать в себя приложение 302 для обмена сообщениями, графический пользовательский интерфейс которого схематически представлен на фиг. 3. Не имеющими ограничительного характера примерами приложения 302 для обмена сообщениями могут служить приложения для обмена сообщениями WhatsApp™, Telegram™ и Viber™. В другом примере, в соответствии с некоторыми не имеющими ограничительного характера вариантами осуществления настоящей технологии, множество приложений электронного устройства 204 может включать в себя навигационное приложение 402, графический пользовательский интерфейс которого схематически представлен на фиг. 4. Примерами навигационного приложения 402 могут служить навигационные приложения Yandex™ Navigator™, Google™ Maps™ и Waze™.
[066] Другими приложениями (не показаны) из множества приложений, выполняемых на электронном устройстве 204, могут быть, среди прочего, банковские приложения (такие как банковское приложение Citibank™), приложения с подпиской, такие как приложения платформ видеохостинга (например, платформы видеохостинга YouTube™) или приложения платформ аудиохостинга (например, платформы аудиохостинга Yandex™ Music™), приложения, связанные с онлайн-платформами объявлений (например, онлайн-платформой объявлений Yandex™ Market™), и т.д.
[067] Как показано на фиг. 3 и 4, в соответствии с некоторыми не имеющими ограничительного характера вариантами осуществления настоящей технологии, графический пользовательский интерфейс каждого из множества приложений, например, приложения 302 для обмена сообщениями или навигационного приложения 402, может предусматривать ввод пользователем 210 текстовых данных, в связи с чем такие приложения способны выдавать пользователю 210 активируемое пользователем текстовое поле для ввода текста в приложении. В общем случае реализация такого активируемого пользователем текстового поля зависит от конкретной реализации приложения. Например, приложение 302 для обмена сообщениями может выдавать строку 305 для ввода сообщения, куда вводится текст, обычно представляющий собой сообщение для соответствующего адресата. В другом примере навигационное приложение 402 может выдавать строку 405 поиска, куда вводится текст, обычно указывающий на требуемый пункт назначения. К другим вариантам реализации активируемого пользователем текстового поля, среди прочего, относятся строки для ввода в приложении регистрационного имени или пароля пользователя, строка поиска слов в приложениях-словарях и строка веб-адреса в приложениях-браузерах.
[068] Кроме того, в соответствии с некоторыми не имеющими ограничительного характера вариантами осуществления настоящей технологии, при активации пользователем 210 (например, путем нажатия кнопки мыши или касания экрана) активируемого пользователем текстового поля в используемом приложении электронное устройство 204 способно отображать виртуальную клавиатуру 310, предоставляя пользователю 210 возможность ввода текста в активируемое пользователем текстовое поле. Например, при активации пользователем 210 активируемого пользователем текстового поля электронное устройство 204 может обеспечивать отображение всплывающей виртуальной клавиатуры 310.
[069] В общем случае виртуальная клавиатура 310 представляет собой элемент графического пользовательского интерфейса, содержащий множество элементов управления, которые имитируют клавиши физической клавиатуры. На экране электронного устройства может отображаться множество элементов управления, а активация пользователем 210 клавиш из множества клавиш может осуществляться их касанием и/или выбором (например, с помощью мыши или пера) в зависимости от варианта реализации экрана, например, от применения в экране сенсорной технологии. Несмотря на то, что в проиллюстрированных вариантах осуществления виртуальная клавиатура 310 имеет раскладку QWERTY, для виртуальной клавиатуры 310 допускаются и другие раскладки, такие как AZERTY, QWERTZ и QZERTY, а также другие алфавиты, например, различные национальные варианты алфавитов на основе латиницы и кириллицы.
[070] Таким образом, отображая виртуальную клавиатуру 310, электронное устройство 204 дает пользователю 210 возможность введения текстовых данных 306, например, в строку 305 для ввода сообщения в приложении 302 для обмена сообщениями. Как указано выше, для ввода текстовых данных 306 пользователь 210 может выбрать элемент управления (соответствующий латинской букве «H» в представленном примере) на виртуальной клавиатуре 310 или коснуться его. В еще одном примере, как описано ниже, текстовые данные 306 могут формироваться пользователем 210 путем проведения пальцем по виртуальной клавиатуре, например, вдоль кривой 311 касания.
[071] В соответствии с некоторыми не имеющими ограничительного характера вариантами осуществления настоящей технологии, виртуальная клавиатура 310 может содержать строку 309 подсказок. В общем случае строка 309 подсказок служит для выдачи подсказок, таких как подсказка 308, сформированная электронным устройством 204 для текстовых данных 306. В контексте настоящей технологии термин «подсказка», в частности, «подсказка 308», используется для обозначения одного или нескольких непосредственно следующих друг за другом символов, полной или орфографически правильной формы некоторого слова и/или фразы, которые автоматически формируются на основе текстовых данных 306. Как наглядно показано в примере, электронное устройство 204, исходя из текстовых данных 306, содержащих префикс «H», способно сформировать подсказку 308 «Hey», которую пользователь 210 может выбрать, не вводя каждый символ слова «Hey», что позволяет упростить ввод сообщения.
[072] В соответствии с некоторыми не имеющими ограничительного характера вариантами осуществления настоящей технологии, электронное устройство 204 способно формировать подсказку 308 на основе прошлых текстовых данных, введенных пользователем 210 с помощью виртуальной клавиатуры 310. Например, электронное устройство 204 может определить, что префикс «H» чаще всего предваряет ввод пользователем 210 (или другими пользователями) слова «Hey», и автоматически сформировать подсказку 308 при получении таких текстовых данных 306 в следующий раз. В тех вариантах осуществления, в которых текстовые данные 306 вводятся пользователем 210 путем проведения пальцем по виртуальной клавиатуре 310, электронное устройство 204 способно формировать подсказку 308 на основе не только прошлых текстовых данных пользовательского ввода, но и с учетом формы прошлых кривых касания.
[073] При этом разработчики настоящей технологии учли, что виртуальная клавиатура 310 в традиционных вариантах реализации способна формировать аналогичные подсказки для всего множества приложений, выполняемых на электронном устройстве 204. Как показано на фиг. 4, электронное устройство 204 способно формировать подсказку 308 не только в приложении 302 для обмена сообщениями, но и в навигационном приложении 402 при вводе текстовых данных 306 в строку 405 поиска. При этом подсказка 308 «Hey» не вписывается в контекст навигационного приложения 402 и может не соответствовать намерениям пользователя 210, вследствие чего пользователь 210 может счесть ее неуместной. В частности, если пользователь 210 собирается ввести слово «Hotel» или «Hospital», например, для указания требуемого пункта назначения пользователя 210, то ему придется ввести его полностью, игнорируя подсказку 308. Это может негативно сказываться на впечатлениях пользователя не только от работы с навигационным приложением 402, но и от работы с другими приложениями, функционирующими под управлением операционной системы электронного устройства 204.
[074] Соответственно, как показано на фиг. 2, были разработаны описанные здесь способ и система, ориентированные на применение специально обученного алгоритма машинного обучения, то есть модели 212 обработки естественного языка, для формирования текстовых подсказок на основе введенных текстовых данных с учетом приложения, в котором осуществляется ввод таких текстовых данных. Иными словами, в соответствии с некоторыми не имеющими ограничительного характера вариантами осуществления настоящей технологии, модель 212 обработки естественного языка может быть обучена формированию для текстовых данных 306 различных подсказок в зависимости от приложения, в котором осуществляется ввод таких текстовых данных. Таким образом, пользователю 210 могут выдаваться более уместные подсказки, в большей степени соответствующие его намерениям, для каждого из множества приложений электронного устройства 204. Это может способствовать улучшению впечатлений пользователя 216 от работы с приложениями и с электронным устройством 204 в целом.
[075] В некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии модель 212 обработки естественного языка может быть реализована на основе нейронной сети (NN, Neural Network). Например, в некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии нейронная сеть может представлять собой нейронную сеть с длинной кратковременной памятью (LSTM, Long Short-Term Memory). В других не имеющих ограничительного характера вариантах осуществления настоящей технологии нейронная сеть может представлять собой рекуррентную нейронную сеть (RNN, Recurrent Neural Network). В некоторых других не имеющих ограничительного характера вариантах осуществления настоящей технологии нейронная сеть может представлять собой нейронную сеть с чередованием слоев смешивания каналов и смешивания по времени (RWKV, Receptance Weighted Key Value). Следует отметить, что без отступления от существа и объема настоящей технологии обучение модели 212 обработки естественного языка может осуществляться как с учителем, так и без учителя.
[076] В соответствии с некоторыми не имеющими ограничительного характера вариантами осуществления настоящей технологии, можно выделить два процесса применительно к модели 212 обработки естественного языка. Первым процессом является процесс обучения, в ходе которого модель 212 обработки естественного языка обучается формированию подсказок на основе различных обучающих данных пользовательского ввода. Вторым процессом является рабочий процесс, в ходе которого модель 212 обработки естественного языка используется для формирования рабочих подсказок пользователю при вводе текстовых данных, таких как текстовые данные 306, в рабочем режиме. В соответствии с некоторыми не имеющими ограничительного характера вариантами осуществления настоящей технологии, процесс обучения может быть реализован на сервере 202, дополнительно способном передавать обученную модель 212 обработки естественного языка на электронное устройство 204 для ее использования при формировании рабочих подсказок. При этом в некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии как процесс обучения, так и рабочий процесс могут быть реализованы на электронном устройстве 204.
[077] Ниже приводится описание примера реализации процесса обучения и рабочего процесса для модели 212 обработки естественного языка в соответствии с некоторыми не имеющими ограничительного характера вариантами осуществления настоящей технологии.
Сеть связи
[078] В некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии сеть 208 связи представляет собой сеть Интернет. В других не имеющих ограничительного характера вариантах осуществления настоящей технологии сеть 208 связи может быть реализована как любая подходящая локальная сеть (LAN, Local Area Network), глобальная сеть (WAN, Wide Area Network), частная сеть связи и т.п. Следует понимать, что варианты осуществления сети связи приведены лишь в иллюстративных целях. Реализация линий связи (отдельно не обозначены) между электронным устройством 204, сервером 202 и сетью 208 связи зависит, среди прочего, от реализации электронного устройства 204 и сервера 202. Для примера можно отметить, что, среди прочего, в тех вариантах осуществления настоящей технологии, где электронное устройство 204 реализовано в виде устройства беспроводной связи, такого как смартфон, линия связи может быть реализована в виде беспроводной линии связи. Примерами беспроводных линий связи могут служить, помимо прочего, канал сети связи 3G, канал сети связи 4G и т.п. В сети 208 связи также может использоваться беспроводное соединение с сервером 202 и электронным устройством 204.
Модель обработки естественного языка
[079] Как указано выше, в некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии модель 212 обработки естественного языка может быть реализована на основе нейронной сети с длинной кратковременной памятью (LSTM). На фиг. 5 схематически представлена архитектура модели машинного обучения для нейронной сети 500 LSTM, которая может быть использована для реализации модели 212 обработки естественного языка, в соответствии с некоторыми не имеющими ограничительного характера вариантами осуществления настоящей технологии.
[080] В общем случае нейронная сеть 500 LSTM представляет собой нейронную сеть, которая содержит так называемые узлы памяти, такие как узел 503 памяти, способные «запоминать» долгосрочные зависимости между их весами на нескольких итерациях обучения. Иными словами, на заданной итерации обучения (которая описана ниже) узел 503 памяти определяет свой текущий вес не только на основе текущего веса узла из предыдущего слоя, но и на основе своего предыдущего веса из предыдущей итерации обучения. Таким образом, нейронная сеть 500 LSTM способна «запоминать» долгосрочные зависимости между частями входных данных, представленных входным векторным представлением 502, что позволяет в дальнейшем формировать выходные данные, представленные выходным векторным представлением 504, с учетом контекста входных данных.
[081] Входные и выходные данные различаются в зависимости от задачи нейронной сети 500 LSTM. Например, если нейронная сеть 500 LSTM обучается переводу текста с исходного языка на целевой язык, входные данные могут включать в себя слово или фразу на исходном языке, а выходные данные - соответствующие слово или фразу на целевом языке. В другом примере, в котором нейронная сеть 500 LSTM обучается формированию следующего слова во фразе, например, в качестве подсказки, входные данные могут включать в себя префикс слова или собственно слово, а выходные данные - полную форму слова или слово, следующее за данным словом во фразе, соответственно.
[082] Ниже приводится описание способа формирования входного и выходного векторных представлений 502, 504 и процесса обучения модели 212 обработки естественного языка.
Процесс обучения
[083] На фиг. 6 схематически представлен процесс обучения модели 212 обработки естественного языка в соответствии с некоторыми не имеющими ограничительного характера вариантами осуществления настоящей технологии.
[084] Как указано выше, модель 212 обработки естественного языка может быть обучена формированию подсказки для вводимых текстовых данных с учетом приложения, в котором осуществляется ввод таких текстовых данных. Например, как объяснялось выше со ссылкой на фиг. 3, модель 212 обработки естественного языка может быть обучена формированию подсказки 308 «Hey» при получении (1) текстовых данных 306, содержащих префикс «H», и (2) указания на приложение 302 для обмена сообщениями, например, его названия.
[085] Для обучения этому модели 212 обработки естественного языка сервер 202, в соответствии с некоторыми не имеющими ограничительного характера вариантами осуществления настоящей технологии, способен предварительно получать обучающий набор данных, содержащий множество обучающих цифровых объектов, один из которых, а именно - обучающий цифровой объект 602, содержит (1) обучающие текстовые данные 604, введенные обучающим пользователем, (2) название 606 обучающего приложения, выполняемого на обучающем электронном устройстве, на котором были введены обучающие текстовые данные 604, и (3) метку 608, содержащую другие обучающие текстовые данные, следующие за обучающими текстовыми данными 604. Очевидно, что обучающее электронное устройство может быть реализовано аналогично электронному устройству 204. Обучающим пользователем может быть пользователь 210 или любой другой человек, пользующийся электронными устройствами.
[086] В соответствии с некоторыми не имеющими ограничительного характера вариантами осуществления настоящей технологии, обучающие текстовые данные 604 могут содержать целое слово, например, «Good», «Morning» и т.п. В некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии обучающий цифровой объект 602 может дополнительно содержать указание на способ ввода обучающих текстовых данных 604, например, путем касания экрана, нажатия кнопки мыши или проведения пальцем по экрану. Если в таких вариантах осуществления обучающие текстовые данные 604 вводились путем проведения пальцем по клавиатуре 310, обучающий цифровой объект 602 может дополнительно содержать обучающую кривую касания (подобную кривой 311 касания, не показана), согласно которой был выполнен ввод обучающих текстовых данных 604.
[087] В некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии метка 608 может содержать следующее слово во фразе, в которую входит заданное слово из обучающих текстовых данных 604. В некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии метка 608 может содержать словосочетание, в состав которого входит заданное слово. Например, если обучающие текстовые данные 604 представляют собой «I», соответствующая метка 608 может содержать текст «I would like to», например, как во фразе «I would like to inform you…».
[088] Также следует отметить, что в некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии сервер 202 и/или электронное устройство 204 способны выполнять проверку орфографии вводимого текста перед формированием текстовых подсказок. Для этого в некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии метка 608 может содержать правильную орфографическую форму заданного слова.
[089] Кроме того, в соответствии с некоторыми не имеющими ограничительного характера вариантами осуществления настоящей технологии, название 606 обучающего приложения может представлять собой текстовую строку, например, «whatsapp», «yandex navigator», «gmail», и т.д.
[090] На способ получения сервером 202 обучающего набора данных не накладывается ограничений. В некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии сервер 202 способен получать и анализировать данные, характеризующие прошлые взаимодействия различных обучающих пользователей с указанными выше различными вариантами реализации виртуальных клавиатур 310 в приложениях, выполняемых на обучающих электронных устройствах. Кроме того, следует отметить, что в некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии сервер 202 способен автоматически размечать обучающий набор данных путем определения для каждого элемента обучающих текстовых данных следующего элемента обучающих данных, как описано выше, например, по установленному правилу. Установленное правило может предусматривать, например, определение (1) непосредственно следующего символа, (2) непосредственно следующей N-граммы, где число N может быть равно 2, 5 или 10, и/или (3) непосредственно следующего слова. В других не имеющих ограничительного характера вариантах осуществления настоящей технологии обучающий набор данных для обучения модели 212 обработки естественного языка может предварительно размечаться сторонним сервером (не показан) или людьми-оценщиками.
[091] Для формирования входного векторного представления 502 для модели 212 обработки естественного языка, сервер 202, в соответствии с некоторыми не имеющими ограничительного характера вариантами осуществления настоящей технологии, способен формировать векторное представление для каждого элемента обучающего цифрового объекта 602. Для этого в некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии сервер 202 способен применять к обучающим текстовым данным 604, метке 608 и названию 606 обучающего приложения алгоритм векторного представления текста, такой как первый алгоритм 610 векторного представления текста и второй алгоритм 612 векторного представления текста.
[092] Конкретный вариант реализации первого алгоритма 610 векторного представления текста зависит от формы обучающих текстовых данных 604 и формы метки 608. В частности, в некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии первый алгоритм 610 векторного представления текста может быть реализован на основе сверточной нейронной сети. Например, первый алгоритм 610 векторного представления текста может представлять собой алгоритм векторного представления текста CHAR-CNN, описанный в статье Kim et al. «Character-Aware Neural Language Models» (Ким и др. «Нейросетевые языковые модели на уровне символов»), опубликованной на сайте arxiv.org 15 декабря 2015 года, содержание которой полностью включено в настоящий документ посредством ссылки.
[093] В других не имеющих ограничительного характера вариантах осуществления настоящей технологии первый алгоритм 610 векторного представления текста может представлять собой, среди прочего, какой-либо из алгоритмов векторного представления текста Word2Vec, GloVe и т.п.
[094] В соответствии с некоторыми не имеющими ограничительного характера вариантами осуществления настоящей технологии, второй алгоритм 612 векторного представления текста может быть реализован подобно первому алгоритму 610 векторного представления текста. В некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии первый алгоритм 610 векторного представления текста и второй алгоритм 612 векторного представления текста могут представлять собой один и тот же алгоритм. В некоторых других не имеющих ограничительного характера вариантах осуществления настоящей технологии второй алгоритм 612 векторного представления текста может отличаться от первого алгоритма 610 векторного представления текста. В отдельных не имеющих ограничительного характера вариантах осуществления настоящей технологии вторым алгоритмом 612 векторного представления текста может быть алгоритм векторного представления текста с прямым унитарным кодированием (one-hot text embedding algorithm), также называемый здесь алгоритмом прямого унитарного кодирования (one-hot encoding algorithm). В связи с этим сервер 202 способен (1) назначать названию 606 обучающего приложения, связанного с обучающими текстовыми данными 604, соответствующее числовое значение (например, целое число), и (2) обрабатывать название 606 наряду с названиями других приложений из других обучающих цифровых объектов, в составе категориальных данных.
[095] Таким образом, сервер 202 способен формировать (1) первое векторное представление 614 для обучающих текстовых данных 604, (2) второе векторное представление 616 для названия 606 обучающего приложения и (3) третье векторное представление 618 для метки 608. В тех вариантах осуществления, в которых обучающий цифровой объект 602 содержит обучающую кривую касания (не показана), сервер 202 дополнительно способен формировать соответствующий вектор кривой касания, включающий в себя (1) координаты точек, задающих кривую касания в заданной системе координат (например, в двумерной декартовой системе координат, не показана), и (2) метки времени, соответствующие моментам формирования каждой из точек.
[096] Очевидно, что в некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии сервер 202 способен получать обучающий цифровой объект 602, содержащий первое, второе и третье векторные представления 614, 616 и 618, вместо самостоятельного формирования этих векторных представлений.
[097] В некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии сервер 202 способен объединять первое и второе векторные представления 614, 616, формируя комбинированное обучающее векторное представление 620. Например, для формирования комбинированного обучающего векторного представления 620 сервер 202 способен применять к первому и второму векторным представлениям 614, 616 (1) суммирование, (2) конкатенацию и/или (3) векторное произведение.
[098] Таким образом, сервер 202 способен формировать входное векторное представление 502 для модели 212 обработки естественного языка. Кроме того, для обучения модели 212 обработки естественного языка сервер 202, в соответствии с некоторыми не имеющими ограничительного характера вариантами осуществления настоящей технологии, способен (1) передавать входное векторное представление 502, характеризующее обучающий цифровой объект 602 из множества обучающих цифровых объектов, в модель 212 обработки естественного языка для формирования выходного векторного представления 504, характеризующего текущий прогноз 622, сделанный моделью 212 обработки естественного языка, и (2) сводить к минимуму расхождение между текущим прогнозом 622 и меткой 608, корректируя при этом веса узлов в модели 212 обработки естественного языка. Такое расхождение может быть выражено функцией потерь, например, функцией потерь на основе перекрестной энтропии, функцией потерь на основе среднеквадратической ошибки, функцией потерь Хьюбера, кусочно-линейной функцией потерь и т.д.
[099] После обучения модели 212 обработки естественного языка сервер 202 способен передавать модель 212 обработки естественного языка, включая определенные указанным способом веса узлов модели, на электронное устройство 204 для ее последующего использования с целью формирования текстовых подсказок в рабочем процессе.
[0100] Следует отметить, что описанные выше шаги процесса обучения могут быть реализованы с необходимыми изменениями на электронном устройстве 204. Кроме того, в некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии электронное устройство 204 способно периодически, например, раз в день, раз в неделю или раз в месяц, производить локальное уточнение весов узлов.
[0101] Ниже представлено более подробное описание рабочего процесса.
Рабочий процесс
[0102] На фиг. 7 схематически представлен процесс работы модели 212 обработки естественного языка в соответствии с некоторыми не имеющими ограничительного характера вариантами осуществления настоящей технологии. Как указано выше, этот процесс может быть реализован на электронном устройстве 204.
[0103] В процессе работы, в соответствии с некоторыми не имеющими ограничительного характера вариантами осуществления настоящей технологии, электронное устройство 204 способно предварительно формировать рабочий цифровой объект 702, содержащий рабочие текстовые данные 704 и рабочее название 606 рабочего приложения (в частности, приложения 302 для обмена сообщениями или навигационного приложения 402), в котором вводятся рабочие текстовые данные. Очевидно, что электронное устройство 204 способно получать рабочие текстовые данные 704 от пользователя, который взаимодействует с приложением, имеющим рабочее название 606. Кроме того, электронное устройство 204 способно (1) передавать рабочие текстовые данные 704 в первый алгоритм 610 векторного представления текста для формирования первого рабочего векторного представления 614 и (2) передавать рабочее название 606 во второй алгоритм 612 векторного представления для формирования второго рабочего векторного представления 616. Также в соответствии с некоторыми не имеющими ограничительного характера вариантами осуществления настоящей технологии, электронное устройство 204 способно объединять первое и второе рабочие векторные представления 614, 616 для формирования комбинированного рабочего векторного представления 620. Электронное устройство 204 способно формировать комбинированное рабочее векторное представление 620, применяя к первому и второму рабочим векторным представлениям 614, 616 (1) суммирование, (2) конкатенацию и/или (3) векторное произведение аналогично тому, как это происходит в процессе обучения.
[0104] Кроме того, электронное устройство 204 способно передавать комбинированное рабочее векторное представление 620 в качестве входного векторного представления 502 в модель 212 обработки естественного языка, тем самым обеспечивая формирование моделью 212 обработки естественного языка выходного векторного представления 504, характеризующего рабочую подсказку 722. В некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии рабочая подсказка 722 представляет собой единственную подсказку, например, символ или слово. В других не имеющих ограничительного характера вариантах осуществления настоящей технологии рабочая подсказка 722 представляет собой множество рабочих подсказок, соответствующих рабочим текстовым данным 704 и рабочему названию 606 рабочего приложения.
[0105] Как упомянуто при описании процесса обучения, форма рабочей подсказки 722 зависит от формы рабочих текстовых данных 704. Например, рабочими текстовыми данными 704 может служить префикс заданного слова, состоящий из одного или нескольких символов, такой как префикс «H», представляющий собой текстовые данные 306 на фиг. 3 и 4. В таких вариантах осуществления рабочая подсказка 722 может представлять собой (1) один или несколько непосредственно следующих символов, например, «He», «Ho» или «Hel», или (2) полную форму заданного слова (примером такой подсказки является подсказка 308 «Hey»). Другими примерами могут служить подсказки «Hello», «Hola», «How» и т.д.
[0106] Кроме того, в тех не имеющих ограничительного характера вариантах осуществления настоящей технологии, в которых ввод рабочих текстовых данных осуществляется пользователем 210 путем проведения пальцем по виртуальной клавиатуре 310, электронное устройство 204 способно (1) получать данные, характеризующие кривую касания, такую как кривая 311 касания для текстовых данных 306, (2) формировать рабочий вектор кривой касания, как указано выше, и (3) передавать этот рабочий вектор кривой касания в модель 212 обработки естественного языка в составе рабочего цифрового объекта 702. Таким образом, электронное устройство 204 способно анализировать кривую касания, определяя намерения пользователя, и формировать рабочую подсказку 622, исходя из этих намерений. Иными словами, электронное устройство 204 способно обеспечивать формирование моделью 212 обработки естественного языка рабочей подсказки 722, которая соответствует кривой касания, то есть, например, располагается на этой кривой касания или на продолжающих ее кривых.
[0107] В другом примере, в котором рабочими текстовыми данными 704 служит полная форма заданного слова или префикс следующего слова, рабочая подсказка 722 может представлять собой (1) полную форму следующего слова, как указано выше применительно к процессу обучения, или (2) правильную орфографическую форму следующего слова в том случае, если префикс или полная форма следующего слова содержит орфографическую ошибку. В еще одном примере рабочая подсказка 722 может представлять собой словосочетание, содержащее следующее слово. Например, если рабочие текстовые данные 704 представляют собой текст «See y…», электронное устройство 204 может сформировать рабочую подсказку 722 с текстом «See you later», «See you tomorrow» и/или «See you soon».
[0108] Таким образом, как схематически представлено на фиг. 8, за счет использования модели 212 обработки естественного языка, обученной, как описано выше, электронное устройство 204, в соответствии с некоторыми не имеющими ограничительного характера вариантами осуществления настоящей технологии, способно формировать текстовые подсказки, соответствующие контексту приложения, в котором осуществляется ввод текстовых данных.
[0109] В частности, как показано в примере на фиг. 8, при получении данных 306 «H» от навигационного приложения 405 электронное устройство 204 способно обеспечивать формирование моделью 212 обработки естественного языка набора рабочих подсказок 802 для навигационного приложения, который включает в себя рабочие подсказки «Hotel», «Hospital» и «Hogwarts», предположительно более соответствующие контексту навигационного приложения 402, чем подсказка 308, указанная со ссылкой на фиг. 4. Кроме того, электронное устройство 204 способно выдавать набор рабочих подсказок в строке 306 подсказок, предоставляя пользователю 210 возможность выбрать одну из набора рабочих подсказок 802 для навигационного приложения, чтобы продолжить или завершить ввод текстовых данных 306.
[0110] В некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии электронное устройство 204 способно ранжировать набор рабочих подсказок 802 для навигационного приложения перед его выдачей в зависимости от значений параметра ранжирования. В некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии в параметре ранжирования может учитываться уровень достоверности, с которым модель 212 обработки естественного языка сформировала подсказку из набора рабочих подсказок 802 для навигационного приложения. Например, если после отправки текстовых данных 306 модель 212 обработки естественного языка формирует первую подсказку «Hotel» с первым значением уровня достоверности 0,98 и вторую подсказку «Hogwarts» со вторым значением уровня достоверности 0,70, то при ранжировании первая подсказка займет более высокую позицию, чем вторая подсказка. В других не имеющих ограничительного характера вариантах осуществления настоящей технологии параметр ранжирования может отражать алфавитный порядок сортировки. В таких вариантах осуществления вторая подсказка из примера займет более высокую позицию, чем первая подсказка.
[0111] Таким образом, настоящие способ и система для формирования текстовых подсказок позволяют формировать более уместные текстовые подсказки и тем самым улучшать впечатления пользователя 210 от взаимодействия с множеством приложений, выполняемых на электронном устройстве 204.
Компьютерный способ
[0112] С учетом описанной выше архитектуры и приведенных примеров возможна реализация способа формирования текстовых подсказок, например, набора рабочих подсказок 802 для навигационного приложения. На фиг. 9 представлена блок-схема способа 900 в соответствии с не имеющими ограничительного характера вариантами осуществления настоящей технологии. Способ 900 может быть реализован процессором 110 электронного устройства 204. Как отмечалось выше, электронное устройство 204 способно обеспечивать выполнение множества приложений, таких как приложение 302 для обмена сообщениями и навигационное приложение 402, в которых предусмотрен ввод пользователем 210 текстовых данных, в частности, текстовых данных 306.
Шаг 902: получение текстовых данных пользовательского ввода от пользователя электронного устройства.
[0113] Способ 900 начинается с шага 902, на котором процессор 110 электронного устройства 204 способен получать текстовые данные 306 от пользователя 210 электронного устройства 204 через одно из множества приложений, в частности, через приложение 302 для обмена сообщениями или навигационное приложение 402.
[0114] В соответствии с некоторыми не имеющими ограничительного характера вариантами осуществления настоящей технологии, электронное устройство 204 способно отображать виртуальную клавиатуру 310, предоставляя пользователю 210 возможность введения текстовых данных 306. Таким образом, пользователь 210 может выполнять ввод текстовых данных 306, касаясь элементов управления виртуальной клавиатуры 310, выбирая их мышью или проводя по ним пальцем.
[0115] В некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии текстовые данные 306 могут включать в себя префикс заданного слова, в том числе один или несколько символов. В некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии текстовые данные 306 могут включать в себя полную форму заданного слова.
[0116] Следующим шагом в способе 900 является шаг 904.
Шаг 904: формирование первого векторного представления, характеризующего текстовые данные пользовательского ввода, и формирование второго векторного представления, характеризующего название приложения из множества приложений, в котором пользователем выполнен ввод этих текстовых данных.
[0117] На шаге 904, в соответствии с некоторыми не имеющими ограничительного характера вариантами осуществления настоящей технологии, процессор 110 способен формировать (1) первое рабочее векторное представление 614 для текстовых данных 306, используя первый алгоритм 610 векторного представления текста, и (2) второе рабочее векторное представление 616 для рабочего названия 606 приложения 302 для обмена сообщениями или навигационного приложения 402, используя второй алгоритм 612 векторного представления текста. Подробное описание того, как может быть реализован каждый из первого и второго алгоритмов 610, 612 векторного представления текста в соответствии с некоторыми не имеющими ограничительного характера вариантами осуществления настоящей технологии, приведено выше со ссылкой на фиг. 6.
[0118] Следующим шагом в способе 900 является шаг 906.
Шаг 906: объединение первого и второго векторных представлений с целью формирования комбинированного векторного представления для текстовых данных пользовательского ввода.
[0119] На шаге 906 процессор 110 способен объединять первое и второе рабочие векторные представления 614, 616 для формирования комбинированного рабочего векторного представления 620. Для этого в различных не имеющих ограничительного характера вариантах осуществления настоящей технологии процессор 110 способен применять к первому и второму рабочим векторным представлениям 614, 616 суммирование, конкатенацию и/или векторное произведение.
[0120] Следующим шагом в способе 900 является шаг 908.
Шаг 908: передача комбинированного векторного представления в модель обработки естественного языка, обученную формированию текстовых подсказок на основе текущих данных пользовательского ввода в каждом из множества приложений и на основе, по меньшей мере частично, названий этих приложений, с целью формирования текстовой подсказки, которую пользователь может выбрать для ввода в заданном приложении после текстовых данных пользовательского ввода.
[0121] На шаге 908 процессор 110 способен передавать комбинированное рабочее векторное представление 620 в модель 212 обработки естественного языка, тем самым обеспечивая формирование моделью 212 обработки естественного языка выходных данных 504, представляющих рабочую подсказку 722, как описано выше со ссылкой на фиг. 7 и 8. Способ обучения модели 212 обработки естественного языка формированию текстовой подсказки описан выше со ссылкой на фиг. 5 и 6.
[0122] В соответствии с некоторыми не имеющими ограничительного характера вариантами осуществления настоящей технологии, рабочая подсказка 722 может включать в себя по меньшей мере один непосредственно следующий символ для добавления к текстовым данным 306, полную форму слова, префикс которого содержат введенные текстовые данные 306, правильную орфографическую форму слова в случае обнаружения орфографической ошибки в текстовых данных 306, содержащих префикс или полную форму слова, или словосочетание со словом, префикс которого содержится во введенных текстовых данных 306. Как указано выше со ссылкой на фиг. 7 и 8, в соответствии с некоторыми не имеющими ограничительного характера вариантами осуществления настоящей технологии, рабочая подсказка 722 может представлять собой единственную подсказку, такую как подсказка 308 в приложении 302 для обмена сообщениями. В других не имеющих ограничительного характера вариантах осуществления настоящей технологии рабочая подсказка 722 может представлять собой множество рабочих подсказок, такое как набор рабочих подсказок 802 для навигационного приложения в навигационном приложении 402.
[0123] В тех вариантах осуществления, в которых процессор 110 способен обеспечивать формирование моделью 212 обработки естественного языка набора рабочих подсказок 802 для навигационного приложения, процессор 110 дополнительно способен ранжировать набор рабочих подсказок 802 для навигационного приложения в зависимости от значений параметра ранжирования, соответствующих входящим в этот набор подсказкам. Например, в параметре ранжирования может учитываться уровень достоверности, с которым модель 212 обработки естественного языка формирует рабочую подсказку из набора рабочих подсказок 802 для навигационного приложения. В другом примере параметр ранжирования может отражать алфавитный порядок сортировки.
[0124] Следующим шагом в способе 900 является шаг 910.
Шаг 910: выдача текстовой подсказки, обеспечивающей пользователю электронного устройства возможность введения этой текстовой подсказки в заданном приложении после текстовых данных пользовательского ввода.
[0125] На шаге 910 процессор 110 электронного устройства 204 способен выдавать рабочую подсказку 722 в строке 309 подсказок виртуальной клавиатуры 310, предоставляя пользователю 210 возможность выбрать рабочую подсказку 722, чтобы продолжить или завершить ввод текстовых данных 306.
[0126] Таким образом, некоторые не имеющие ограничительного характера варианты осуществления способа 900 позволяют учитывать контекст конкретного приложения при формировании текстовых подсказок для текстовых данных, вводимых в приложениях. В частности, если пользователь 210 вводит текстовые данные 306 «H» в приложении 302 для обмена сообщениями, процессор 110 способен сформировать рабочую подсказку 722, включающую в себя подсказку 308 «Hey», как схематически представлено на фиг. 3, которая контекстуально соответствует приложению 302 для обмена сообщениями. Если же пользователь 210 вводит текстовые данные 306 «H» в навигационном приложении 402, процессор 110 способен сформировать набор рабочих подсказок 802 для навигационного приложения, включающий в себя текстовые подсказки «Hotel», «Hospital» и «Hogwarts». Поскольку каждая рабочая подсказка из набора рабочих подсказок 802 для навигационного приложения представляет собой пункт назначения, предполагается, что эти подсказки контекстуально ближе к навигационному приложению 402, чем подсказка 308, как показано на фиг. 4.
[0127] Таким образом, некоторые не имеющие ограничительного характера варианты осуществления способа 900 помогают повышать степень удовлетворенности пользователя 210 от взаимодействия с множеством приложений, выполняемых на электронном устройстве 204, и с электронным устройством 204 в целом.
[0128] На этом реализация способа 900 завершается.
[0129] Для специалиста в данной области могут быть очевидными возможные изменения и усовершенствования описанных выше вариантов осуществления настоящей технологии. Предшествующее описание приведено лишь в иллюстративных целях, а не для ограничения объема изобретения. Объем охраны настоящей технологии определяется исключительно объемом приложенной формулы изобретения.
[0130] Несмотря на то, что выше описаны варианты осуществления изобретения с указанием конкретных шагов, выполняемых в определенном порядке, следует понимать, что эти шаги могут быть объединены, разделены на части или переупорядочены без отступления от существа и объема настоящей технологии. Соответственно, порядок и группирование шагов не носят ограничительного характера для настоящей технологии.
Изобретение относится к области вычислительной техники. Технический результат заключается в повышении точности формирования текстовых подсказок для текста, вводимого в одном из множества приложений. Технический результат достигается за счет этапов, на которых выполняют: получение текстовых данных пользовательского ввода от пользователя электронного устройства; формирование первого векторного представления, характеризующего текстовые данные пользовательского ввода; формирование второго векторного представления, характеризующего название приложения из множества приложений, в котором пользователем выполнен ввод текстовых данных; объединение первого и второго векторных представлений с целью формирования комбинированного векторного представления для текстовых данных пользовательского ввода; передачу комбинированного векторного представления в модель обработки естественного языка, обученную формированию текстовых подсказок на основе текущих данных пользовательского ввода в каждом из множества приложений и на основе названий этих приложений, с целью формирования текстовой подсказки, которую пользователь может выбрать для ввода в заданном приложении после текстовых данных пользовательского ввода; и выдачу текстовой подсказки, обеспечивающей пользователю электронного устройства возможность введения текстовой подсказки в заданном приложении после текстовых данных пользовательского ввода. 2 н. и 18 з.п. ф-лы, 9 ил.
1. Компьютерный способ формирования текстовых подсказок для текста, вводимого в одном из множества приложений, выполняемых на электронном устройстве, который предусматривает:
- получение текстовых данных пользовательского ввода от пользователя электронного устройства;
- формирование первого векторного представления, характеризующего текстовые данные пользовательского ввода;
- формирование второго векторного представления, характеризующего название приложения из множества приложений, в котором пользователем выполнен ввод текстовых данных;
- объединение первого и второго векторных представлений с целью формирования комбинированного векторного представления для текстовых данных пользовательского ввода;
- передачу комбинированного векторного представления в модель обработки естественного языка, обученную формированию текстовых подсказок на основе текущих данных пользовательского ввода в каждом из множества приложений и на основе, по меньшей мере частично, названий этих приложений, с целью формирования текстовой подсказки, которую пользователь может выбрать для ввода в заданном приложении после текстовых данных пользовательского ввода; и
- выдачу текстовой подсказки, обеспечивающей пользователю электронного устройства возможность введения текстовой подсказки в заданном приложении после текстовых данных пользовательского ввода.
2. Способ по п. 1, в котором формирование первого векторного представления предусматривает применение алгоритма векторного представления текста на основе сверточной нейронной сети.
3. Способ по п. 2, в котором алгоритм векторного представления текста представляет собой алгоритм векторного представления CHAR-CNN.
4. Способ по п. 1, в котором формирование второго векторного представления предусматривает применение алгоритма прямого унитарного кодирования.
5. Способ по п. 1, в котором объединение первого и второго векторных представлений включает в себя суммирование этих векторных представлений.
6. Способ по п. 1, в котором модель обработки естественного языка содержит рекуррентную нейронную сеть.
7. Способ по п. 1, в котором модель обработки естественного языка представляет собой нейронную сеть с длинной кратковременной памятью (LSTM).
8. Способ по п. 1, в котором модель обработки естественного языка представляет собой нейронную сеть с чередованием слоев смешивания каналов и смешивания по времени (RWKV).
9. Способ по п. 1, в котором ввод пользователем текстовых данных выполнен путем проведения пальцем по виртуальной клавиатуре электронного устройства с намерением ввести символ в составе слова, а текстовая подсказка содержит символ, следующий в этом слове непосредственно за этим символом.
10. Способ по п. 9, который дополнительно предусматривает определение намерения на основе кривой, сформированной в результате проведения пальцем по виртуальной клавиатуре.
11. Способ по п. 1, в котором текстовые данные пользовательского ввода содержат слово и префикс следующего слова, а текстовая подсказка содержит полную форму следующего слова и/или правильную орфографическую форму следующего слова.
12. Способ по п. 11, в котором полная форма следующего слова включает в себя список полных форм кандидатов следующего слова.
13. Способ по п. 11, в котором правильная орфографическая форма следующего слова включает в себя словосочетание, содержащее следующее слово.
14. Способ по п. 11, который дополнительно предусматривает ранжирование полных и/или правильных орфографических форм следующего слова в зависимости от значений параметра ранжирования, а выдача предполагает выдачу полных и/или правильных орфографических форм в порядке убывания значений параметра ранжирования.
15. Способ по п. 14, в котором параметр ранжирования характеризует позицию текстовой подсказки при сортировке в алфавитном порядке или уровень достоверности при формировании текстовой подсказки.
16. Способ по п. 1, в котором текстовая подсказка для текстовых данных пользовательского ввода в одном приложении отличается от текстовой подсказки для тех же текстовых данных пользовательского ввода в другом приложении из множества приложений электронного устройства.
17. Способ по п. 1, который реализуется на электронном устройстве.
18. Способ по п. 1, который дополнительно предусматривает обучение модели обработки естественного языка путем:
- получения обучающего набора данных, содержащего множество обучающих цифровых объектов, каждый из которых содержит:
- первое обучающее векторное представление, характеризующее заданные обучающие текстовые данные пользовательского ввода в обучающем приложении;
- второе обучающее векторное представление, характеризующее название обучающего приложения, в котором был выполнен ввод обучающих данных пользовательского ввода; и
- метку, содержащую третье обучающее векторное представление, характеризующее другие обучающие текстовые данные пользовательского ввода, вводимые в обучающем приложении после заданных текстовых данных пользовательского ввода; и
- передачи обучающего цифрового объекта из множества обучающих цифровых объектов в модель обработки естественного языка с целью сведения к минимуму на текущей итерации обучения расхождения между текущим прогнозом, сформированным моделью обработки естественного языка, и меткой.
19. Электронное устройство, обеспечивающее формирование текстовых подсказок для текста, вводимого в одном из множества приложений, выполняемых на электронном устройстве, и содержащее по меньшей мере один процессор и по меньшей мере одну физическую машиночитаемую память, хранящую исполняемые команды, при исполнении которых по меньшей мере одним процессором на электронном устройстве обеспечивается:
- получение текстовых данных пользовательского ввода от пользователя электронного устройства;
- формирование первого векторного представления, характеризующего текстовые данные пользовательского ввода;
- формирование второго векторного представления, характеризующего название приложения из множества приложений, в котором пользователем выполнен ввод текстовых данных;
- объединение первого и второго векторных представлений с целью формирования комбинированного векторного представления для текстовых данных пользовательского ввода;
- передача комбинированного векторного представления в модель обработки естественного языка, обученную формированию текстовых подсказок на основе текущих данных пользовательского ввода в каждом из множества приложений и на основе, по меньшей мере частично, названий этих приложений, с целью формирования текстовой подсказки, которую пользователь может выбрать для ввода в заданном приложении после текстовых данных пользовательского ввода; и
- выдача текстовой подсказки, обеспечивающей пользователю электронного устройства возможность введения текстовой подсказки в заданном приложении после текстовых данных пользовательского ввода.
20. Электронное устройство по п. 19, в котором для формирования первого векторного представления по меньшей мере один процессор обеспечивает на электронном устройстве применение алгоритма векторного представления CHAR-CNN к текстовым данным пользовательского ввода.
Способ регенерирования сульфо-кислот, употребленных при гидролизе жиров | 1924 |
|
SU2021A1 |
Способ регенерирования сульфо-кислот, употребленных при гидролизе жиров | 1924 |
|
SU2021A1 |
Способ получения продуктов конденсации фенолов с формальдегидом | 1924 |
|
SU2022A1 |
Способ регенерирования сульфо-кислот, употребленных при гидролизе жиров | 1924 |
|
SU2021A1 |
СПОСОБ И СИСТЕМА ГЕНЕРАЦИИ ТЕКСТА ДЛЯ ЦИФРОВОГО АССИСТЕНТА | 2022 |
|
RU2796208C1 |
Авторы
Даты
2025-06-04—Публикация
2024-01-10—Подача