СПОСОБЫ ДЛЯ ПОНИМАНИЯ НЕПОЛНОГО ЗАПРОСА НА ЕСТЕСТВЕННОМ ЯЗЫКЕ
METHODS FOR UNDERSTANDING INCOMPLETE NATURAL LANGUAGE QUERY

УРОВЕНЬ ТЕХНИКИ
[0001] Различные вычислительные устройства используют приложения для понимания языков (например, приложения цифровых секретарей) для приема входных данных от пользователей. Приложения для понимания языков, однако, часто принимают неполные входные данные, такие как текстовые или звуковые входные данные. Например, когда пользователь печатает или жестикулирует, входные данные являются неполными, по меньшей мере, до тех пор, пока пользователь не прекратит вводить входные данные. Таким образом, интерпретация в реальном времени входных данных требует понимания неполных входных данных. Понимание в реальном времени неполных выражений на естественном языке может повысить как эффективность компьютера, так и эффективность пользователя, поскольку необходимость того, чтобы пользователь завершил выражение, приводит к непродуктивным тратам времени пользователя и увеличивает время, которое необходимо компьютеру для доставки ответа пользователю. В этой связи, приложения цифровых секретарей могут иметь потребность в интерпретации неполных текстовых входных данных и звуковых входных данных.
[0002] Интерпретация неполных входных данных представляет собой сложную задачу. Например, пользователь может желать, чтобы компьютер выполнил конкретное действие (или действия) при вводе неполных входных данных. «Действие» является любой функцией, исполняемой компьютером, например, "create a meeting" («назначить встречу»), "get a route" («найти маршрут»), "create a task" («создать задачу»), "set an alarm" («установить предупредительный сигнал»), и т.п. «Желаемое действие» является конкретным действием или действиями, которые пользователь стремится выполнить при вводе неполных входных данных (желаемое действие (действия) будет называться здесь «намерением пользователя» или «пользовательским намерением»). Некоторые приложения для понимания языков обеспечивают для пользователя автоматически дополняемые предложения на основе неполных входных данных. Однако, эти предложения могут не реализовать намерение пользователя, например, могут не обеспечить выполнение желаемого действия.
[0003] Аспекты технологии были разработаны в отношении этих и других общих соображений. Также, хотя обсуждались относительно конкретные проблемы, следует понимать, что варианты осуществления не ограничены решением конкретных проблем, идентифицированных в данном уровне техники.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[0004] Раскрытие настоящего изобретения относится к интерпретации вычислительным устройством неполных входных данных на естественном языке. В аспектах технологии, одно или более устройств предпринимают действие на основе неполного выражения на естественном языке. Например, неполное выражение на естественном языке может быть принято вычислительным устройством в качестве входных данных. Входные данные могут быть одними или более из текстовых, жестовых, или речевых входных данных. На основании этого неполного выражения на естественном языке, вырабатывается одно или более предсказаний в отношении предметной области или предметных областей (т.е. группы связанных действий, такой как предметная область календаря, предметная область предупредительных сигналов и т.д.), в которых пользователь желает действовать.
[0005] Дополнительно, аспекты технологии включают в себя предсказание правдоподобия того, что намерение пользователя направлено на конкретное действие конкретной предметной области. Например, одна предметная область является предметной областью календаря, и примеры действий, которые могут быть предприняты в предметной области календаря, включают в себя назначение встречи, отмена встречи или перенос встречи. На основе неполного выражения на естественном языке, гипотеза о намерении для каждого действия в предметной области создается для каждого действия. Гипотеза о намерении является предсказанием того, что действие в предметной области является намерением пользователя (т.е. желаемым действием). Поскольку могут быть предсказаны множественные предметные области и каждая предметная область может иметь множественные действия, предсказания множественных предметных областей могут приводить к множественным гипотезам о намерении.
[0006] В одном аспекте, если гипотеза о намерении является гипотезой о намерении, которая использует дополнительную информацию (например, намерение состоит в назначении календарной встречи, которая может использовать дату, время, участников и т.д.), то тогда анализ неполного выражения на естественном языке и/или другой контекстной информации может получать дополнительную информацию (например, может осуществляться поиск информации, относящейся к дате, времени и участникам в неполных входных данных или в отношении неполных входных данных).
[0007] Дополнительно, множество выбираемых опций (например, GUI для приложения предметной области календаря) может быть сгенерировано для каждой предсказанной предметной области, и каждая выбираемая опция может быть представлена пользователю. Выбираемые опции могут быть упорядочены на основе анализа правдоподобия того, что предсказанная предметная область отражает намерение пользователя, с использованием информации, предварительно заполняемой в выбираемых опциях (например, даты и времени для потенциальной встречи). В аспектах технологии, выбор выбираемой опции предписывает графическому пользовательскому интерфейсу представить приложение предметной области на устройстве пользователя. Приложение предметной области является приложением для выполнения одного или более действий в конкретной предметной области. Приложения предметных областей используют функции для выполнения действий. Например, приложение предметной области календаря может использовать функцию «create_meeting» («назначить_встречу») для назначения встречи. По существу, представление конкретного приложения предметной области может позволить пользователю заполнить любую дополнительную информацию, которую приложение предметной области не обнаружило или не получило из неполного выражения на естественном языке и/или другой контекстной информации.
[0008] Дополнительно, аспекты технологии включают в себя внутренний модуль обучения для создания модели анализа неполных выражений на естественном языке. Внутренний модуль обучения может использовать тестовые неполные выражения на естественном языке. Каждое тестовое неполное выражение на естественном языке будет отражать реальное намерение пользователя. Тестовое неполное выражение на естественном языке (или элементы выражения) будут анализироваться с использованием множества технологий для создания алгоритма предсказания, который может быть использован для предсказания намерения на основе неполного выражения на естественном языке. В одном аспекте, тестовое неполное выражение на естественном языке будет приравнено к одному или более полным моделям полных запросных выражений на естественном языке. Таким образом, процесс создания модели анализа неполных выражений на естественном языке может эффективно использовать ранее созданные модели полных запросных выражений на естественном языке.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0009] Неограничивающие и неисчерпывающие примеры описаны со ссылкой на следующие фигуры.
[0010] Фиг. 1 показывает иллюстративную динамическую систему, реализуемую на клиентском вычислительном устройстве, для понимания неполных выражений на естественном языке, согласно иллюстративному варианту осуществления.
[0011] Фиг. 2 показывает сетевую систему для интерпретации неполных выражений на естественном языке согласно одному или более аспектам.
[0012] Фиг. 3 показывает способ для интерпретации неполных выражений на естественном языке.
[0013] Фиг. 4 показывает способ для приема и отображения предсказанной информации, полученной на основании неполного выражения на естественном языке.
[0014] Фиг. 5 является блок-схемой, показывающей физические компоненты (например, аппаратные средства) вычислительного устройства, с которыми могут применяться на практике аспекты раскрытия настоящего изобретения.
[0015] Фиг. 6А показывает один аспект мобильного вычислительного устройства 600 для реализации аспектов технологии.D
[0016] Фиг. 6B является блок-схемой, показывающей архитектуру одного аспекта мобильного вычислительного устройства.
[0017] Фиг. 7 показывает один аспект архитектуры системы для обработки данных, принимаемых вычислительной системой от удаленного источника, такого как вычислительное устройство, планшет, или мобильное устройство.
[0018] Фиг. 8 показывает иллюстративное планшетное вычислительное устройство, которое может исполнить один или более аспектов, раскрытых здесь.
[0019] Фиг. 9 показывает систему для создания модели анализа неполных выражений на естественном языке.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
[0020] В нижеследующем подробном описании, сделаны ссылки на сопутствующие чертежи. Эти чертежи являются частью этого раскрытия настоящего изобретения, и каждый чертеж обеспечивает примеры конкретных аспектов технологии. Применение технологии является более широким, чем примеры, показанные в чертежах. Действительно, показанные аспекты могут быть объединены, могут быть использованы другие аспекты, и структурные изменения могут быть осуществлены, не выходя за рамки сущности и объема раскрытия настоящего изобретения. Аспекты могут быть применены на практике в виде способов, систем или устройств. Таким образом, аспекты могут иметь форму аппаратной реализации, полностью программной реализации или реализации, объединяющей программные и аппаратные аспекты. Таким образом, нижеследующее подробное описание не следует понимать в ограничивающем смысле, и объем раскрытия настоящего изобретения определен прилагаемой формулой изобретения и ее эквивалентами.
[0021] Раскрытие настоящего изобретения, в общем, относится к пониманию неполных выражений на естественном языке. Неполное выражение на естественном языке является строкой символов, слов и/или жестами, в которой пропущен один или более символов или слов. Неограничивающие примеры неполных выражений на естественном языке включают в себя неполные текстовые входные данные, сенсорные входные данные, жестовые входные данные, или речевые входные данные. Например, текстовые входные данные, вводимые пользователем в реальном времени в цифрового секретаря, являются неполными по меньшей мере до тех пор, пока пользователь не закончит печатать входные данные. Технология включает в себя распознавание и извлечение входных данных, анализ входных данных для определения возможного намерения пользователя, и исполнение одного или более приложений на основе возможного намерения пользователя.
[0022] Рассмотрим ситуацию, когда, например, пользователь печатает, и выражение на естественном языке может быть неполным, например, "Tomorrow morning I can't mee" («Завтра утром я не смогу встре»). Пользователь может находиться в процессе печати полного выражения на естественном языке, например, "Tomorrow morning I can't meet with Jason at 9 am. Cancel the meeting at 9 am" («Завтра утром я не смогу встретиться с Джейсоном в 9 часов утра. Отмени встречу в 9 часов утра»). Настоящая технология включает в себя распознавание, извлечение, и анализ неполных входных данных. В одном аспекте, это происходит в реальном времени (например, в момент времени или по существу одновременно с моментом времени, когда принимаются входные данные).
[0023] Один аспект технологии может определить большое правдоподобие того, что неполные входные данные пользователя направлены на конкретную предметную область, такую как предметная область календаря. Например, полное выражение, приведенное выше, явно идентифицирует намерение пользователя отменить встречу, что является действием, которое может быть выполнено в предметной области календаря. Однако, намерение пользователя отменить встречу может быть также получено на основании принятых неполных входных данных. Например, фраза "I can't mee" («Я не смогу встре») может иметь возможную корреляцию с фразой "I can't meet" («Я не смогу встретиться»). На основании фразы "I can't meet" («Я не смогу встретиться») и контекстной информации, при ее наличии (например, встреча назначена на завтрашнее утро в календаре пользователя), может быть определено первое возможное намерение пользователя отменить встречу. Таким образом, технология может начать исполнение приложения предметной области календаря. Компьютер может предварительно заполнить информацию в приложении предметной области календаря, чтобы предписать отмену конкретной встречи на основе неполного выражения на естественном языке. Предварительное заполнение входных данных может быть обеспечено таким образом, чтобы оно удовлетворяло одной или более функциям приложения предметной области календаря.
[0024] Дополнительно, один аспект технологии включает в себя определение второго возможного намерения пользователя. Например, на основе неполного выражения на естественном языке "Tomorrow morning I can't mee" («Завтра утром я не смогу встре»), может быть определено, что пользователь пытается осуществить доступ к предметной области передвижения. Это может произойти на основе другой доступной контекстной информации. Например, если определено, что входные данные предполагают отмену встречи, и пользователь также собирается совершить полет к месту встречи перед запланированной встречей, то тогда может быть определено, что пользователь, возможно, пожелает отменить полет. Таким образом, приложение предметной области передвижения может начать исполняться и может предварительно заполнить информацию, достаточную для отмены планов по передвижению.
[0025] Аспекты технологии включают в себя обеспечение того, чтобы каждое приложение предметной области исполнялось параллельно. В одном аспекте, для пользователя генерируются выходные данные, причем эти выходные данные позволяют пользователю подтвердить намерение (или намерения) неполного выражения на естественном языке.
[0026] Следует отметить, что вышеупомянутый пример приведен в целях иллюстрации. В то время как данная технология может быть использована для анализа неполных выражений на естественном языке, не существует никаких требований в отношении того, что вычислительная система может распознавать или узнавать, что выражение на естественном языке является неполным. Напротив, аспекты технологии включают в себя выполнение анализа неполных выражений на естественном языке на основании любых принятых входных данных.
[0027] Фиг. 1 показывает один аспект динамической системы 100 для понимания неполных выражений на естественном языке. В аспектах, динамическая система 100 может быть реализована на клиентском вычислительном устройстве 104. В основной конфигурации, клиентское вычислительное устройство 104 является вычислительным устройством, имеющим как элементы ввода, так и элементы вывода. Клиентское вычислительное устройство 104 может быть любым вычислительным устройством, подходящим для реализации динамической системы 100 для понимания неполных выражений на естественном языке. Например, клиентское вычислительное устройство 104 может быть по меньшей мере одним из: мобильного телефона; смартфона; планшета; фаблета; интеллектуальных часов; носимого компьютера; персонального компьютера; настольного компьютера; компактного портативного компьютера; и т.д. Этот список является исключительно иллюстративным и не должен рассматриваться в качестве ограничения. Для реализации динамической системы 100 для понимания неполных выражений на естественном языке может быть использовано любое подходящее клиентское вычислительное устройство.
[0028] В аспектах, динамическая система 100 может включать в себя компонент 110 распознавания входных данных, компонент 120 извлечения, компонент 130 анализа естественных языков, предсказатель 135 набора предметных областей, компонент 140 генерации гипотез, компонент 150 предметных областей, и компонент 190 генерации выходных данных. Различные компоненты могут быть реализованы с использованием аппаратных средств, программных средств, или комбинации аппаратных и программных средств.
[0029] Динамическая система 100 может быть выполнена с возможностью обработки неполных выражений на естественном языке. В этой связи, динамическая система 100 может обеспечить прием неполных выражений на естественном языке. В одном примере, неполное выражение на естественном языке может включать в себя фразы, слова, и/или термины в форме устных или знаковых языковых входных данных (например, пользовательский вопрос и/или запрос). В другом примере, выражение на естественном языке может включать в себя фразы, слова, и/или термины в форме текстовых языковых входных данных (например, пользовательский вопрос и/или запрос). Например, в неполном выражении на естественном языке, "Tomorrow morning, I can't mee" («Завтра утром я не смогу встре»), пропущен один или более символов, и оно не образует полного выражения на естественном языке.
[0030] В одном аспекте технологии, компонент 110 распознавания входных данных принимает входные данные от пользователя, независимо от того, являются ли они устными, знаковыми, или напечатанными. Компонент 110 распознавания входных данных интерпретирует входные данные в виде последовательности символов, понимаемых вычислительным устройством. Например, динамическая система 100 может включать в себя компонент 110 распознавания входных данных, который является компонентом текстовых входных данных. В одном аспекте, компонент текстовых входных данных может быть выполнен с возможностью приема входных данных через сенсорный экран или клавиатуру.
[0031] Дополнительно, динамическая система 100 может включать в себя компонент 110 распознавания входных данных, который является компонентом распознавания речи. В аспектах, компонент распознавания речи может включать в себя стандартные технологии распознавания речи, известные специалистам в данной области техники, такие как «автоматическое распознавание речи» (ASR), «компьютерное распознавание речи» и «преобразование речи в текст» (STT). В некоторых случаях, компонент распознавания речи может включать в себя стандартные технологии преобразования текста в речь, известные специалистам в данной области техники, такие как «преобразование текста в речь» . Специалист в данной области техники может понять, что компонент распознавания речи может включать в себя один или более различных типов компонентов распознавания речи и/или распознавания текста.
[0032] Дополнительно, динамическая система 100 может включать в себя компонент 110 распознавания входных данных, который является компонентом распознавания жестов. Компонент распознавания жестов может включать в себя стереокамеры, камеры осознания глубины, проводные устройства (такие как перчатки), гироскопические устройства, устройства-контроллеры, единственные камеры и т.п.
[0033] В аспектах, после приема компонентом 110 распознавания входных данных, входные данные, затем, отправляются к компоненту 120 извлечения. Один аспект технологии включает в себя компонент 120 извлечения, который имеет средство 122 извлечения символьных n-грамм. Средство 122 извлечения символьных n-грамм синтаксически разбирает входные данные на последовательности из одного или более смежных символов, известные как символьные n-граммы. При использовании в раскрытии настоящего изобретения, количество символов в символьной n-грамме будет определять наименование конкретной n-граммы. Например, символы, извлеченные в формате «символьной триграммы», могут включать в себя три смежных символа из входных данных. По существу, если слово «reminder» («напоминание») извлекалось в формате триграммы, то извлеченными триграммами являются: "r e m", "e m i", "m i n", "i n d", "n d e", и "d e r". Множественные n-граммы могут быть извлечены для единственного неполного выражения на естественном языке.
[0034] В аспектах технологии, средство 122 извлечения символьных n-грамм извлекает полные выражения, независимо от того, является ли каждое слово в выражении некоторым словом. Таким образом, например, фраза "Find Car" («Найти автомобиль») может быть извлечена в формате символьных триграмм в виде: "F i n", "i n d", "n d _", "d _ C", "_ C a", и "C a r", где символ "_" указывает на пробел. В других вариантах осуществления, пробел игнорируют. Могут быть использованы другие символьные n-граммы.
[0035] Дополнительно, компонент 120 извлечения может иметь компонент 124 извлечения n-грамм слов. Компонент 124 извлечения n-грамм слов синтаксически разбирает неполное выражение на естественном языке на одну или более n-грамм слов. Например, компонент 124 извлечения n-грамм слов может синтаксически разобрать неполное выражение на естественном языке "find car at" («найти автомобиль в») на диграммы, такие как "find car" («найти автомобиль») и "car at" («автомобиль в»). Следует отметить, что n-граммы частичных слов могут быть также извлечены компонентом 124 извлечения n-грамм слов. Например, неполное выражение на естественном языке "find ca" («найти авто») может быть синтаксически разобрано на монограммы слов, такие как "find" («найти») и "ca" («авто»). Таким образом, компонент 124 извлечения n-грамм слов может извлекать частичные слова из n-грамм слов и/или полные слова из n-грамм.
[0036] Компонент 120 извлечения отправляет извлеченные n-граммы к компоненту 130 анализа естественных языков. В вариантах осуществления, контекстные слова, окружающие n-грамму, также отправляют к компоненту 130 анализа естественных языков. Например, нижеследующее является примером контекстного слова "create" («создать») с различными n-граммами, от частичной символьной монограммы до частичной символьной септаграммы, извлеченными из неполных входных данных "reminde". Каждая из этих n-грамм частичных слов может быть затем отправлена к компоненту 130 анализа естественных языков для анализа.
a. create r
b. create re
c. create rem
d. create remi
e. create remin
f. create reminde
Следует понимать, что каждая из этих n-грамм может быть извлечена в реальном времени. Таким образом, например, если пользователь пытается напечатать "create reminder at 6:00 pm" («создать напоминание на 6 часов вечера»), то компонент 120 извлечения будет отправлять n-граммы к компоненту 130 анализа естественных языков после приема каждой буквы.
[0037] В аспектах технологии, компонент 130 анализа естественных языков анализирует каждую извлеченную n-грамму все время, в том числе n-грамму полного слова, для создания набора возможных предметных областей. Например, компонент 130 анализа естественных языков может идентифицировать набор возможных предметных областей на основе n-граммы полного слова "create" («создать») и каждой извлеченной n-граммы, связанной с неполными входными данными "reminde." В одном аспекте, одной из возможных предметных областей является предметная область предупредительных сигналов. Другие возможные предметные области могут включать в себя предметную область контактов, предметную область задач, предметную область календаря, или предметную область передвижений. Компонент 130 анализа естественных языков может иметь анализатор 132 символьных n-грамм, который анализирует принятые символьные n-граммы, и анализатор 134 n-грамм слов, который анализирует принятые n-граммы слов.
[0038] В одном аспекте, предсказатель 135 набора предметных областей принимает набор возможных предметных областей, идентифицированный компонентом 130 анализа естественных языков. В одном варианте осуществления, предсказатель набора предметных областей использует возможные предметные области, идентифицированные компонентом 130 анализа естественных языков, и добавляет, модифицирует или изменяет возможные предметные области на основе другой контекстной информации. Например, ранее принятая информация, основанная на проходах информация (дополнительно обсуждается ниже), и информация отображения, могут быть все использованы для уточнения набора возможных предметных областей. В одном аспекте, набор возможных предметных областей является предварительно заданным и включает в себя все предметные области, ассоциированные с динамической системой 100.
[0039] В одном аспекте, после идентификации набора возможных предметных областей, идентифицированные возможные предметные области вместе с релевантными n-граммами и/или контекстной информацией поступают в компонент 140 генерации гипотез. Компонент 140 генерации гипотез анализирует информацию и присваивает показатель достоверности одному или более намерениям пользователя (т.е. желаемым действиям), ассоциированным с каждой возможной предметной областью, предсказанной предсказателем 135 набора предметных областей. Показатель достоверности является рангом, например, числом между 0 и 1, который представляет правдоподобие того, что конкретное предсказанное намерение является фактическим намерением пользователя. Например, при анализе того, направлено ли неполное выражение на естественном языке на намерение "create an alarm" («создать предупредительный сигнал») в предметной области предупредительных сигналов, компонент 140 генерации гипотез может определить показатель достоверности для n-граммы полного слова "create" («создать»), за которой следуют n-граммы частичных слов, как указано ниже:
N-грамма
Показатель достоверности
a. create r
0,5125763
b. create re
0,5567417
c. create rem
0,5567417
d. create remi
0,6224860
e. create remin
0,6629963
f. create reminde
0,7343581
Таким образом, компонент 140 генерации гипотез анализирует n-грамму полного слова "create" («создать»), за которой следует септаграмма частичного слова "reminde", для определения того, является ли намерением пользователя создание предупредительного сигнала в предметной области предупредительных сигналов. Анализ приводит к показателю достоверности, равному ~0,73, например. Следует отметить, что компонент 140 генерации гипотез может генерировать гипотезу о намерении после приема каждого символа (например, в реальном времени, когда пользователь печатает символ).
[0040] Другая контекстная информация может быть использована компонентом 140 генерации гипотез. Например, компонент 130 анализа естественных языков может определить, что неполное выражение на естественном языке "show me directions to Wash" («покажи мне маршруты до Bаш») указывает на то, что цель пользователя может быть связана с предметной областью географических карт (например, возможной предметной областью). После такого определения, компонент 140 генерации гипотез может выработать предсказание намерения с использованием неполного выражения на естественном языке. Предсказание намерения может быть основано на одной или более n-граммах. Например, для неполного выражения на естественном языке "show me directions to Wash" («покажи мне маршруты до Bаш»), компонент 140 генерации гипотез может определить, что первым предсказанным намерением пользователя 102 является "get directions" («получить маршруты») (желаемое действие) до некоторого местоположения, которое является действием, которое может быть выполнено в первой возможной предметной области, например, в предметной области географических карт. Для осуществления первого предсказанного намерения, для пользователя может быть обеспечена опция для доступа к первому приложению 160 предметной области, такому как приложение для работы с географическими картами. Такое предсказание намерения может быть основано на высокой вероятности того, что n-грамма частичного слова "Wash" ("Ваш") является сокращением для географического местоположения, такого как "Washington, Oregon" («Вашингтон, штат Орегон») или "Washington, D.C." («Вашингтон, округ Колумбия»). Определение вероятности может быть основано на определении компонентом 140 генерации гипотез того, что устройство находится вблизи местоположения, содержащего квадрограмму «wash» ("ваш") и/или на основании контекстной фразы "show me directions to" («покажи мне маршруты до»).
[0041] Как предсказатель 135 набора предметных областей, так и компонент 140 генерации гипотез могут использовать другую информацию для идентификации возможной предметной области (областей) и/или предсказанного намерения (намерений) пользователя, соответственно. Например, анализ неполных выражений на естественном языке может происходить как в сценариях с единственным проходом, так и/или в сценариях с множественными проходами (более подробно описаны ниже). Как в сценарии с единственным проходом, так и/или в сценарии с множественными проходами, различные n-граммы могут быть использованы либо сами по себе, либо в сочетании с анализом n-грамм, описанным выше.
[0042] Сценарий с единственным проходом является сценарием, где входные данные/выражение на естественном языке обрабатываются в изоляции во время прохода между пользователем 102 и динамической системой 100. Сценарий с единственным проходом может исключительно использовать информацию из текущего анализируемого неполного выражения на естественном языке для анализа неполного выражения на естественном языке. Это включает в себя анализ в реальном времени неполного выражения на естественном языке при приеме входных данных.
[0043] Сценарий с множественными проходами является сценарием, где неполное выражение на естественном языке анализируется на протяжении более чем одного прохода. Проход может включать в себя то, что пользователь 102 печатает запрос к приложению цифрового секретаря, причем приложение цифрового секретаря может использовать компонент 110 распознавания входных данных для распознавания входных данных от пользователя 102. Проход может начинаться, когда приложение цифрового секретаря активируется, и пользователь начинает печатать. Проход может заканчиваться, когда пользователь прекращает печатать и/или приложение цифрового секретаря деактивируется.
[0044] Проход включает в себя как выражение на естественном языке, так и ответ/действие динамической системы 100. А именно, первый проход может включать в себя как выражение на естественном языке, так и ответ/действие динамической системы 100. В других аспектах, где обнаруживается ответ от пользователя, например, выбор конкретного приложения предметной области, этот ответ рассматривается в качестве части прохода. В других аспектах, сценарий с множественными проходами указывает на то, что информация из множественных проходов может быть использована для выработки предсказания относительно неполного выражения на естественном языке.
[0045] Таким образом, в аспектах, предсказатель 135 набора предметных областей может вырабатывать предсказания о предметных областях с использованием контекстной информации, собранной из сценария с множественными проходами, описанного выше, в комбинации с анализом n-грамм. Дополнительно, компонент 140 генерации гипотез может также использовать контекстную информацию, полученную из сценариев с множественными проходами. Например, первый проход может включать в себя неполное выражение на естественном языке, "how is the weather tomor" («какая погода завтр»). В этом примере, предсказатель 135 набора предметных областей может предсказать, что возможной предметной областью является предметная область погоды, при данном контекстном проходе. Дополнительно, компонент 140 генерации гипотез может проанализировать n-грамму "tomor" и присвоить высокий показатель достоверности тому, что намерением пользователя в предметной области погоды является "get weather for tomorrow" («узнать погоду на завтра»).
[0046] Второй проход может включать в себя неполное выражение на естественном языке "how about this wee" («как насчет этой недел»). В этом примере, предсказатель 135 набора предметных областей может предсказать, что предметная область погоды является возможной предметной областью. Например, предсказатель 135 набора предметных областей может решить, что первый проход "how is the weather tomor" («какая погода завтр») означает, что пользователь намеревается находиться в предметной области погоды (посредством, например, дополнительного взаимодействия с пользователем), и использовать это решение для предсказания той же самой возможной предметной области (т.е. предметной области погоды) для принятого затем неполного выражения на естественном языке "how about this wee" («как насчет этой неде»).
[0047] Дополнительно, анализ компонентом 140 генерации гипотез n-граммы частичного слова "wee", ввиду контекстной информации, может позволить компоненту 140 генерации гипотез предсказать высокий показатель достоверности того, что пользователь ищет информацию о погоде либо на эту неделю (week), либо на этот уик-энд (weekend). А именно, на основе первого прохода, который является запросом о погоде, ассоциированным с предметной областью погоды, компонент 140 генерации гипотез может предсказать, что неполное выражение на естественном языке "how about this wee" («как насчет этой неде») ассоциировано с первым выражением "how is the weather tomorrow" («какая погода завтра»). Компонент 140 генерации гипотез может принять от предсказателя 135 набора предметных областей информацию о том, что неполное выражение на естественном языке "how about this wee" («как насчет этой неде») предназначено для запрашивания информации в предметной области погоды, и, затем, может дополнительно проанализировать частичную n-грамму "wee" в контексте фразы "how about this" («как насчет этой») для определения того, что намерением пользователя является "get weather for this week or weekend" («узнать погоду на эту неделю или этот уик-энд»).
[0048] В другом аспекте, предсказатель 135 набора предметных областей может, параллельно, выработать определение того, что неполное выражение на естественном языке "how about this wee" («как насчет этой неде») является неассоциированным с предшествующим проходом. Вместо этого, например, предсказатель 135 набора предметных областей может выработать определение того, что пользователь хотел бы осуществить доступ к предметной области SMS-текстов. Это может произойти, например, если предсказатель 135 набора предметных областей ассоциировал поведение пользователя с попыткой отправить текст без предисловия с запросом "send text" («отправить текст»).
[0049] После идентификации набора возможных предметных областей и присваивания показателя достоверности каждому предсказанному намерению для каждой возможной предметной области, как описано выше, информация может быть отправлена в компонент 150 предметных областей. Информация может включать в себя предсказанное намерение (или предсказанные намерения) пользователя, одну или более n-грамм, неполное выражение на естественном языке, и/или любую контекстную информацию. Как показано, компонент 150 предметных областей связан с одним или более приложениями предметных областей, такими как первое приложение 160 предметной области, второе приложение 170 предметной области и третье приложение 180 предметной области. Эти приложения предметных областей могут относиться к одному или более из приложения предметной области предупредительных сигналов, приложения предметной области календаря, приложения предметной области связи, приложения предметной области примечаний, приложения предметной области напоминаний и т.п. Предполагаются и другие приложения предметных областей. В одном аспекте, информация отправляется, когда показатель достоверности достигает заданного порога достоверности.
[0050] После приема первого предсказанного намерения от компонента 140 генерации гипотез, компонент 150 предметных областей открывает приложение, такое как первое приложение 160 предметной области, которое соответствует первому предсказанному намерению. Например, если первым предсказанным намерением является "get a route" («найти маршрут») из текущего местоположения пользователя в Сиэтл, штат Вашингтон, то компонент 150 предметных областей может открыть приложение предметной области географических карт.
[0051] Информация, релевантная для приложений предметных областей, которая запоминается компонентом 150 предметных областей или является доступной для него, может быть отправлена компонентом 150 предметных областей в любое из приложений предметных областей, ассоциированное с компонентом 150 предметных областей. Например, в одном аспекте, первое приложение 160 предметной области может быть приложением предметной области географических карт, исполняющим функцию "get_route" («найти_маршрут»). Приложение предметной области географических карт может использовать входные данные (например, место нахождения пользователя, происхождение пользователя, и т.д.) и/или другую информацию (например, текущее местоположение, на основе Глобальной навигационной системы (GPS)), для исполнения функции "get_route" («найти_маршрут»).
[0052] Информация, используемая приложением предметной области для выполнения функции, известна как позиция. Дополнительно, если множественные предметные области достигли высокого показателя достоверности, то компонент 150 предметных областей может идентифицировать информацию для множественных позиций для различных приложений предметных областей, в том числе, любых из первого приложения 160 предметной области, второго приложения 170 предметной области и/или третьего приложения 180 предметной области. Идентификация одной или более позиций для одного или более приложений предметных областей известна как предсказание позиций.
[0053] В одном аспекте, предсказание позиций выполняется с использованием неполного выражения на естественном языке, в том числе, анализа n-грамм. Например, предсказание позиций может включать в себя идентификацию и заполнение позиции первого приложения 160 предметной области, например, первой позиции 162, информацией, собранной из слов с семантической нагрузкой, извлеченных из неполного выражения на естественном языке. Продолжая пример, приведенный выше, фраза "show me directions to wash" («покажи мне маршруты до ваш») может быть интерпретирована как попытка пользователя найти маршруты до Вашингтона, штат Орегон (Washington, Oregon). А именно, n-грамма слова "wash" может быть интерпретирована как означающая "Washington, Oregon" («Вашингтон, штат Орегон») с достаточно высоким уровнем достоверности, что может обусловить выработку компонентом 150 предметных областей предсказания позиций относительно местоположения места назначения в приложении для работы с географическими картами.
[0054] Например, если первое приложение 160 предметной области является приложением для работы с географическими картами и желаемой функцией является функция "get_route" («найти_маршрут»), то приложению для работы с географическими картами может потребоваться заполнение места назначения в первой позиции 162. Таким образом, в этом примере, компонент 150 предметных областей может предсказать, что Вашингтон, штат Орегон (Washington, Oregon) является местом назначения для заполнения первой позиции 162. Компонент 150 предметных областей может не иметь достаточной информации для заполнения других позиций первого приложения предметной области для исполнения функции "get_route" («найти_маршрут»), например, для заполнения второй позиции 164. Такие позиции могут быть заполнены позже, когда динамическая система 100 примет дополнительную информацию.
[0055] Дополнительно, сценарии с множественными проходами могут обеспечить информацию для компонента 150 предметных областей, достаточную для заполнения дополнительных позиций для приложений предметных областей, например, второй позиции 164. Действительно, n-граммы и другая информация из предшествующих проходов могут быть использованы для обеспечения информации о намерениях, для выработки компонентом 150 предметных областей предсказания позиций.
[0056] Например, первый проход некоторого прохода может включать в себя неполное выражение на естественном языке "create a meeting with Jas" («назначить встречу с Джейс»). В этом примере, предсказатель 135 набора предметных областей может предсказать предметную область календаря, и компонент 140 генерации гипотез может присвоить высокий уровень достоверности предсказанному намерению "create a meeting" («назначить встречу») с использованием, например, функции "create_meeting" («назначить_встречу»). Затем, компонент 150 предметных областей может выполнить анализ символьной триграммы "J A S". На основе контекстной фразы "create a meeting" («назначить встречу»), компонент 150 предметных областей может сделать вывод о том, что символьная триграмма "J A S" соответствует намерению пользователя назначить встречу с Джейсоном (Jason), и может заполнить первую позицию 162 информацией для контакта по имени Джейсон (Jason).
[0057] Подобным образом, второй проход того же самого прохода может включать в себя неполное выражение на естественном языке "from 2pm to 4" («с 2 часов вечера до 4»). В этом примере, предсказатель 135 набора предметных областей может предсказать предметную область календаря. Компонент 140 генерации гипотез может предсказать, что намерением пользователя является "set a meeting time" («назначить время встречи»), и компонент 150 предметных областей может выработать предсказания позиций для "start_time=2pm" («начальное_время=2часа вечера») и "end_time=4pm" («конечное_время=4часа вечера»)
[0058] Такое определение может быть выработано с использованием анализа n-грамм. Например, компонент 150 предметных областей может определить, что монограмма «4» означает "4 pm" («4 часа вечера») с достаточно высоким показателем достоверности, на основе контекстной фразы "2pm to" («с 2 часов вечера до»), а также на основе высокого показателя достоверности того, что предшествующий проход был связан с предметной областью календаря.
[0059] Динамическая система 100 может оценить неполное выражение на естественном языке для определения показателей достоверности для предметных областей, намерений и позиций, с использованием информации из текущих обрабатываемых неполных выражений на естественном языке, а также с использованием другой контекстной информации из других источников. Контекстная информация может включать в себя информацию, извлекаемую из каждого прохода в некотором проходе. Дополнительно, контекстная информация может включать в себя ответ динамической системы 100 на предшествующий проход. Например, ответ на предшествующий проход может включать в себя то, как динамическая система 100 ответила на предшествующий запрос от пользователя (например, что динамическая система обеспечила для пользователя), элементы, расположенные на дисплее клиентского вычислительного устройства 104, текст, расположенный на дисплее клиентского вычислительного устройства 104, и т.п. В другом случае, контекстная информация может включать в себя клиентский контекст. Например, клиентский контекст может включать в себя список контактов на клиентском вычислительном устройстве 104, календарь на клиентском вычислительном устройстве 104, GPS-информацию (например, местоположение клиентского вычислительного устройства 104), текущее время (например, утро, вечер, временную зону), виды деятельности (например, информацию, отражающую то, что пользователь встречается с клиентами, занимается спортом, ведет машину и т.д.), и т.п. В другом случае, контекстная информация может включать в себя контент знаний. Например, контент знаний может включать в себя базу знаний, которая устанавливает соответствие признаков из неполного выражения на естественном языке с хранящимися данными.
[0060] В аспектах, компонент 190 генерации выходных данных генерирует выходные данные для пользователя 102. Например, компонент 190 генерации выходных данных может генерировать графический пользовательский интерфейс, который указывает на то, что одно или более приложений предметных областей с предсказанными позициями были ранее получены динамической системой 100. Таким образом, компонент 190 генерации выходных данных может представить одно или более приложений предметных областей пользователю 102. Пользователь 102 может выбрать подходящее приложение предметной области, например, первое приложение 160 предметной области, второе приложение 170 предметной области, и третье приложение 180 предметной области. В одном аспекте, выбор подходящего приложения предметной области будет подтверждать для динамической системы 100 цель предметной области и фактическое намерение пользователя.
[0061] Фиг. 2 показывает сетевую систему 200 для понимания неполных выражений на естественном языке согласно одному или более аспектам. В аспектах, сетевая система 200 соединяет пользователя 202, использующего клиентское вычислительное устройство 204, хранящее клиентскую вычислительную среду 203, с одним или более серверами 201, хранящими среду 206 анализа естественных языков. Дополнительно, серверное вычислительное устройство 201 может обеспечить данные для клиентского вычислительного устройства 204 и может принять данные от клиентского вычислительного устройства 204. Такой обмен данными может происходить через сеть 205. В одном аспекте, сеть 205 является распределенной вычислительной сетью, такой как интернет.
[0062] Клиентское вычислительное устройство 204 хранит клиентскую вычислительную среду 203. Клиентская вычислительная среда 203 может включать в себя компонент 210 распознавания входных данных, компонент 250 предметных областей, хранящий первое приложение 260 предметной области, второе приложение 270 предметной области, и третье приложение 380 предметной области. Дополнительно, компонент 290 генерации выходных данных может также присутствовать в клиентской вычислительной среде 203.
[0063] Как показано, серверное вычислительное устройство 201 хранит среду 206 анализа естественных языков. Хотя показана реализация на единственном серверном вычислительном устройстве 201, в аспектах, среда 206 анализа естественных языков может быть реализована более чем на одном серверном вычислительном устройстве, например, на множестве серверных вычислительных устройств.
[0064] Среда 206 анализа естественных языков может включать в себя компонент 220 извлечения, который хранит устройство 222 извлечения символьных n-грамм и устройство 224 извлечения n-грамм слов. Дополнительно, среда 206 анализа естественных языков может также хранить компонент 230 анализа естественных языков, хранящий анализатор 232 символьных n-грамм и анализатор 234 n-грамм слов. Среда 206 анализа естественных языков может также хранить предсказатель 235 набора предметных областей и компонент 240 генерации гипотез.
[0065] Сетевая система 200 может быть выполнена с возможностью обработки неполных выражений на естественном языке. В этой связи, сетевая система 200 может обеспечить понимание неполных выражений на естественном языке с использованием анализа n-грамм и контекстной информации. Компонент 210 распознавания входных данных, компонент 220 извлечения, компонент 230 анализа естественных языков, предсказатель 235 набора предметных областей, компонент 240 генерации гипотез, компонент 250 предметных областей, первое приложение 260 предметной области, второе приложение 270 предметной области, третье приложение 380 предметной области, и компонент 290 генерации выходных данных могут быть сконфигурированы подобно или так же, как подобным образом именуемые ссылочные номера, описанные в отношении фиг. 1.
[0066] Как обсуждалось выше, среда 206 анализа естественных языков, хранящаяся на серверном вычислительном устройстве 201, может обеспечить передачу данных к клиентскому вычислительному устройству 204 и от него через сеть 205. Данные могут быть переданы через любую сеть, подходящую для передачи данных. В некоторых аспектах, сеть 205 является компьютерной сетью, такой как интернет. В этой связи, сеть 205 может включать в себя локальную сеть (LAN), глобальную сеть (WAN), интернет, беспроводные и проводные среды передачи данных. В этой связи, неполное выражение на естественном языке может быть принято компонентом 210 распознавания входных данных. Компонент 210 распознавания входных данных может передавать входные данные по сети 205 для обработки средой 206 анализа естественных языков на серверном вычислительном устройстве 201. Следует понимать, что компоненты 110/210 распознавания входных данных, компонент 120/220 извлечения, компонент 130/230 анализа естественных языков, предсказатель 135/235 набора предметных областей, компонент 140/240 генерации гипотез, компонент 150/250 предметных областей (который хранит одно или более приложений предметных областей), и компонент 190/290 генерации выходных данных могут быть расположены на клиентском вычислительном устройстве, серверном вычислительном устройстве, и/или как на клиентском вычислительном устройстве, так и на серверном вычислительном устройстве в любой комбинации. Фиг. 1 и 2 являются исключительно иллюстративными и не должны рассматриваться в качестве ограничения. Действительно, любая подходящая комбинация компонентов, включающая в себя клиентское вычислительное устройство и серверное вычислительное устройство, может быть использована для понимания неполного выражения на естественном языке.
[0067] Фиг. 3 показывает способ для понимания неполных выражений на естественном языке. Способ 300 начинается с операции 302, где принимают неполное выражение на естественном языке. Например, неполное выражение на естественном языке может быть выражением, которое содержит одну или более неполных фраз или слов. По существу, неполное выражение на естественном языке может содержать множественные n-граммы частичных слов, множественные n-граммы слов, и множественные символьные n-граммы. В одном примере, неполное выражение на естественном языке может включать в себя неполные фразы, слова, и/или термины в форме текстовых входных данных, жестовых входных данных, и/или устных речевых входных данных (например, вопрос и/или запрос пользователя). А именно, неполное выражение на естественном языке может иметь пропущенную информацию.
[0068] Когда неполное выражение на естественном языке принято системой, способ переходит к операции 304, где создают набор возможных предметных областей посредством анализа различных n-грамм неполного выражения на естественном языке. Например, n-граммы частичных слов, слов, и символьные n-граммы могут быть извлечены из фразы "how about tomo" («как насчет завтр»). В этом примере, одной возможной предметной областью может быть предметная область календаря (в соответствии, например, с полным выражением на естественном языке "how about tomorrow" («как насчет завтра»)), и/или другой возможной предметной областью может быть предметная область веб-поиска (в соответствии с веб-поиском "tamales" («тамале»)).
[0069] Идентификация возможных предметных областей может быть дополнительно основана на контекстной информации. В одном аспекте, контекстная информация может включать в себя информацию, извлеченную из множественных проходов некоторого прохода. Извлеченная информация может позволить системе выработать одно или более предсказаний предметных областей, предсказаний намерений, и/или предсказаний позиций (например, результатов) на основе предшествующего прохода (например, предшествующего выражения на естественном языке/ запроса из текущего прохода).
[0070] В дополнительном аспекте, контекстная информация может включать в себя клиентский контент. Например, клиентский контекст может включать в себя список контактов на клиентском вычислительном устройстве, календарь на клиентском вычислительном устройстве, GPS-информацию (например, местоположение клиентского вычислительного устройства), текущее время (например, утро, вечер, нахождение на встрече, нахождение на тренировке, нахождение за рулем автомобиля), и т.п. В другом случае, контекстная информация может включать в себя контент знаний. Например, контент знаний может включать в себя базу знаний, которая устанавливает соответствие признаков из неполного выражения на естественном языке с хранящимися данными. В качестве примера, "John Howie" («Джон Хауи») может соответствовать ресторану в базе знаний. В этой связи, множество возможных предметных областей может быть сгенерировано для принятого неполного выражения на естественном языке.
[0071] После создания набора возможных предметных областей, способ переходит к операции 306, где определяют одно или более предсказанных намерений для каждой возможной предметной области. Например, каждая возможная предметная область может иметь соответствующий набор функций, ассоциированных с предметной областью, и каждая функция может соответствовать желаемому действию (например, намерению пользователя). В одном случае, n-граммы и контекстная информация могут быть проанализированы по отношению к каждой функции (например, каждому намерению) в каждой возможной предметной области, для определения показателя достоверности для каждой функции.
[0072] Когда набор намерений сгенерирован, способ переходит к операции 308 упорядочения. В операции 308 упорядочения, каждое намерение упорядочивается согласно данному показателю достоверности. Например, показатели достоверности могут быть заданы на основе контекстной информации и анализа n-грамм.
[0073] После упорядочения набора намерений, способ переходит к операции 310, где удаляют намерения с низкими показателями достоверности. В аспектах, удаление намерений происходит на основе заданного порога достоверности. Например, если показатель достоверности находится между 0 и 1, то любое намерение с показателем достоверности, меньшей чем 0,7, будет удалено. Альтернативно, намерения могут быть удалены, если они находятся в нижней части списка упорядочения. Например, если идентифицировано десять намерений, то нижние семь (по показателю достоверности) будут удалены. В некоторых аспектах, никакие намерения не удаляются. Те намерения, которые имеют показатели достоверности, большие чем заданный порог достоверности, могут быть идентифицированы как предсказанные намерения.
[0074] Затем, способ переходит к операции 312, где предсказывают позиции предсказанных намерений. Например, если предсказанным намерением является "get a route" («найти маршрут»), и функцией приложения предметной области работы с географическими картами является "get_route" («найти_маршрут»), то тогда функция get_route (найти_маршрут) может нуждаться в информации для исполнения. Такая информация может включать в себя место назначения или место происхождения. Эта информация (или позиции) может быть предсказана с использованием контекстной информации и анализа n-грамм.
[0075] После операции 312 предсказания позиций, способ продолжается определением 314. В определении 314, определяют, находятся ли в наборе дополнительные возможные предметные области. Если дополнительные возможные предметные области имеются в наборе, то способ возвращается к определению гипотезы для следующей возможной предметной области в наборе. Если не осталось возможных предметных областей, то способ 300 завершается.
[0076] Фиг. 4 показывает способ для приема и отображения предсказанной информации, полученной на основании неполного выражения на естественном языке. Способ 400 начинается с операции 402, где принимают неполное выражение на естественном языке. Например, неполное выражение на естественном языке может быть выражением, которое содержит одну или более неполных фраз или слов. Принимаемые входные данные могут быть приняты в форме жестовых, речевых, или текстовых входных данных.
[0077] После операции 402, способ переходит к операции 404, где входные данные отправляют для обработки. В одном аспекте, информацию отправляют к одному или более серверам для анализа неполного выражения на естественном языке. Входные данные могут быть отправлены по сети, такой как интернет.
[0078] В операции 406, принимают одно или более предсказаний намерений. Упомянутые одно или более предсказаний намерений соответствуют одной или более возможным предметным областям. Предсказания намерений могут быть основаны на контекстной информации и анализе n-грамм неполного выражения на естественном языке.
[0079] Затем, способ переходит к операции 408, где предсказывают позиции. Например, если намерением является "get_route" («найти_маршрут») и позицией является место назначения, то контекстная информация и анализ n-грамм могут позволить предсказать, что позицией является место назначения Вашингтон, округ Колумбия (Washington, DC).
[0080] Затем, способ переходит к операции 410 отображения предсказанных намерений. В операции 410 отображения предсказанных намерений, одно или более предсказанных намерений вместе с предсказанными позициями могут быть представлены пользователю через, например, графический пользовательский интерфейс. Например, предсказанное намерение может быть отображено посредством открытия приложения для работы с географическими картами в графическом пользовательском интерфейсе. Приложение для работы с географическими картами может дополнительно инициировать функцию для нахождения маршрута и может заполнить предсказанные позиции для функции, например, место назначения и текущее местоположение. Пользователь может взаимодействовать с графическим пользовательским интерфейсом для указания на то, что конкретное предсказанное намерение является фактическим намерением пользователя.
[0081] Фиг. 5 является блок-схемой, показывающей физические компоненты (например, аппаратные средства) вычислительного устройства 500, с которыми могут применяться на практике аспекты раскрытия настоящего изобретения. Компоненты вычислительного устройства, описанные ниже, могут иметь исполняемые компьютером команды для приложения 513 цифрового секретаря, например, клиента и/или компьютера, исполняемые команды для компонента 511 генерации выходных данных, например, клиента, которые могут быть исполнены для выполнения способов 300-400, раскрытых здесь. В основной конфигурации, вычислительное устройство 500 может включать в себя по меньшей мере один обрабатывающий блок 502 и системную память 504. В зависимости от конфигурации и типа вычислительного устройства, системная память 504 может содержать, но не ограничена этим, энергозависимое запоминающее устройство (например, память с произвольным доступом), энергонезависимое запоминающее устройство (например, постоянное запоминающее устройство), флэш-память, или любую комбинацию таких запоминающих устройств. Системная память 504 может включать в себя операционную систему 505 и один или более программных модулей 506, подходящих для выполнения программных приложений 520, таких как распознающие неоднозначные запросы приложения в отношении фиг. 1-3 и, конкретно, приложение цифрового 513 секретаря или компонент 511 генерации выходных данных. Операционная система 505, например, может быть подходящей для управления функционированием вычислительного устройства 500. Кроме того, варианты осуществления раскрытия настоящего изобретения могут применяться на практике в сочетании с графической библиотекой, другими операционными системами, или любой другой прикладной программой и не ограничены никаким конкретным применением или системой. Эта основная конфигурация показана на фиг. 5 посредством компонентов, находящихся в пределах пунктирной линии 508. Вычислительное устройство 500 может иметь дополнительные признаки или функциональность. Например, вычислительное устройство 500 может также включать в себя дополнительные устройства хранения данных (съемные и/или несъемные), такие как, например, магнитные диски, оптические диски, или лента. Такое дополнительное запоминающее устройство показано на фиг. 5 посредством съемного запоминающего устройства 509 и несъемного запоминающего устройства 510.
[0082] Как указано выше, некоторое количество программных модулей и файлов данных может храниться в системной памяти 504. При исполнении на обрабатывающем блоке 502, программные модули 506 (например, компонент 511 генерации выходных данных или приложение цифрового 513 секретаря) могут выполнять процессы, включающие в себя, но не ограниченные этим, аспекты, описанные здесь. Другие программные модули могут быть использованы согласно аспектам раскрытия настоящего изобретения, и, конкретно, для понимания неполных естественных выражений.
[0083] Кроме того, варианты осуществления раскрытия настоящего изобретения могут быть применены на практике в электрической схеме, содержащей дискретные электронные элементы, микросхемы в корпусе или интегральные электронные микросхемы, содержащие логические вентили, в схеме, использующей микропроцессор, или на единственной микросхеме, содержащей электрические элементы или микропроцессоры. Например, варианты осуществления могут быть применены на практике посредством системы-на-кристалле (SOC), где каждый из множества компонентов, показанных на фиг. 5, может быть интегрирован в единственную интегральную схему. Такое SOC-устройство может включать в себя один или более обрабатывающих блоков, графических блоков, блоков связи, блоков системной виртуализации и различную прикладную функциональность, которые все интегрированы (или «выжжены») на подложке микросхемы в виде единственной интегральной схемы. При функционировании посредством SOC, функциональностью, описанной здесь, в отношении способности клиента переключать протоколы, можно управлять посредством специализированных логических схем, интегрированных вместе с другими компонентами вычислительного устройства 500 на единственной интегральной схеме (микросхеме). Варианты осуществления раскрытия настоящего изобретения могут быть также применены на практике с использованием других технологий, способных выполнять логические операции, такие как, например, И, ИЛИ, и НЕ, включающих в себя, но не ограниченных этим, механические, оптические, жидкостные, или квантовые технологии. Дополнительно, варианты осуществления раскрытия настоящего изобретения могут быть применены на практике в пределах компьютера общего назначения или в любых других схемах или системах.
[0084] Вычислительное устройство 500 может также иметь одно или более устройств 512 ввода, таких как клавиатура, мышь, перо, устройство ввода речи или звука, сенсорное устройство ввода данных или устройство ввода с помощью проведения по экрану, и т.д. Устройство (устройства) 514 вывода, такое как дисплей, громкоговорители, принтер, и т.д., могут быть также включены. Вышеупомянутые устройства являются примерами, и могут быть использованы другие устройства. Вычислительное устройство 500 может включать в себя одно или более коммуникационных соединений 516, обеспечивающих возможность установления связи с другими вычислительными устройствами 518. Примеры подходящих коммуникационных соединений 516 включают в себя, но не ограничены этим, схемы радиочастотного (RF) передатчика, приемника, и/или приемопередатчика, универсальную последовательную шину (USB), параллельные и/или последовательные порты.
[0085] Термин «читаемые компьютером носители», используемый здесь, может включать в себя компьютерные запоминающие устройства. Компьютерные запоминающие устройства могут включать в себя энергозависимые и энергонезависимые, съемные и несъемные носители, реализованные любым способом или по любой технологии, для хранения информации, например, читаемых компьютером команд, структур данных, или программных модулей. Системная память 504, съемное запоминающее устройство 509, и несъемное запоминающее устройство 510 все являются примерами компьютерных запоминающих устройств (например, устройств памяти). Компьютерные запоминающие устройства могут включать в себя RAM, ROM, электрически стираемое программируемое постоянное запоминающее устройство (EEPROM), флэш-память или другую технологию памяти, CD-ROM, универсальные цифровые диски (DVD) или другое оптическое запоминающее устройство, магнитные кассеты, магнитную ленту, магнитные дисковые запоминающие устройства или другие магнитные запоминающие устройства, или любое другое изделие, которое может быть использовано для хранения информации, и к которому может осуществлять доступ вычислительное устройство 500. Любые такие компьютерные запоминающие устройства могут быть частью вычислительного устройства 500. Компьютерные запоминающие устройства не включают в себя несущие сигналы или другие распространяющиеся или модулированные информационные сигналы.
[0086] Среды передачи данных могут быть реализованы читаемыми компьютером командами, структурами данных, программными модулями, или другими данными в модулированном информационном сигнале, таком как несущий сигнал или другой механизм транспортировки, и включают в себя любые среды доставки информации. Термин «модулированный информационный сигнал» может описывать сигнал, одна или более характеристик которого установлена или изменена таким образом, чтобы в сигнале была закодирована информация. В качестве примера, а не ограничения, среды передачи данных могут включать в себя проводные среды, такие как проводная сеть или прямое проводное соединение, и беспроводные среды, такие как акустическая, радиочастотная (RF), инфракрасная, и другие беспроводные среды.
[0087] Фиг. 6А и 6В показывают мобильное вычислительное устройство 600, например, мобильный телефон, смартфон, носимый компьютер (такой как интеллектуальные часы), планшетный компьютер, компактный портативный компьютер, и т.п., с использованием которого могут быть применены на практике варианты осуществления раскрытия настоящего изобретения. В некоторых аспектах, клиент может быть мобильным вычислительным устройством. Со ссылкой на фиг. 6А, показан один аспект мобильного вычислительного устройства 600 для реализации этих аспектов. В основной конфигурации, мобильное вычислительное устройство 600 является портативным компьютером, имеющим как элементы ввода, так и элементы вывода. Мобильное вычислительное устройство 600 обычно включает в себя дисплей 605 и одну или более кнопок 610 ввода, которые позволяют пользователю вводить информацию в мобильное вычислительное устройство 600. Дисплей 605 мобильного вычислительного устройства 600 может также функционировать в качестве устройства ввода (например, дисплея с сенсорным экраном). При наличии, боковой элемент 615 ввода обеспечивает возможность дополнительного ввода данных пользователем. Боковой элемент 615 ввода может быть поворотным переключателем, кнопкой, или любым другим типом ручного элемента ввода. В альтернативных аспектах, мобильное вычислительное устройство 600 может включать в себя большее или меньшее количество элементов ввода. Например, дисплей 605 может не быть сенсорным экраном в некоторых вариантах осуществления. В еще одном альтернативном варианте осуществления, мобильное вычислительное устройство 600 является портативной телефонной системой, такой как сотовый телефон. Мобильное вычислительное устройство 600 может также включать в себя необязательный блок 635 дополнительных клавиш. Необязательный блок 635 дополнительных клавиш может быть физическим блоком дополнительных клавиш или «программируемым» блоком дополнительных клавиш, генерируемым на дисплее с сенсорным экраном. В различных вариантах осуществления, элементы вывода включают в себя дисплей 605 для показа графического пользовательского интерфейса (GUI), визуальный индикатор 620 (например, светодиод), и/или звуковой преобразователь 625 (например, громкоговоритель). В некоторых аспектах, мобильное вычислительное устройство 600 включает в себя преобразователь вибрации, для обеспечения для пользователя тактильной обратной связи. В еще одном варианте осуществления, мобильное вычислительное устройство 600 включает в себя входные и/или выходные порты, такие как звуковой вход (например, микрофонное гнездо), звуковой выход (например, гнездо наушников), и видеовыход (например, HDMI-порт) для отправки сигналов к внешнему устройству или приема сигналов от него.
[0088] Фиг. 6 является блок-схемой, показывающей архитектуру одного аспекта мобильного вычислительного устройства. А именно, мобильное вычислительное устройство 600 может включать в себя систему (например, архитектуру) 602 для реализации некоторых аспектов. В одном варианте осуществления, система 602 реализована в виде «смартфона», способного выполнять одно или более приложений (например, браузер, приложение электронной почты, приложение календаря, приложение планирования контактов, клиент службы отправки сообщений, игры, и клиенты/средства воспроизведения мультимедиа). В некоторых аспектах, система 602 является интегрированной в виде вычислительного устройства, такого как интегрированный персональный цифровой секретарь (personal digital assistant - PDA) и беспроводной телефон.
[0089] Одна или более прикладных программ могут быть загружены в память 662 и выполнены на операционной системе 664 или в ассоциации с ней. Примеры прикладных программ включают в себя программы для набора телефонных номеров, программы электронной почты, программы управления персональной информацией (personal information management - PIM), программы обработки текстов, программы для работы с электронными таблицами, программы-браузеры интернет, программы отправки сообщений, и т.д. Система 602 также включает в себя энергонезависимую область 666 хранения данных в пределах памяти 662. Энергонезависимая область 666 хранения данных может быть использована для хранения постоянной информации, которая не должна быть потеряна, если произойдет сбой питания системы 602. Прикладные программы 666 могут использовать и хранить информацию в энергонезависимой области 666 хранения данных, например, электронную почту или другие сообщения, используемые приложением электронной почты, и т.п. Приложение синхронизации (не показано) также находится в системе 602 и запрограммировано для взаимодействия с соответствующим приложением синхронизации, находящимся на хост-компьютере, для поддержки синхронизации информации, хранящейся в энергонезависимой области 666 хранения данных, с соответствующей информацией, хранящейся в хост-компьютере. Следует понимать, что другие приложения могут быть загружены в память 662 и выполнены на мобильном вычислительном устройстве 600, включающие в себя команды для создания календарного события, описанного здесь (например, и/или необязательный модуль 711 создания календарных событий).
[0090] Система 602 имеет источник 670 питания, который может быть реализован в виде одной или более аккумуляторных батарей. Источник 670 питания может дополнительно включать в себя внешний источник энергии, такой как адаптер сети переменного тока или снабжаемая энергией док-станция, которая питает или перезаряжает аккумуляторные батареи.
[0091] Система 602 может также включать в себя радиоустройство 672, которые выполняет функцию передачи и приема радиочастотных сигналов. Радиоустройство 672 обеспечивает беспроводную соединяемость между системой 602 и «внешним миром», посредством носителя связи или поставщика услуг. Передачи от радиоустройства 672 и к нему проводятся под управлением операционной системы 664. Другими словами, передачи данных, принимаемые радиоустройством 672, могут быть распространены к прикладным программам 666 посредством операционной системы 664, и наоборот.
[0092] Визуальный индикатор 620 может быть использован для обеспечения визуальных уведомлений, и/или звуковой интерфейс 674 может быть использован для создания звуковых уведомлений посредством звукового преобразователя 625. В показанном варианте осуществления, визуальный индикатор 620 является светодиодом (light emitting diode - LED), а звуковой преобразователь 625 является громкоговорителем. Эти устройства могут быть прямо ассоциированы с источником 670 питания, так что, при активации, они остаются включенными в течение промежутка времени, предписанного механизмом уведомления, даже если процессор 660 и другие компоненты должны выключиться для сохранения энергии аккумуляторной батареи. Светодиод может быть запрограммирован оставаться включенным в течение неограниченного времени до тех пор, пока пользователь не предпримет действие, для указания на включенное состояние устройства. Звуковой интерфейс 674 используется для обеспечения звуковых сигналов для пользователя и приема звуковых сигналов от пользователя. Например, дополнительно к связи со звуковым преобразователем 625, звуковой интерфейс 674 может быть также связан с микрофоном для приема звуковых входных данных, например, для обеспечения телефонного разговора. Согласно вариантам осуществления раскрытия настоящего изобретения, микрофон может также служить в качестве звукового датчика для обеспечения контроля уведомлений, как будет описано ниже. Система 602 может дополнительно включать в себя видеоинтерфейс 676, который обеспечивает возможность функционирования бортовой камеры 630 для записи неподвижных изображений, потока видеоданных, и т.п.
[0093] Мобильное вычислительное устройство 600, реализующее систему 602, может иметь дополнительные признаки или функциональность. Например, мобильное вычислительное устройство 600 может также включать в себя дополнительные устройства хранения данных (съемные и/или несъемные), такие как магнитные диски, оптические диски, или лента. Такое дополнительное запоминающее устройство показано на фиг. 6В посредством энергонезависимой области 668 хранения данных.
[0094] Данные/информация, генерируемые или захватываемые мобильным вычислительным устройством 600 и хранимые системой 602, могут храниться локально на мобильном вычислительном устройстве 600, описанном выше, или данные могут храниться на любом количестве запоминающих устройств, к которым данное устройство может осуществлять доступ посредством радиоустройства 672 или посредством проводного соединения между мобильным вычислительным устройством 600 и отдельным вычислительным устройством, ассоциированным с мобильным вычислительным устройством 600, например, серверным компьютером в распределенной вычислительной сети, такой как интернет. Следует понимать, что к таким данным/ информации можно осуществлять доступ через мобильное вычислительное устройство 600 через радиоустройство 672 или через распределенную вычислительную сеть. Подобным образом, такие данные/ информация могут легко передаваться между вычислительными устройствами для хранения и использования согласно хорошо известным средствам для хранения и передачи данных/ информации, включающим в себя системы электронной почты и совместного использования общих данных/ информации.
[0095] Фиг. 7 показывает один аспект архитектуры системы для обработки данных, принимаемых вычислительной системой от удаленного источника, такого как вычислительное устройство 704, планшет 706, или мобильное устройство 708, как описано выше. Контент, отображаемый на сервере 702, может храниться в разных коммуникационных каналах или в запоминающих устройствах других типов. Например, различные документы могут храниться с использованием службы 722 каталогов, веб-портала 724, службы 726 почтовых ящиков, запоминающего устройства 728 службы обмена мгновенными сообщениями, или сайта 730 социальной сети. Клиентская вычислительная среда 203 может быть использована клиентом, который обменивается данными с сервером 702. Сервер 702 может обеспечивать данные для клиентского вычислительного устройства и от клиентского вычислительного устройства, такого как персональный компьютер 704, планшетное вычислительное устройство 706 и/или мобильное вычислительное устройство 708 (например, смартфон), через сеть 715. В качестве примера, компьютерная система, описанная выше в отношении фиг. 1-2, может быть осуществлена в персональном компьютере 704, планшетном вычислительном устройстве 706 и/или мобильном вычислительном устройстве 708 (например, смартфоне). Любые из этих вариантов осуществления вычислительных устройств могут получать контент из запоминающего устройства 716, дополнительно к приему графических данных, используемых либо в предварительной обработке в создающих графические данные системах, либо в постобработке в принимающей вычислительной системе.
[0096] Фиг. 8 показывает иллюстративное планшетное вычислительное устройство 8, которое может исполнить один или более аспектов, раскрытых здесь. Дополнительно, аспекты и функциональности, описанные здесь, могут работать на распределенных системах (например, облачных вычислительных системах), где функциональностью приложений, памятью, хранением и извлечением данных и различными функциями обработки можно управлять удаленно друг от друга по распределенной вычислительной сети, такой как интернет или интрасеть. Пользовательские интерфейсы и информация различных типов могут быть отображены через бортовые дисплеи вычислительных устройств или через удаленные блоки отображения, ассоциированные с одним или более вычислительными устройствами. Например, пользовательские интерфейсы и информация различных типов могут быть отображены, и с ними может быть обеспечено взаимодействие, на поверхности стены, на которую проецируются пользовательские интерфейсы и информация различных типов. Взаимодействие с множеством вычислительных систем, с которыми варианты осуществления настоящего изобретения могут быть применены на практике, включает в себя ввод данных посредством нажатий клавиш, ввод данных посредством сенсорного экрана, речевой или другой звуковой ввод данных, жестовый ввод данных, причем соответствующее вычислительное устройство снабжено функциональностью обнаружения (например, камерой) для захвата и интерпретации жестов пользователя для управления функциональностью вычислительного устройства, и т.п.
[0097] Фиг. 9 показывает систему 900 для создания модели анализа неполных выражений на естественном языке. В аспектах, система 900 создает модель естественного языка и модель неполного естественного языка с использованием аннотированных тестовых данных. Например, система 900 может использовать полные запросы или частичные запросы в качестве аннотированных тестовых данных, и может пропустить запрос через устройство извлечения признаков анализа n-грамм для создания модели естественного языка. Система может проанализировать модель естественного языка для определения точности, с использованием аннотаций в качестве ориентиров. Дополнительно, система может затем использовать те же самые полные запросы, может удалить символы для создания неполного выражения на естественном языке, может пропустить неполное выражение на естественном языке через устройство извлечения признаков анализа n-грамм, для создания модели неполного естественного языка. Эти модели могут затем сравниваться для определения точности с использованием аннотаций в качестве ориентира. Дополнительно, ранее обработанные неполные запросы на естественном языке могут быть использованы и пропущены через модель неполного естественного языка для обучения модели. Различные компоненты системы 900 могут быть затем модифицированы для получения более точной модели естественного языка и/или более точной модели неполного естественного языка.
[0098] В аспектах технологии, система 900 включает в себя аннотированные тестовые данные 913, хранящиеся в аннотированном запоминающем устройстве 910. Аннотированные обучающие данные означают данные, которые помечены информацией, ассоциированной с предметной областью, намерениями и/или позициями. Например, при запросе "remind me to move my car in two hours" («напомни мне переместить мою машину через два часа»), намерение пользователя помечают как "create_single_reminder" («создать_единственное_напоминание»), предметную область помечают как предметную область "reminder" («напоминание»), текст напоминания информации позиции помечают как "move my car" («переместить мою машину»), и начальное время напоминания информации позиции помечают как "in two hours" («через два часа»). Быть помеченным означает, что было идентифицировано, что предсказания предметной области, намерений и позиций корректно отражают намерение пользователя.
[0099] Дополнительно, аннотированные тестовые данные могут включать в себя результаты ранее обработанных неполных выражений на естественном языке. Обработка может проводиться компонентом анализа естественных языков, таким как компонент 130 анализа естественных языков или компонент 230 анализа естественных языков, которые обсуждались со ссылкой на фиг. 1 и фиг. 2, соответственно. Например, пользователь мог подтвердить точность предсказанной предметной области, намерения и позиций, генерируемых системой для интерпретации выражений на естественном языке, такой как динамическая система 100 и сетевая система 200. Таким образом, аннотированные тестовые данные 913 могут включать в себя неполное выражение на естественном языке, и это выражение будет помечено предметной областью, намерением, и позицией, подтвержденными пользователем.
[00100] Контекстная информация может быть также ассоциирована с аннотированными тестовыми данными 913. Например, если аннотированные тестовые данные 913 были заполнены ранее обработанными неполными выражениями на естественном языке, то контекстная информация может включать в себя информацию, извлеченную из каждого прохода в некотором проходе, предшествующих ответов, элементов, расположенных на дисплее клиентского вычислительного устройства, текста, расположенного на дисплее клиентского вычислительного устройства, клиентского контекста (например, списка контактов клиента, календаря, GPS-информации, времени, когда неполное выражение на естественном языке было принято) и т.п.
[00101] Запрос на естественном языке может быть затем передан к устройству 930 извлечения признаков анализа n-грамм. Устройство 930 извлечения признаков анализа n-грамм может иметь устройство 932 извлечения признаков n-грамм слов, устройство 934 извлечения признаков символьных n-грамм, и устройство 936 извлечения признаков n-грамм частичных слов. Каждое устройство извлечения может извлекать n-граммы частичных слов, n-граммы слов, и символьные n-граммы для создания первого набора 940 обучающих данных признаков. Извлечение n-грамм может быть выполнено подобно тому, как это показано на фиг. 1 и 2.
[00102] Набор 940 характерных обучающих данных может быть затем использован моделью естественного языка, хранящейся в компоненте 950 понимания естественного языка (NLU) для предсказания предметной области, намерения и позиций. Предсказание предметной области, намерения и позиций может происходить подобным образом или так же, как предсказания, описанные выше.
[00103] Различные признаки используются для обучения модели 950 NLU. Например, n-граммы слов, частичные n-граммы, и n-граммы частичных слов могут быть использованы для обучения модели естественного языка. Дополнительно, лексиконы объектов могут быть использованы для обучения затем модели NLU. Каждый лексикон является набором объектов, которые принадлежат одному и тому же классу. Например, наборы названий фильмов, названий приложений, и т.д., являются все рассматриваемыми лексиконами объектов. Обучение модели NLU обеспечивает в результате более точные предсказания предметной области, намерений и позиций.
[00104] Модуль 920 префиксов может создать неполное выражение на естественном языке из того же самого запроса, переданного к модели NLU. Продолжая пример, приведенный выше, запрос "remind me to move my car " («напомни мне переместить мою машину») может быть синтаксически разобран на "remind m," remind me," remind me t", и т.д.
[00105] Альтернативно, когда используется ранее обработанное неполное выражение на естественном языке, аннотированные тестовые данные не проходят через модуль префиксов, а поступают только к устройству 930 извлечения признаков анализа n-грамм.
[00106] Неполное выражение на естественном языке может затем поступить к устройству 930 извлечения признаков анализа n-грамм. Устройство 930 извлечения признаков естественного языка из n-грамм извлекает n-граммы слов, n-граммы частичных слов, и символьные n-граммы, как описано выше. Эта извлеченная информация поступает затем в характерные тестовые данные 960.
[00107] Характерные тестовые данные 960 могут быть затем использованы моделью неполного естественного языка, хранящейся в компоненте 965 понимания неполного естественного языка (INLU), для предсказания предметной области, намерения и позиций. Предсказание предметной области, намерения и позиций может происходить подобным образом или так же, как предсказания, описанные выше.
[00108] Различные признаки используются для обучения модели 965 INLU. Например, n-граммы слов, частичные n-граммы, и n-граммы частичных слов могут быть использованы для обучения модели естественного языка. Дополнительно, лексиконы объектов могут быть использованы для обучения затем модели INLU. Каждый лексикон является набором объектов, которые принадлежат одному и тому же классу. Например, наборы названий фильмов, названий приложений, и т.д., являются все рассматриваемыми лексиконами объектов. Обучение модели INLU обеспечивает в результате более точные предсказания предметной области, намерений и позиций.
[00109] В одном аспекте, предсказание модели NLU и/или модели INLU оценивается относительно помеченной фактической предметной области, намерения и позиций. При необходимости, модель NLU и/или модель INLU настраиваются.
[00110] Аспекты раскрытия настоящего изобретения, в качестве примера, описаны выше со ссылкой на блок-схемы и/или оперативные иллюстрации способов, систем, и компьютерных программных продуктов согласно аспектам раскрытия настоящего изобретения. Функции/действия, указанные в блоках, могут происходить не в том порядке, который показан в какой-либо блок-схеме последовательности операций. Например, два блока, показанные последовательно, могут быть фактически исполнены по существу одновременно, или блоки могут иногда выполняться в обратном порядке, в зависимости от охваченной функциональности/ действий.
[00111] Описание и иллюстрация одного или более аспектов, обеспеченных в этой заявке, не предназначены для ограничения или сужения объема раскрытия настоящего изобретения, заявленного любым образом. Аспекты, примеры и подробности, обеспеченные в этой заявке, считаются достаточными для передачи права и обеспечения другим сторонам возможности выработать и использовать лучший вариант осуществления заявленного раскрытия настоящего изобретения. Заявленное раскрытие настоящего изобретения не должно толковаться, как ограниченное каким-либо аспектом, примером, или подробностями, обеспеченными в этой заявке. Независимо от того, показаны ли они или описаны в комбинации или отдельно, различные признаки (как структурные, так и методологические) предназначены для того, чтобы быть выборочно включенными или опущенными для создания варианта осуществления с конкретным набором признаков. При снабжении описанием и иллюстрациями настоящей заявки, специалист в данной области техники может представить варианты, модификации, и альтернативные аспекты, попадающие в пределы сущности более широких аспектов общей идеи изобретения, воплощенной в этой заявке, которые не выходят за рамки более широкого объема заявленного раскрытия настоящего изобретения.