УПРАВЛЕНИЕ ПОСТАВЩИКАМИ ДАННЫХ ДЛЯ ДИАЛОГА
MANAGING DATA PROVIDERS FOR DIALOGUE

УРОВЕНЬ ТЕХНИКИ
[0001] Данное описание изобретения относится к способу и системе ведения диалогов в ответ на запрос, выданный пользователем с использованием интерфейса на пользовательском устройстве.
[0002] Традиционные мобильные устройства могут включать в себя программное обеспечение для ответа на речь пользователя мобильного устройства. Речь обычно может включать в себя команды мобильному устройству позвонить по номеру телефона, отправить сообщение на номер телефона или искать информацию на мобильном устройстве либо в Интернете. Программное обеспечение может обеспечить аудиовывод из мобильного устройства, подтверждающий те команды. Мобильное устройство может подавать принятую речь в серверную систему для обработки и приема информации, идентифицирующей операции, которые нужно выполнить.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[0003] Данное описание изобретения описывает технологии, относящиеся к ведению диалогов, включая задействование разных поставщиков данных. Вообще, один изобретательский аспект изобретения, описанного в данном описании изобретения, можно воплотить в способах, которые включают в себя действия по приему от пользовательского устройства запроса, ассоциированного с задачей; представлению запроса каждому из множества отдельных поставщиков данных; приему одного или более предлагаемых диалоговых ответов от одного или более поставщиков данных; оценке одного или более предлагаемых диалоговых ответов на основе одного или более оценочных факторов; определению конкретного диалогового ответа для предоставления пользователю на основе оценки; и предоставлению выбранного диалогового ответа в пользовательское устройство. Конкретнее, аспект описанных вариантов осуществления включает в себя способ ведения диалога для пользовательского устройства, содержащий: прием от пользовательского устройства запроса в диалоговой системе, ассоциированного с задачей, при этом упомянутое пользовательское устройство соединено с возможностью связи с диалоговой системой посредством сети связи; представление диалоговой системой запроса каждому из множества отдельных поставщиков данных, где каждый поставщик данных независимо анализирует запрос в соответствии с соответствующей моделью данных; прием множества предлагаемых диалоговых ответов от двух или более поставщиков данных; оценку одного или более предлагаемых диалоговых ответов механизмом ведения диалога в диалоговой системе на основе одного или более оценочных факторов; определение механизмом ведения диалога конкретного диалогового ответа для предоставления пользователю на основе оценочного критерия; и предоставление этого определенного диалогового ответа в пользовательское устройство.
[0004] Другие варианты осуществления этого аспекта включают в себя соответствующие компьютерные системы, устройство и компьютерные программы, записанные на одном или более компьютерных запоминающих устройствах, каждое из которых сконфигурировано для выполнения действий в способах. Система из одного или более компьютеров, сконфигурированных для выполнения конкретных операций или действий, означает, что система установила на них программное обеспечение, микропрограммное обеспечение, аппаратные средства или их сочетание, которые при работе побуждают систему выполнять операции или действия. Одна или более компьютерных программ, сконфигурированные для выполнения конкретных операций или действий, означают, что одна или более программ включают в себя команды, которые при их исполнении устройством обработки данных побуждают устройство выполнять операции или действия.
[0005] Вышеупомянутые и другие варианты осуществления при необходимости могут включать в себя один или более следующих признаков, по отдельности или в комбинации. В частности, один вариант осуществления включает в себя все следующие признаки вместе. Способ включает в себя: обновление состояния диалога на основе выбранного диалогового ответа. Принятый запрос является голосовым вводом, и способ содержит преобразование голосового входного запроса в текст перед представлением запроса множеству поставщиков данных. Способ дополнительно включает в себя: определение того, требует ли диалог дополнительных ответов от пользовательского устройства, и в ответ на определение того, что никакие дополнительные ответы не требуются, завершение запрошенной пользователем задачи. Каждый поставщик данных независимо анализирует запрос в соответствии с соответствующей моделью данных. В ответ на определение того, что никакие из соответствующих оценок для множества предлагаемых диалоговых ответов не удовлетворяют пороговой величине, синтезирование ответа для предоставления пользовательскому устройству, чтобы выявить намерение пользователя. Определение конкретного диалогового ответа для предоставления пользователю на основе оценки включает в себя дисквалификацию предлагаемого диалогового ответа с оценкой, которая ниже пороговой величины, а также дисквалификацию всех предлагаемых диалоговых ответов, которые относятся к предлагаемому диалоговому ответу.
[0006] Конкретные варианты осуществления изобретения, описанного в данном описании изобретения, можно реализовать для осуществления одного или более следующих преимуществ. Ведение диалога для реагирования на задачи улучшается путем задействования разных поставщиков данных, которые могут ответить на пользовательский ввод. В частности, можно привлекать разных поставщиков данных, обладающих разными достоинствами и недостатками. Это позволяет пользоваться специализированными поставщиками данных, также обеспечивая гибкость типов пользовательского ввода, которые можно интерпретировать. Более того, ведение диалога может допускать прием параллельных ответов от разных поставщиков данных и, при необходимости, агрегирование принятых ответов. Более того, поставщики данных могут быть разнотипными по отношению к реализации, например, они могут формироваться разными производителями или создаваться с использованием разных технологий, либо могут быть доступными по разным сетям (типа локальных в отличие от разветвленных). При условии, что каждый поставщик данных предоставляет данные с использованием заданного интерфейса, система может объединять их данные в единый диалоговый ответ.
[0007] Подробности одного или более вариантов осуществления изобретения, описанного в этом описании изобретения, излагаются на прилагаемых чертежах и в описании ниже. Другие признаки, аспекты и преимущества изобретения станут очевидны из описания, чертежей и формулы изобретения.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0008] Фиг. 1 - примерная система для ведения диалога.
[0009] Фиг. 2 - алгоритмическая блок-схема примерного процесса для ведения диалога.
[010] Одинаковые номера ссылок и обозначения на различных чертежах указывают одинаковые элементы.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
[011] Пользователи могут давать голосовые команды устройству для выполнения конкретной задачи, например, формирования элемента календаря, посылки вызова или сообщения либо поиска конкретной информации. Выполнением задачи устройством или системой, связанной с устройством, можно управлять с помощью разговорного диалога, который задает вопросы пользователю по одному или более значениям, необходимым для завершения задачи, аналогично заполнению полей некой формы.
[012] Например, типовым диалогом для задачи в календаре может быть:
[013] Пользователь: [создать будильник]
[014] Устройство/система: В котором часу вы желаете установить будильник?
[015] Пользователь: [15:00]
[016] Устройство/система: Создан будильник на 15:00.
[017] В ответ на пользовательский ввод команды создания будильника система интерпретирует команду как запрашивающую задачу установить будильник на конкретное время. В частности, поставщик данных для выполнения задач может интерпретировать принятый голосовой ввод и направить конкретный диалог к информации, необходимой для завершения задачи, например, запрашивающей время для будильника.
[018] В другом примерном диалоге пользователь может искать конкретную информацию:
[019] Пользователь: [Когда начинается игра Giants?]
[020] Устройство/система: Вы имеете в виду Giants из Сан-Франциско или Giants из Нью-Йорка?
[021] Здесь система понимает вопрос от пользователя как запрос расписания спортивных игр, но есть неопределенность в отношении того, каких "Giants" подразумевает пользователь. Диалоговый ответ запрашивает разъяснение, на какую спортивную команду "Giants" ссылается пользователь. При разъяснении диалог может продолжаться, чтобы предоставить информацию о расписании, например, которая идентифицирована поисковой системой.
[022] В некоторых случаях пользовательский ввод может поменять один тип задачи теоретически на другой тип задачи в зависимости от того, как диалоговая система интерпретирует голосовой ввод. Например:
[023] Пользователь: [Установить будильник]
[024] Устройство/система: В котором часу вы желаете установить будильник?
[025] Пользователь: [Когда начинается игра Giants?]
[026] В этом примере второй ответ пользователя можно интерпретировать более чем одним способом в зависимости от того, какой поставщик данных инициируется голосовым вводом. Например, поставщик данных по задачам может интерпретировать голосовой ввод, связанный с созданием будильника, но не посчитает второй ввод об игре Giants шумным или бессмысленным ответом, потому что он не относится к предполагаемому вводу для диалога по задаче будильника. Однако другой поставщик данных, который может интерпретировать связанный со спортивными играми голосовой ввод, может обработать вопрос о расписании игры Giants. Данное описание изобретения описывает методики для задействования и объединения диалоговых ответов от множества поставщиков данных.
[027] Фиг. 1 - примерная система 100 для ведения диалога. Система 100 включает в себя пользователя 102, пользовательское устройство 104, диалоговую систему 106 и множество поставщиков 124a, 124b-124n данных. Пользовательское устройство 104 и диалоговая система 106 осуществляют связь по сети 103, например, Интернету.
[028] Пользовательское устройство 104 может быть одним из некоторого количества подходящих устройств, включая мобильное устройство, носимый компьютер, планшет, гибридное устройство, переносной компьютер или настольный компьютер. Пользовательское устройство 104 может принимать от пользователя 102 взаимодействия, как вербальные, например, голосовой ввод, так и невербальные. В частности, пользовательское устройство 104 включает в себя микрофон 108, сконфигурированный для приема голосового ввода от пользователя 102. Пользовательское устройство 104 также может включать в себя один или более динамиков, сконфигурированных для вещания вопросов диалога в ответ на принятый запрос пользователя. Для ясности показано только одно пользовательское устройство. Однако может быть много пользовательских устройств, ассоциированных с соответствующими отдельными пользователями. Каждое из этих пользовательских устройств может осуществлять связь с диалоговой системой 106 по сети 103.
[029] Пользовательское устройство 104 дополнительно включает в себя интерфейс 110 пользователя. Интерфейс 110 пользователя в ответ на запрос пользователя может показывать пользователю информацию, включающую в себя некоторое или все содержимое, ассоциированное с диалогом. Диалог 112 задает некоторое количество ответов, например, вопросы по значениям, необходимым для выполнения задачи, запрошенной пользователем. Конкретные вопросы или другое содержимое диалога 112 можно показывать пользователю в конкретном порядке, например, посредством последовательности аудио-вопросов, вещаемых одним или более динамиками, или отображаемых в интерфейсе 110 пользователя.
[030] В некоторых других реализациях пользовательское устройство включает в себя механизм анализа речи для преобразования в текст принятого голосового ввода в микрофон 108 перед передачей диалоговой системе 106.
[031] Диалоговая система 106 может быть одним или более вычислительными ресурсами, например, одной или более вычислительными системами, или виртуальными машинами, работающими в одной или более вычислительных системах, связанными с пользовательским устройством 104 по сети 103. Диалоговая система 106 включает в себя механизм 114 ведения диалога и механизм 116 анализа речи.
[032] Механизм 116 анализа речи может использовать подходящий процесс преобразования речи в текст для преобразования принятого голосового ввода 118 в текстовую строку. В некоторых реализациях механизм 116 анализа речи выдает текст, который может быть обработан одним или более синтаксическими анализаторами, чтобы идентифицировать один или более смыслов, например, путем формирования дерева разбора. Смысл аудио, которое преобразовано в текст, может использоваться одним или более поставщиками данных, чтобы идентифицировать конкретную задачу для выполнения в ответ на принятый запрос.
[033] Механизм 114 ведения диалога управляет одним или более диалогами, ассоциированными с запрошенной задачей. Это включает в себя поддержание состояния диалога, например, на какой вопрос отвечают, чтобы механизм 116 анализа речи мог должным образом интерпретировать принятое аудио, ассоциированное с диалогом, на основе текущего контекста, предоставленного тем состоянием. К тому же механизм 114 ведения диалога определяет ответ на входящий голосовой ввод на основе состояния диалога, а также интерпретации голосового ввода одним или более поставщиками 124a, 124b и 124n данных, представляющими собой поставщика 1 данных, поставщика 2 данных и поставщика N данных, где N - некоторое целое число, представляющее общее количество поставщиков данных, которые могут предоставлять ввод в диалоговую систему 106.
[034] Каждый из этих поставщиков 124a-n данных представляет собой серверную систему, которая конфигурируется для независимой интерпретации голосового ввода в соответствии с конкретной моделью данных для того поставщика данных. Например, первый поставщик данных может быть поставщиком задач, у которого модель данных сконфигурирована для интерпретации голосовых запросов, связанных с конкретными задачами, например, созданием записи календаря, установкой будильника, посылкой телефонного вызова или формированием текстового сообщения. Поставщик данных по задачам ожидает пользовательский ввод, ассоциированный с конкретными задачами, и распознает голосовой ввод, ассоциированный с тем предполагаемым пользовательским вводом. Второй поставщик данных может быть поставщиком спортивных игр, у которого модель данных сконфигурирована для интерпретации голосовых запросов, связанных с конкретными спортивными темами, включающими команды и счет очков. Другие поставщики данных могут включать в себя поставщиков поиска данных, которые сосредоточены на конкретных типах информации, например, местном предпринимательстве, информации из социальных сетей или торговых данных, таких как возможности покупок.
[035] В ответ на голосовой ввод, который принимается от пользовательского устройства 104 и обрабатывается механизмом 116 анализа голоса, один или более поставщиков 124 данных могут интерпретировать принятый ввод и предоставить диалоговый ответ механизму 114 ведения диалога. Затем механизм 114 ведения диалога определяет, какой диалоговый ответ предоставить пользовательскому устройству 104. Ниже подробнее описываются разные способы ответа.
[036] Каждый поставщик 124a-n данных предлагает диалоговый ответ на основе интерпретации принятого ввода в соответствии с моделью данных у соответствующего поставщика данных. Диалоговый ответ и, при необходимости, другая информация, например, предполагаемый ответ от пользователя 102, могут кодироваться в некую структуру данных в соответствии с конкретным форматом данных. В некоторых реализациях эта информация кодируется в буфер протокола, в данном описании изобретения называемый DialogTurnIntent ("DTI"). Для удобства везде будет использоваться DTI, но могут использоваться и другие подходящие кодированные структуры данных.
[037] Например, в диалоге для задачи составления сообщения электронной почты один вопрос в диалоге может быть запросом темы электронного письма. Поставщик данных по задачам может создать DTI, где вопросом к пользователю является запрос темы. DTI предоставляется механизму 114 ведения диалога и отправляется пользовательскому устройству 104, где его можно показать пользователю 102, например, в виде визуального вопроса в интерфейсе пользователя, например: "Какая тема?", или в виде аудио-вопроса, выданного из динамиков, например: "Какую бы тему вы хотели?".
[038] Механизм 114 ведения диалога может отправить (120) пользовательскому устройству 102 более одного DTI. В частности, DTI могут включать в себя не только текущее приглашение пользователю, но и другие DTI, связанные другими полями, необходимыми для завершения диалога для запрошенной задачи. Например, когда механизм 114 ведения диалога отправляет DTI "запрос темы", он также может отправить DTI для последующего вопроса в диалоге, например DTI "запрос тела сообщения".
[039] Фиг. 2 - алгоритмическая блок-схема примерного процесса 200 для ведения диалога. Для удобства процесс 200 будет описываться как выполняемый системой из одного или более компьютеров, расположенных в одном или более местоположениях, и подходящим образом запрограммированной в соответствии с данным описанием изобретения. Например, процесс 200 может выполнять подходящим образом запрограммированная диалоговая система, например, диалоговая система 106 из фиг. 1.
[040] Система принимает ввод, включающий в себя запрос (202). Запрос может приниматься в виде голосового ввода, поданного пользователем в пользовательское устройство, или ручного ввода в пользовательское устройство, например, пользовательское устройство 104 по фиг. 1, и передаваться системе. В некоторых реализациях пользовательский голосовой ввод можно преобразовать в текст с помощью пользовательского устройства перед отправкой в систему. Задачей может быть, например, формирование элемента календаря, установка будильника, формирование электронного письма, посылка вызова или сообщения либо поиск конкретной информации.
[041] Система предоставляет запрос множеству поставщиков данных (204). Каждый поставщик данных может быть сконфигурирован для интерпретации разных типов запросов с использованием конкретной модели данных. Таким образом, принятый запрос может быть интерпретирован по-разному разными поставщиками данных в зависимости от того, как обрабатывается запрос в соответствии с соответствующими моделями данных.
[042] Система принимает предлагаемый диалоговый ответ от одного или более поставщиков данных (206). Каждый поставщик данных независимо анализирует запрос в соответствии с соответствующей моделью данных. Модель данных может включать в себя модель, обученную на характерной совокупности данных, ассоциированной с конкретным типом информации или действия. Запрос может инициировать ответ от некоторых, но не всех поставщиков данных среди множества поставщиков данных. Таким образом, голосовой входной запрос расписания бейсбола может инициировать предлагаемый диалоговый ответ от поставщика данных, обученного предоставлять связанные со спортивными играми ответы, но не инициировать поставщика данных, обученного предоставлять информацию о погоде, потому что голосовой ввод не совпадает с предполагаемым запросом, ассоциированным с информацией о погоде. В некоторых реализациях поставщик данных может предоставить ответ на нераспознанный голосовой ввод, указывающий, например, что ввод не понят, и попросить пользователя повторить ответ.
[043] Один или более поставщиков данных могут предоставить предлагаемый диалоговый ответ в виде DTI, который включает в себя предлагаемый ответ для предоставления пользовательскому устройству.
[044] В некоторых реализациях каждый поставщик данных способен видеть предлагаемые диалоговые ответы, предоставленные другими поставщиками данных. В ответ данный поставщик данных может изменить или добавить предлагаемые диалоговые ответы на основе диалоговых ответов других поставщиков данных. Например, поставщик данных по задачам может предложить ответ, который основывается на предлагаемом ответе поставщика поиска данных, например, предлагая время для установки будильника на основе ответа от поставщика поиска данных, предоставляющего время для спортивной игры. Более того, в некоторых реализациях каждый поставщик данных может предоставить множество предлагаемых диалоговых ответов. Например, каждый ответ может основываться на контексте предлагаемого ответа другого поставщика данных, а также ответа, который игнорирует предложения других поставщиков данных.
[045] Система определяет, какой диалоговый ответ выбрать (208). В частности, система анализирует все предлагаемые диалоговые ответы и определяет, какой предлагаемый диалоговый ответ больше всего подходит для выбора. Анализ выполняется после приема всех индивидуальных предложений от поставщиков данных, но перед тем, как любые диалоговые ответы отправляются пользовательскому устройству. Система может оценить каждый предлагаемый ответ на основе одного или более факторов. Можно использовать различные факторы для оценки предлагаемых диалоговых ответов для выбора, включая одно или более из основанной на журналах настройки вероятного намерения пользователя, моделей персонализации пользователя, оценок, указывающих правдоподобие семантической интерпретации каждого поставщика данных, или полной конфигурации стратегии диалога, которая определяет равновесие между точным соответствием и минимизацией количества вопросов, задаваемых как часть диалога.
[046] В некоторых реализациях поставщики данных включают в свои результаты оценки уверенности. Оценки уверенности можно использовать для определения того, какой предлагаемый ответ выбрать. В некоторых других реализациях другие факторы выбора могут включать в себя длину беседы в диалоге и предысторию беседы в диалоге. Например, если пользователь задает один и тот же вопрос множество раз, а поставщик данных не может предоставить информацию, которую ищет пользователь, то вместо него можно выбрать другого поставщика данных.
[047] В некоторых реализациях фактором выбора является правдоподобие того, что рассматриваемая информация является чем-то, что интересовало бы обычного пользователя (в отличие от экзотики). Например, если нет такой спортивной команды, как Giants, то следует считать, что пользователя не поняли, перед выполнением поиска, например, "гиганты, которые играют".
[048] В некоторых реализациях фактором выбора является качество рассматриваемой информации. Качество может основываться, например, на том, получал ли поставщик данных информацию из структурированного источника, например, официальной службы расписания бейсбола, или неструктурированного источника, например, блогов случайных людей.
[049] В некоторых реализациях фактор выбора основывается на прагматике и планировании задач. Например, если системе не известно, в какое время играет любая из команд Giants, то системе не следует спрашивать пользователя, каких Giants он подразумевает, потому что ответ не окажет никакого влияния на расширенную задачу.
[050] В некоторых реализациях фактор выбора выводится на основе релевантности рассматриваемой информации запросу пользователя. Например, если бы "Giants" были лишь малоизвестной командой в далекой стране, то системе следует считать их нерелевантными.
[051] В некоторых реализациях фактор выбора основывается на том, выполняется ли определение, что запрос настолько неопределенный, что система должна попросить пользователя прояснить свое намерение, не раздражая его глупыми/очевидными вопросами. Определение может выполняться, например, на основе географической информации о том, где располагается пользователь, персонализации, например, прошлого обсуждения пользователем Giants из Сан-Франциско в сравнении с Giants из Нью-Йорка, или контекста, например, только у одной из команд есть расписание игр в ближайшее время.
[052] В некоторых реализациях, если на основе этих факторов конкретный предлагаемый диалоговый ответ оценивается низко, например, предлагаемый диалоговый ответ не удовлетворяет конкретной пороговой оценке, то механизм ведения диалога может дисквалифицировать не только тот предлагаемый диалоговый ответ, но также и любые другие предлагаемые диалоговые ответы, которые относятся к этому предлагаемому диалоговому ответу. В некоторых реализациях, если оценки от двух или более поставщиков данных не отличаются на заданную пороговую величину, то механизм ведения диалога в качестве диалогового ответа может формировать вопрос устранения неоднозначности намерения.
[053] Система предоставляет выбранный диалоговый ответ пользовательскому устройству (210) и обновляет состояние диалога (212). Диалоговый ответ, отправленный пользовательскому устройству, может включать в себя DTI выбранного диалогового ответа, который указывает ответ, который нужно показать пользователю на пользовательском устройстве. Этот ответ можно синтезировать в голосовой ответ или показать в интерфейсе пользователя пользовательского устройства. В некоторых реализациях ответ отправляется вместе с дополнительной информацией, например, одним или более результатами поиска, ассоциированными с диалоговым ответом. Например, если диалоговый ответ основывается на поиске поставщика данных или релевантных веб-страницах, то вместе с диалоговым ответом можно предоставить ссылку на те веб-страницы.
[054] Обновленное состояние диалога может использоваться для определения следующей части диалога для отправки в ответ на принятые пользовательские ответы. Более того, обновленное состояние диалога может предоставить контекст для анализа последующего голосового ввода, принятого от пользовательского устройства, так что голосовой ввод можно интерпретировать должным образом.
[055] Система завершает запрос, когда подходящие диалоги завершены (214).
[056] Система может определить, необходимы ли дополнительные значения, или завершен ли диалог. Если необходимы дополнительные значения, то один или более дополнительных DTI можно отправить пользовательскому устройству, либо система может подождать дополнительные ответы от пользовательского устройства. Если никакие дополнительные значения не нужны, то система может завершить задачу, например, путем формирования записи календаря или сообщения электронной почты либо путем предоставления конкретной запрошенной информации. Завершенную задачу можно отправить пользовательскому устройству для одобрения перед исполнением, либо ее можно выполнить автоматически.
[057] Имеется некоторое количество разных способов, которыми система может интерпретировать входные данные на основе предложений от разных поставщиков данных и применяемой оценки. Нижеследующее описывает некоторые примерные сценарии для интерпретирования пользовательского ввода:
[058] Сценарий 1:
[059] Пользователь: [Установить будильник]
[060] Система/устройство: В котором часу вы желаете установить будильник?
[061] Пользователь: [В какое время начинается игра Giants?]
[062] В этом примере поставщики данных могут включать в себя поставщика задач, поставщика спортивных игр и поставщика веб-ответов. Если система определяет, что диалоговые предложения от поставщиков спортивных игр и веб-данных шумные, то эти ответы не следует одобрять, и диалогом должен руководить поставщик задач, который уже инициирован. Это может привести к ответу типа:
[063] Система/устройство: Извините, это непонятно. В котором часу вы желаете установить будильник?
[064] Сценарий 2:
[065] В этом сценарии пользователь задает побочный вопрос, потому что хочет посмотреть игру Giants. На этот раз у системы больше уверенности в веб-ответах, что отражено в оценке для соответствующего предлагаемого диалогового ответа, и поэтому они выбираются в сравнении с поставщиком спортивных игр и поставщиком задач для создания смешанного диалога:
[066] Пользователь: [Установить будильник]
[067] Система/устройство: В котором часу вы желаете установить будильник?
[068] Пользователь: [В какое время начинается игра Giants?]
[069] Система/устройство: На основе нижеследующих результатов игра Giants начинается сегодня в 15 ч. Установить будильник на это время?
[070] Сценарий 3:
[071] Аналогичен сценарию 2 за исключением того, что механизм ведения диалога синтезирует новый вопрос для определения, намеревался ли пользователь поменять тематику, либо он по-прежнему заинтересован в исходной задаче:
[072] Пользователь: [Установить будильник]
[073] Система/устройство: В котором часу вы желаете установить будильник?
[074] Пользователь: [В какое время начинается игра Giants?]
[075] Система/устройство: На основе нижеследующих результатов игра Giants начинается сегодня в 15 ч. Все еще желаете установить будильник?
[076] Сценарий 4:
[077] В сценарии 4 пользователь задает побочный вопрос, потому что хочет посмотреть игру Giants. Даже если поставщик веб-ответов предоставляет время в качестве предлагаемого ответа, система дает возможность предложению поставщика спортивных игр, которое оценено выше, устранить неопределенность и подтвердить правильную сущность. Сохраняя намерение установить будильник, может происходить следующий смешанный диалог:
[078] Пользователь: [Установить будильник]
[079] Система/устройство: В котором часу вы желаете установить будильник?
[080] Пользователь: [В какое время начинается игра Giants?]
[081] Система/устройство: Вы имеете в виду Giants из Сан-Франциско или Giants из Нью-Йорка?
[082] Пользователь: [Giants из Сан-Франциско]
[083] Система/устройство: На основе нижеследующих результатов Giants из Сан-Франциско играют в 15 ч. Установить будильник на это время?
[084] Сценарий 5:
[085] В этом сценарии пользователь меняет тему и уже не желает устанавливать будильник. Здесь механизм ведения диалога уверен, что поставщик веб-ответов, идентифицирующий время игры Giants, оценивается выше, чем другие предлагаемые диалоговые ответы, и не предлагает будильник, который продолжает прежнюю задачу.
[086] Пользователь: [Установить будильник]
[087] Система/устройство: В котором часу вы желаете установить будильник?
[088] Пользователь: [В какое время начинается игра Giants?]
[089] Система/устройство: На основе нижеследующих результатов игра Giants начинается сегодня в 15 ч.
[090] Сценарий 6:
[091] В этом сценарии пользователь меняет тему и уже не желает устанавливать будильник. Механизм ведения диалога использует предложение с наивысшей оценкой от поставщика данных спортивных игр, чтобы прояснить сущность, а затем веб-ответы, чтобы идентифицировать время. Не предлагается никакого будильника.
[092] Пользователь: [Установить будильник]
[093] Система/устройство: В котором часу вы желаете установить будильник?
[094] Пользователь: [В какое время начинается игра Giants?]
[095] Система/устройство: Вы имеете в виду Giants из Сан-Франциско или Giants из Нью-Йорка?
[096] Пользователь: [Giants из Сан-Франциско]
[097] Система/устройство: На основе нижеследующих результатов игра Giants начинается сегодня в 15 ч.
[098] Сценарий 7:
[099] В этом сценарии механизм ведения диалога может синтезировать вопрос, чтобы устранить неоднозначность в том, меняет ли пользователь тему или задает побочный вопрос. Это может происходить потому, что два или более предлагаемых ответов оценены слишком похоже, чтобы определить, какой следует предпочесть.
[0100] Пользователь: [Установить будильник]
[0101] Система/устройство: В котором часу вы желаете установить будильник?
[0102] Пользователь: [В какое время начинается игра Giants?]
[0103] Система/устройство: Погодите, вы желаете завершить настройку будильника или пытаетесь запланировать будильник накануне игры?
[0104] В каждом из этих сценариев различные поставщики данных предлагают один или более диалоговых ответов на основе пользовательского ввода. Более того, поставщики данных могут предложить множество диалоговых ответов на основе предлагаемых диалоговых ответов других поставщиков данных.
[0105] Ссылаясь на примерные сценарии выше, поставщик задач может предоставить предлагаемый диалоговый ответ "Извините, это непонятно. В котором часу вы желаете установить будильник?". Это соответствует вышеприведенному сценарию 1.
[0106] Когда поставщик задач узнает, что предлагаемый диалоговый ответ был отправлен поставщиком веб-ответов, поставщик задач может формировать другой предлагаемый диалоговый ответ, который относится к предлагаемому веб-ответами диалоговому ответу с дополнительным содержимым "Установить будильник на это время?". Это соответствует вышеприведенному сценарию 2.
[0107] Когда поставщик задач узнает, что предлагаемый диалоговый ответ был отправлен поставщиком веб-ответов, поставщик задач может формировать другой предлагаемый диалоговый ответ, который относится к предлагаемому веб-ответами диалоговому ответу с дополнительным содержимым "Все еще желаете установить будильник?". Это соответствует вышеприведенному сценарию 3.
[0108] Когда поставщик задач узнает, что предлагаемый диалоговый ответ был отправлен поставщиком данных спортивных игр, чтобы устранить неоднозначность у сущности, поставщик задач может формировать другой предлагаемый диалоговый ответ, который относится к предлагаемому спортивными ответами диалоговому ответу с дополнительным содержимым "Установить будильник на это время?". Это соответствует вышеприведенному сценарию 4.
[0109] Различные предлагаемые диалоговые ответы от каждого из поставщиков данных оцениваются в соответствии с одним или более факторами. На основе оценки механизм ведения диалога может выбрать подходящий диалоговый ответ. Ссылаясь опять на примерные сценарии выше, тот механизм ведения диалога может на основе соответствующих оценок:
[0110] A) Выбрать предлагаемый диалоговый ответ от поставщика задач (сценарий 1)
[0111] B) Выбрать альтернативный предлагаемый диалоговый ответ от поставщика задач, а также принять предлагаемый диалоговый ответ от поставщика веб-ответов (сценарий 2)
[0112] C) Выбрать альтернативный предлагаемый диалоговый ответ от поставщика задач, а также принять альтернативный предлагаемый диалоговый ответ от поставщика веб-ответов (сценарий 3)
[0113] D) Выбрать альтернативный предлагаемый диалоговый ответ от поставщика задач, а также принять предлагаемый диалоговый ответ от поставщика данных спортивных игр (сценарий 4)
[0114] E) Выбрать предлагаемый диалоговый ответ от поставщика веб-ответов и полностью сбросить состояние будильника (сценарий 5)
[0115] F) Выбрать предлагаемый диалоговый ответ от поставщика данных спортивных игр и полностью сбросить состояние будильника (сценарий 6)
[0116] G) Сформировать полностью новый предлагаемый диалоговый ответ, чтобы спросить пользователя о его намерении (сценарий 7). Например, если оценки от поставщиков данных не отличаются на пороговую величину.
[0117] Исключение предлагаемого диалогового ответа может отразиться на других предлагаемых диалоговых ответах, которые к нему относятся. Таким образом, если предлагаемый диалоговый ответ от поставщика веб-ответов имеет дисквалифицирующую оценку, то исключается не только сценарий 5, но также сценарии 2 и 3. В некоторых реализациях при оценке также может использоваться географическая информация. Например, используя географическую информацию для указания, на каких Giants ссылается пользователь (Сан-Франциско в отличие от Нью-Йорка), предлагаемый поставщиком данных спортивных игр ответ можно скрыть, чтобы исключить не только сценарий 6, но также сценарий 4.
[0118] Варианты осуществления изобретения и операций, описанных в данном описании изобретения, можно реализовать в цифровых электронных схемах либо в компьютерном программном обеспечении, микропрограммном обеспечении или аппаратных средствах, включая раскрытые в данном описании изобретения структуры и их структурные эквиваленты, либо в сочетаниях одного или более из них. Варианты осуществления объекта изобретения, описанного в данном описании изобретения, можно реализовать в виде одной или более компьютерных программ, то есть одного или более модулей из команд компьютерной программы, кодированных на компьютерном носителе информации для исполнения устройством обработки данных или для управления его работой. В качестве альтернативы или дополнительно команды программы могут кодироваться в искусственно сформированном распространяемом сигнале, например, сформированном машиной электрическом, оптическом или электромагнитном сигнале, который формируется, чтобы кодировать информацию для передачи подходящему приемному устройству для исполнения устройством обработки данных. Компьютерный носитель информации может быть или включаться в машиночитаемое запоминающее устройство, машиночитаемую основу хранения, матрицу или устройство памяти с произвольным или последовательным доступом либо сочетание одного или более из них. Кроме того, хотя компьютерный носитель информации не является распространяемым сигналом, компьютерный носитель информации может быть источником или назначением команд компьютерной программы, кодированных в искусственно сформированном распространяемом сигнале. Компьютерный носитель информации также может быть или включаться в один или более отдельных физических компонентов или носителей (например, множество CD, дисков или других запоминающих устройств).
[0119] Описанные в данном описании изобретения операции можно реализовать как операции, выполняемые устройством обработки данных над данными, сохраненными в одном или более машиночитаемых запоминающих устройствах или принятыми из других источников.
[0120] Термин "устройство обработки данных" включает в себя все виды устройств и машин для обработки данных, включая, в качестве примера, программируемый процессор, компьютер, систему на кристалле или их множество, либо сочетания вышеупомянутого. Устройство может включать в себя специализированные логические схемы, например, FPGA (программируемая пользователем вентильная матрица) или ASIC (специализированная интегральная схема). Устройство в дополнение к аппаратным средствам также может включать в себя код, который создает среду выполнения для компьютерной программы, о которой идет речь, например, код, который составляет микропрограммное обеспечение процессора, стек протоколов, систему управления базами данных, операционную систему, межплатформенную среду исполнения, виртуальную машину или сочетание одного или более из них. Устройство и среда выполнения могут реализовать различные инфраструктуры моделей вычислений, например, инфраструктуры веб-служб, распределенных вычислений и коллективных вычислений.
[0121] Компьютерная программа (также известная как программа, программное обеспечение, программное приложение, сценарий или код) может быть написана на любом виде языка программирования, включая компилируемые или интерпретируемые языки, декларативные или процедурные языки, и она может быть развернута в любом виде, включая автономную программу или модуль, компонент, подпрограмму, объект или другую единицу, подходящую для использования в вычислительной среде. Компьютерная программа может, но не должна, соответствовать файлу в файловой системе. Программа может храниться в части файла, который хранит другие программы или данные (например, один или более сценариев, сохраненных в документе на языке разметки), в одном файле, выделенном для программы, о которой идет речь, или в множестве согласованных файлов (например, файлах, которые хранят один или более модулей, подпрограмм или частей кода). Компьютерная программа может быть развернута для исполнения на одном компьютере или на множестве компьютеров, которые располагаются на одной площадке или распределены по множеству площадок и взаимосвязаны с помощью сети связи.
[0122] Процессы и логические потоки, описанные в данном описании изобретения, могут выполняться одним или более программируемыми процессорами, исполняющими одну или более компьютерных программ для выполнения действий путем воздействия на входные данные и формирования вывода. Процессы и логические потоки также могут выполняться специализированными логическими схемами, например, FPGA (программируемая пользователем вентильная матрица) или ASIC (специализированная интегральная схема), и устройство также может быть реализовано в виде специализированных логических схем.
[0123] Процессоры, подходящие для исполнения компьютерной программы, в качестве примера включают в себя как универсальные, так и специализированные микропроцессоры и любой один или более процессоров в любом виде цифрового компьютера. Как правило, процессор будет принимать команды и данные из постоянного запоминающего устройства или оперативного запоминающего устройства, либо из обоих. Неотъемлемыми элементами компьютера являются процессор для выполнения действий в соответствии с командами и одно или более запоминающих устройств для хранения команд и данных. Как правило, компьютер также будет включать в себя, или функционально соединяться для приема данных или передачи данных, либо того и другого, одно или более запоминающих устройств большой емкости для хранения данных, например, магнитные, магнитооптические диски или оптические диски. Однако компьютеру не обязательно содержать такие устройства. Кроме того, компьютер может быть встроен в другое устройство, например, назовем только несколько, мобильный телефон, персональный цифровой помощник (PDA), мобильный аудио- или видеопроигрыватель, игровую приставку, приемник системы глобального позиционирования (GPS) или портативное запоминающее устройство (например, флэш-накопитель на универсальной последовательной шине (USB)). Устройства, подходящие для хранения команд компьютерной программы и данных, включают в себя все виды энергонезависимого запоминающего устройства, носителей и запоминающих устройств, в качестве примера включающих в себя полупроводниковые запоминающие устройства, например EPROM, EEPROM, и устройства на флэш-памяти; магнитные диски, например внутренние жесткие диски или съемные диски; магнитооптические диски; и диски CD-ROM и DVD-ROM. Процессор и запоминающее устройство могут дополняться специализированными логическими схемами либо включаться в них.
[0124] Чтобы предусмотреть взаимодействие с пользователем, варианты осуществления изобретения, описанного в данном описании изобретения, можно реализовать на компьютере с устройством отображения, например монитором CRT (электронно-лучевая трубка) или LCD (жидкокристаллический дисплей), для отображения информации пользователю и клавиатурой и указательным устройством, например мышью или шаровым манипулятором, с помощью которого пользователь может предоставить компьютеру входные данные. Другие виды устройств с тем же успехом могут использоваться для обеспечения взаимодействия с пользователем; например, обратная связь, предоставленная пользователю, может быть любым видом сенсорной обратной связи, например, визуальной обратной связью, звуковой обратной связью либо тактильной обратной связью; и входные данные от пользователя могут приниматься в любом виде, включая звуковой, речевой или тактильный ввод. К тому же компьютер может взаимодействовать с пользователем путем отправки документов и приема документов от устройства, которое используется пользователем; например, путем отправки веб-страниц в веб-обозреватель на клиентском устройстве пользователя в ответ на запросы, принятые от веб-обозревателя.
[0125] Варианты осуществления изобретения, описанного в данном описании изобретения, можно реализовать в вычислительной системе, которая включает в себя внутренний компонент, например, в виде сервера данных, либо которая включает в себя промежуточный компонент, например сервер приложений, либо которая включает в себя внешний компонент, например клиентский компьютер с графическим интерфейсом пользователя или веб-обозревателем, посредством которых пользователь может взаимодействовать с реализацией изобретения, описанного в данном описании изобретения, либо любое сочетание одного или более таких внутренних, промежуточных или внешних компонентов. Компоненты системы могут быть взаимосвязаны с помощью любой формы или среды цифровой передачи данных, например, с помощью сети связи. Примеры сетей связи включают в себя локальную сеть ("LAN") и глобальную сеть ("WAN"), сетевой комплекс (например, Интернет) и одноранговые сети (например, произвольные одноранговые сети).
[0126] Вычислительная система может включать в себя клиенты и серверы. Клиент и сервер обычно удалены друг от друга и обычно взаимодействуют по сети связи. Взаимосвязь клиента и сервера происходит посредством компьютерных программ, работающих на соответствующих компьютерах и имеющих клиент-серверную связь друг с другом. В некоторых вариантах осуществления сервер передает данные (например, HTML-страницу) клиентскому устройству (например, с целью отображения данных и приема пользовательского ввода от пользователя, взаимодействующего с клиентским устройством). Данные, сформированные на клиентском устройстве (например, результат взаимодействия с пользователем), могут приниматься на сервере от клиентского устройства.
[0127] Хотя данное описание изобретения содержит многие специфические подробности реализации, эти подробности не следует толковать как ограничения объема любых изобретений или того, что может быть заявлено, а скорее как описания признаков, характерных для конкретных вариантов осуществления конкретных изобретений. Некоторые признаки, которые описываются в данном описании изобретения применительно к отдельным вариантам осуществлениям, также можно реализовать вместе в одном варианте осуществления. Наоборот, различные признаки, которые описываются применительно к одному варианту осуществления, также можно реализовать в множестве вариантов осуществления, отдельно или в любой подходящей субкомбинации. Кроме того, хотя признаки могут описываться выше как действующие в некоторых сочетаниях и даже сначала заявляться как таковые, один или более признаков из заявленного сочетания в некоторых случаях могут исключаться из сочетания, и заявленное сочетание может относиться к субкомбинации или разновидности субкомбинации.
[0128] Аналогичным образом, хотя операции изображаются на чертежах в конкретном порядке, это не следует понимать как требование того, что для достижения желаемых результатов такие операции должны выполняться в конкретном показанном порядке или в последовательном порядке, или что должны выполняться все проиллюстрированные операции. В некоторых обстоятельствах могут быть полезны многозадачность и параллельная обработка. Кроме того, разделение различных компонентов системы в описанных выше вариантах осуществления не следует понимать как требование такого разделения во всех вариантах осуществления, а следует понимать так, что описанные компоненты программ и систем обычно можно объединять в единый программный продукт или укомплектовать в множество программных продуктов.
[0129] Таким образом, описаны конкретные варианты осуществления изобретения. Другие варианты осуществления входят в объем, определяемый нижеследующей формулой изобретения. В некоторых случаях перечисленные в формуле изобретения действия могут выполняться в ином порядке и, тем не менее, добиваться желаемых результатов. К тому же изображенные на прилагаемых чертежах процессы не обязательно требуют конкретного показанного порядка или последовательного порядка для достижения желаемых результатов. В некоторых реализациях могут быть полезны многозадачность и параллельная обработка.