СПОСОБ И СИСТЕМА ДЛЯ ОБРАБОТКИ ВХОДНЫХ КОМАНД ПОЛЬЗОВАТЕЛЯ
METHOD AND SYSTEM FOR USER INPUT COMMAND PROCESSING

Перекрестные ссылки
Отсутствуют.
Область техники
Данная технология относится к способам и системам обработки входных команд пользователя.
Уровень техники
Обработка естественного языка (ОЕЯ) используется во многих различных приложениях, в которых пользователь взаимодействует с машиной с помощью речи (то есть, подавая одну или более голосовых команд). Примером такого приложения являются активируемые голосом системы управления для различных типов устройств, таких как смартфоны, телевидение, бытовая техника и т.д. Автоматизированная помощь в колл центрах и коммутаторах, представляет собой другой пример приложений ОЕЯ. Приложение ОЕЯ принимает речь пользователя как входной сигнал, преобразует его в текст, а затем определяет часть полученного текста, включающую команды или операции, которые пользователь желает выполнить, и затем соответственно генерирует машинно-исполняемые инструкции.
Улучшение производительности приложения ОЕЯ зависит от улучшения точности и эффективности обработки речи пользователя и получаемого из нее текста. Полученный пользовательский текст помечается признаками или тегами для помощи определения значения и команд, размещенных в тексте. Теги или признаки генерируются, используя большое тело текста ("корпус текста"), в котором каждое слово в ручном режиме помечается признаками. С целью улучшения точности ОЕЯА, размер корпуса помеченного текста увеличивается. Это очень затратно по ресурсам и не может быть сделано быстро или легко.
Таким образом, здесь присутствует необходимость улучшения способности обработки пользовательской речи более эффективно и менее ресурсозатратно.
Раскрытие изобретения
Объектом данной технологии является устранение по меньшей мере некоторых недостатков, присущих известному уровню техники. Технический результат, достигаемый в настоящем техническом решении, заключается в реализации назначения расширенного арсенала технических средств для обработки естественного языка. Варианты осуществления данной технологии были разработаны на основе предположений ее изобретателей о том, что существует по меньшей мере одна проблема или сфера, для которых возможны улучшения, связанные с решениями, представленными в известном уровне техники.
Так, в соответствии с первым широким аспектом данной технологии, предоставляется способ обработки входных команд пользователя выполняемый на компьютерной аппаратуре, содержащий для каждой из множества машинно-исполняемых инструкций: получение множества примерных выражений машинно-исполняемых инструкций, генерирование соответствующего признака для множества примерных выражений и анализирование множества признаков, связанных с множеством примерных выражений для определения множества шаблонов признаков. Множество признаков содержит признак для каждого из множества примерных выражений. Множество шаблонов признаков используется для преобразования входной команды пользователя в машинно-исполняемую выходную инструкцию, являющуюся одной из множества машинно-исполняемых инструкций.
В другом варианте реализации данной технологии, упомянутый анализ содержит получение счетчика появлений для каждого из множества признаков, и анализ множества признаков после списания из них признаков из множества признаков с низким числом появлений, имеющих счет числа появлений меньший, чем пороговое значение счетчика.
В другом варианте реализации данной технологии, упомянутый анализ содержит анализ с использованием алгоритма Charm Bitset.
В другом варианте реализации данной технологии, упомянутое генерирование множества признаков для каждого из множества примерных выражений включает генерирование множества признаков на основе предопределенного правила.
В другом варианте реализации данной технологии, упомянутое генерирование множества признаков для каждого из множества примерных выражений включает генерирование множества признаков на основе статистической модели.
В другом варианте реализации данной технологии, статистическая модель является одним из: скрытой моделью Маркова или моделью условных случайных полей.
В другом варианте реализации данной технологии, способ включает генерирование компьютерной аппаратурой дополнительного примерного выражения для команды из множества команд; и включение сгенерированного дополнительного примерного выражения во множество примерных выражений для каждой машинно-исполняемой инструкции из множества машинно-исполняемых инструкций.
В другом варианте реализации данной технологии, способ включает, до включения сгенерированного дополнительного примерного выражения во множество примерных выражений, представление сгенерированного примерного выражения тренирующему администратору. В соответствии с упомянутым представлением, подтверждение, получаемое от тренирующего администратора для сгенерированного дополнительного примерного выражения, является показателем утверждения сгенерированного дополнительного примерного выражения.
В другом варианте реализации данной технологии, упомянутое включение сгенерированного примерного выражения во множество примерных выражений дополнительно отвечает за подтверждение и является показателем того, что сгенерированное дополнительное примерное выражение является истинным выражением.
В другом варианте реализации данной технологии, упомянутое включение сгенерированного дополнительного примерного выражения во множество примерных выражений включает сопоставление подтверждения полученного для сгенерированного дополнительного примерного выражения с сгенерированным дополнительным примерным выражением.
В другом варианте реализации данной технологии, упомянутое генерирование дополнительного примерного выражения включает доступ к внешнему ресурсу, коммуникативно связанному с компьютерной аппаратурой.
В другом варианте реализации данной технологии, внешний ресурс является сетевым ресурсом, коммуникативно связанным с компьютерной аппаратурой способ включает поиск по сетевому ресурсу для получения информации для генерирования дополнительного примерного выражения.
В другом варианте реализации данной технологии, способ включает получение генерируемой пользователем входной команды и использование множества шаблонов признаков для преобразования упомянутой генерируемой пользователем входной команды в машинно-исполняемую выходную инструкцию.
В другом варианте реализации данной технологии, признак связанный с одним из множества выражений является показателем одного из: грамматического элемента, корня слова, связанного с примерным выражением, нормализированной формой слова, элементом пунктуации, разделителем между словами и командами.
В другом варианте реализации данной технологии, вес признака присваивается каждому признаку из множества признаков.
В соответствии с другим широким аспектом данной технологии, предусматривается система для обработки пользовательских входных команд. Система содержит коммуникационный интерфейс для получения множества примерных инструкций машинно-исполняемых инструкций из множества машинно-исполняемых инструкций, и тренирующего модуля, коммуникативно связанного с коммуникационным интерфейсом и имеющим процессор, настроенный на генерацию множества признаков для множества примерных выражений машинно-исполняемых инструкций, и анализа множества признаков, связанных с множеством примерных выражений машинно-исполняемой инструкции для определения множества шаблонов признаков для машинно-исполняемой инструкции. Множество шаблонов признаков используется для преобразования входной команды пользователя в машинно-исполняемую выходную инструкцию, являющуюся одной из множества машинно-исполняемых инструкций.
В другом варианте реализации данной технологии, тренирующий модуль коммуникативно связан с внешним ресурсом и процессор дополнительно настроен на генерацию дополнительного примерного выражения для машинно-исполняемой инструкции из множества машинно-исполняемых инструкций, и содержит сгенерированное дополнительное примерное выражение во множестве примерных выражений.
В другом варианте реализации данной технологии, тренирующий модуль соединен с внешним ресурсом, сгенерированное дополнительное примерное выражение генерируется обращением к внешнему ресурсу.
В другом варианте реализации данной технологии внешний ресурс является сетевым ресурсом, а тренирующий модуль соединен с поисковым модулем, настроенным на поиск по сетевому ресурсу.
В контексте настоящего описания «сервер» подразумевает под собой компьютерную программу, работающую на соответствующем оборудовании, способную получать запросы (например, от клиентских устройств) по сети и выполнять эти запросы или инициировать выполнение этих запросов. Оборудование может представлять собой один физический компьютер или одну физическую компьютерную систему, но ни то, ни другое не является обязательным для настоящей технологии. В контексте настоящей технологии использование выражения «сервер» не означает, что каждая задача (например, полученные инструкции или запросы) или какая-либо конкретная задача будет получена, выполнена или инициирована к выполнению одним и тем же сервером (то есть одним и тем же программным обеспечением и/или аппаратным обеспечением); это означает, что любое количество элементов программного обеспечения или аппаратных устройств может быть вовлечено в прием/передачу, выполнение или инициирование выполнения любой задачи или запроса или последствий любой задачи или запроса; и все это программное и аппаратное обеспечение может быть одним сервером или несколькими серверами, оба варианта включены в выражение «по меньшей мере один сервер».
В контексте настоящего описания «сетевой ресурс» подразумевает под собой любые данные или набор данных, которые могут быть предоставлены издателем через сеть, и которые связаны с адресом сетевого ресурса. Не ограничивающими примерами сетевых ресурсов являются HTML страницы, документы, изображения, видеозаписи, ленты новостей, или же множества вышеприведенных файлов. Сетевые ресурсы могут включать в себя контент, такой, например, как слова, фразы, изображения и т.д. и/или встроенную информацию, например, мета-данные, гиперссылки и/или встроенные инструкции (например, на Java-скрипте).
В контексте настоящего описания «клиентское устройство» или ʺэлектронное устройствоʺ подразумевает под собой компьютерное оборудование, способное работать с программным обеспечением, подходящим к решению соответствующей задачи. Таким образом, некоторыми (не ограничивающими) примерами клиентских устройств могут служить персональные компьютеры (настольные компьютеры, ноутбуки, нетбуки и т.п.) смартфоны, планшеты, а также сетевое оборудование, такое как маршрутизаторы, коммутаторы и шлюзы. Следует иметь в виду, что устройство, ведущее себя как клиентское устройство в настоящем контексте, может вести себя как сервер по отношению к другим клиентским устройствам. Использование выражения «клиентское устройство» не исключает возможности использования множества клиентских устройств для получения/отправки, выполнения или инициирования выполнения любой задачи или запроса, или же последствий любой задачи или запроса, или же этапов любого вышеописанного способа.
В контексте настоящего описания «информация» включает в себя информацию любого рода или типа, которая может храниться в базе данных. Таким образом, информация включает в себя, среди прочего, аудиовизуальные произведения (изображения, видео, звукозаписи, презентации и т.д.), данные (данные о местоположении, цифровые данные и т.д.), текст (мнения, комментарии, вопросы, сообщения и т.д.), документы, таблицы и т.д.
В контексте настоящего описания слова «первый», «второй», «третий» и т.д. используются в виде прилагательных исключительно для того, чтобы отличать существительные, к которым они относятся, друг от друга, а не для целей описания какой-либо конкретной связи между этими существительными. Так, например, следует иметь в виду, что использование терминов ʺпервый серверʺ и ʺтретий серверʺ не подразумевает какого-либо порядка, отнесения к определенному типу, хронологии, иерархии или ранжирования (например) серверов/между серверами, равно как и их использование (само по себе) не предполагает, что некий ʺвторой серверʺ обязательно должен существовать в той или иной ситуации. Дополнительно, как указано здесь в других контекстах, упоминание ʺпервогоʺ элемента и ʺвторогоʺ элемента не исключает возможности того, что это один и тот же фактический реальный элемент. Так, например, в некоторых случаях, ʺпервыйʺ сервер и ʺвторойʺ сервер могут являться одним и тем же программным и/или аппаратным обеспечением, а в других случаях они могут являться разным программным и/или аппаратным обеспечением.
Каждый вариант осуществления настоящей технологии содержит по меньшей мере одну из вышеупомянутых целей и/или объектов, но наличие всех не является обязательным. Должно быть понятно, что некоторые объекты представленной технологии, полученные в результате попыток достичь вышеупомянутой цели, могут не удовлетворять этой цели и/или могут удовлетворять другим целям, отдельно не указанным здесь.
Дополнительные и/или альтернативные характеристики, аспекты и преимущества вариантов реализации представленной технологии станут очевидными из последующего описания, прилагаемых фигур и прилагаемой формулы изобретения.
Краткое описание Фигур
Для лучшего понимания представленной технологии, а также других ее аспектов и характеристик сделана ссылка на следующее описание, которое должно использоваться в сочетании с прилагаемыми фигурами, в которых:
Фиг. 1 является схематической иллюстрацией сетевого оборудования в соответствии с не ограничивающими вариантами реализации представленной технологии; и
Фиг. 2 является блок-схемой иллюстрирующей систему в соответствии с не ограничивающими вариантами реализации представленной технологии обработки пользовательских команд реализуемых в сетевом оборудовании проиллюстрированном на Фиг. 1;
Фиг. 3А является примерной иллюстрацией машинно-исполняемой инструкции и примерным выражениями этого;
Фиг. 3Б является примерной иллюстрацией сгенерированных дополнительных примерных выражений для машинно-исполняемой инструкции Фиг. 3А;
Фиг. 4А является примерной иллюстрацией машинно-исполняемой инструкции и примерными выражениями Фиг. 3А и сгенерированными признаками для этого;
Фиг. 4Б является примерной иллюстрацией машинно-исполняемой инструкции Фиг. 3А и шаблонами признаков связанными с ней; и
Фиг. 5 является схемой процесса способа обработки естественного языка в соответствии с вариантом реализации представленной технологии.
Раскрытие изобретения
На Фиг. 1 представлена принципиальная схема системы 100, приемлемая для реализации неограничивающих вариантов осуществления представленной технологии. Важно иметь в виду, что нижеследующее описание системы 100 представляет собой описание иллюстративных вариантов осуществления представленной технологии. Таким образом, все последующее описание представлено только как описание иллюстративных примеров представленной технологии. Это описание не должно рассматриваться как описание, определяющее объем и сущность представленной технологии.
В некоторых случаях, считающихся приемлемыми, примеры модификаций системы 100, также могут быть охвачены нижеследующим описанием. Модификации описаны исключительно как помощь в понимании, но не для определения объема и сущности представленной технологии. Эти модификации не являются исчерпывающим списком и для специалиста в данной области будет понятно, что другие модификации также возможны. Дополнительно, там, где это еще не было сделано (т.е. там, где не были изложены примеры модификаций), это не должно трактоваться так, будто никакие модификации невозможны, и/или что то, что описано, является единственным вариантом реализации этого элемента представленной технологии. Как будет понятно специалисту в данной области техники, это, скорее всего, не так. Кроме того, следует иметь в виду, что система 100 может представлять в некоторых конкретных случаях достаточно простые варианты реализации представленной технологии, и в подобных случаях они представлены здесь с целью облегчения понимания. Как будет понятно специалисту в данной области техники, многие варианты осуществления представленной технологии будут обладать гораздо большей сложностью.
Система 100 содержит электронное устройство 102, соединенное с коммуникационной сетью 110 по коммуникационному соединению 103.
Электронное устройство 102 является обычно связанным с пользователем (не показан) и, таким образом, может иногда считаться ʺклиентским устройствомʺ. В проиллюстрированном варианте, электронное устройство 102 является смартфоном 102. Реализация электронного устройства 102, однако, не ограничена смартфоном 102. В качестве примера, электронное устройство 102 может быть выполнено как персональный компьютер (настольные компьютеры, ноутбуки, нетбуки и т.п.), беспроводное электронное устройство (планшеты и т.п.), а также сетевое оборудование (маршрутизатор, коммутатор или шлюз). Общий вариант осуществления электронного устройства 102 известен в области техники, и поэтому не будет здесь подробно описан.
Хотя настоящее описание выполнено со ссылкой на систему 100, имеющую одно электронное устройство 102, должно быть очевидно, что сетевое оборудование 100 может содержать более чем одно электронное устройство 102. Количество электронных устройств не ограничено двумя, проиллюстрированными в нем.
Электронное устройство 102 содержит пользовательский входной интерфейс (такой как клавиатура, мышь, сенсорная панель, сенсорный экран, микрофон и т.д.) для получения пользовательских вводных. Электронное устройство 102 содержит пользовательский выходной интерфейс (такой как экран, динамик, принтер и т.д.) для обеспечения визуального, звукового или тактильного вывода для пользователя. Электронное устройство 102 содержит сетевой коммуникационный интерфейс (такой как модем, сетевую карту и т.д.) для двунаправленной связи по коммуникационной сети 110 по коммуникационному соединению 103. Электронное устройство 102 также содержит процессор, соединенный с пользовательским входным интерфейсом, пользовательским выходным интерфейсом и сетевым коммуникационным интерфейсом. Процессор настроен на выполнение различных способов, включая те, что описаны ниже. С этой целью процессор может сохранять или иметь доступ к машиночитаемым командам, выполнение которых инициирует выполнение процессором различных описанных в этом документе способов. Электронное устройство 102 содержит аппаратное и/или прикладное программное и/или системное программное обеспечение (или их комбинацию), как известно в данной области техники, для выполнения различных приложений. Электронное устройство 102 имеет несколько приложений, таких как диктационное приложение 150, которое настроено на получение пользовательской речи как вводной и выполнение или вызывание выполнения одной или более машинно-исполняемых инструкций, ответственных за получение пользовательской речи. Электронное устройство 102 также имеет приложения настроенные на получение и передачу информации по коммуникационной сети 110. Примеры таких приложений содержат, диктационное приложение 150, браузерное приложение, музыкально-потоковое приложение, приложение распространения фотографий и т.д.
В проиллюстрированном варианте представленной технологии, коммуникационная сеть 110 реализована как Интернет. В других вариантах реализации представленной технологии, коммуникационная сеть 110 может быть реализована иначе - в виде глобальной коммуникационной сети, локальной коммуникационной сети, частной коммуникационной сети и т.п.
Коммуникационное соединение 103, которое также может содержать различные не ограничивающие варианты реализации, и конкретные вариант(ы) коммуникационного соединения 103 для электронного устройства 102 будет зависеть от того, как реализовано электронное устройство 102. В проиллюстрированных вариантах, коммуникационное соединение 103 для электронного устройства 102 может быть также беспроводным (таким как Wireless Fidelity или WiFi короче, Bluetooth или т.п.) или проводным (таким как Universal Serial Bus или соединение на основе USB). Более того, коммуникационное соединение 103 соединяемое с электронным устройством 102 к коммуникационной сети 110 может также содержать более одного типа соединения. Например, смартфон 102 может соединяться с сетью 110 как по беспроводному, так и по проводному соединению.
Важно иметь в виду, что варианты осуществления электронного устройства 102, коммуникационного соединения 103 и коммуникационной сети 110 даны исключительно в иллюстрационных целях. Таким образом, специалисты в данной области техники смогут понять подробности других конкретных вариантов осуществления электронного устройства 102, коммуникационного соединения 103 и коммуникационной сети 110. Примеры, приведенные в этом описании, не означают, что они ограничивают границы представленной технологии.
Также соединенным с коммуникационной сетью 110 является сервер приложений 120. Сервер приложений 120 соединяется с подмножеством электронных устройств соединенных с коммуникационной сетью 110. Например, в проиллюстрированном варианте сетевого оборудования 100, сервер приложений 120 соединен с электронным устройством 102. Сервер приложений 120 может также быть подключен к другим серверам, таким как, но без ограничений, сетевые ресурсные сервера, сервера приложений и другим сетевым структурным серверам, по коммуникационной сети 110.
Сервер приложений 120 может представлять собой обычный компьютерный сервер. В примере варианта реализации представленной технологии, сервер приложений 120 может представлять собой сервер Dell™ PowerEdge™, на котором используется операционная система Microsoft™ Windows Server™. Сервер приложений 120 может также быть выполнен как сетевое оборудование другого типа, такое как, но без ограничений, роутер, коммутатор или шлюз, базовая станция и т.д. Сервер приложений 120 может быть выполнен на любых подходящих аппаратных и/или программных и/или программно-аппаратных средствах или их комбинации. В представленном не ограничивающем варианте осуществления представленной технологии, сервер приложений 120 является одиночным сервером. В других не ограничивающих вариантах реализации представленной технологии, функциональность сервера приложений 120 может быть распределена, и может выполняться с помощью нескольких серверов. Варианты реализации сервера приложений 120 хорошо известны. Однако, коротко говоря, сервер приложений 120 содержит коммуникационный интерфейс (не показан) структурированный и настроенный на коммуникацию с электронным устройством 102, и другими устройствами, подключенными к коммуникационной сети 110. Сервер приложений 120 дополнительно содержит по меньшей мере один компьютерный процессор (не показан), функционально соединенный с коммуникационным интерфейсом и структурированный и настроенный на выполнение различных процессов, описанных здесь.
Система 100 также содержит сетевой ресурсный сервер 130, размещающий три сетевых ресурса 130а, 130b, 130с, которые могут быть доступны через подключение к сетевому ресурсному серверу 130 по коммуникационной сети 110. Сетевой ресурсный сервер 130 может представлять собой обычный компьютерный сервер. В примере варианта реализации представленной технологии, сетевой ресурсный сервер 130 может представлять собой сервер Dell™ PowerEdge™, на котором используется операционная система Microsoft™ Windows Server™. Сетевой ресурсный сервер 130 может быть выполнен на любых подходящих аппаратных и/или программных и/или программно-аппаратных средствах или их комбинации. В представленном варианте реализации представленной технологии, сетевой ресурсный сервер 130 является одиночным сервером. В других не ограничивающих вариантах реализации представленной технологии, функциональность сетевого ресурсного сервера 130 может быть распределена, и может выполняться с помощью нескольких серверов. Также должно быть понятно, что сетевой ресурсный сервер 130 и сетевые ресурсы 130а, 130b, 130с размещенные на сетевом ресурсном сервере 130, как здесь представлено, являются примером. Система 100 может содержать любое количество и тип сетевых ресурсных серверов 130 и каждый ресурсный сетевой сервер 130 может размещать любое количество сетевых ресурсов.
В проиллюстрированном варианте реализации, для убедительности и упрощения описания представленной технологии, сетевой ресурсный сервер 130 считается сетевым ресурсным сервером и сетевые ресурсы 130а, 130b, 130с, размещенные на сетевых ресурсных серверах 130, считаются сетевыми ресурсами (или вебсайтами). Следует однако понимать, что представленная технология ни коим образом не ограничивается сетевыми ресурсными серверами и сетевыми ресурсами.
Приложение обработки естественного языка
В контексте настоящего описания, приложение обработки естественного языка является приложением, которое преобразует пользовательские команды 300 (Фиг. 2) в машинно-исполняемую инструкцию 310, и наоборот. Описание ниже представлено в соответствии с диктационным приложением 150, в котором генерируемая пользователем речь получается как вводная и преобразуется в текст и обрабатывается для определения команды 300 размещенной в тексте и преобразует команды в машинно-исполняемую инструкцию 310.
В соответствии с Фиг. 1, диктационное приложение 150 предусматривается на электронном устройстве 102 для предоставления возможности пользователю (не показан) электронного устройства 102 вводить речь с помощью микрофона электронного устройства. Текстовый ввод пользователем электронного устройства 102 содержит надиктованный текстовый контент, который пользователь желает переписать в документ. Входная речь также содержит одну или более входных пользовательских команд 300, которые необходимо выполнить или управлять надиктованным текстовым контентом.
Во время использования диктационного приложения 150, пользователь может пожелать выполнения таких операций как, но без ограничений: добавить к документу, редактировать выражение, удалить слово, сохранить документ, продолжить параграф, начать с новой страницы, открыть сохраненный документ, создать новый документ и т.д. Желаемые операции содержат команду (редактировать, добавить, сохранить, создать и т.д.…) и объекты с которыми необходимо выполнить операции (слово, выражение, документ, страница и т.д.…) Одной из сложных задач для диктационного приложения 150 является идентифицирование пользовательских команд 300 размещенных в речевой вводной пользователя. Другой сложной задачей является разрешение неясностей в речевой вводной пользователя.
Для каждой из операций, запрос на выполнение операции может быть выражен различными способами пользователем приложения. Например, операция ʺдобавитьʺ может быть запрошена пользователем, используя команду ʺвложитьʺ, ʺсоединитьʺ, ʺвставитьʺ и другие подобные слова. В целях выполнения запрошенной операции, процессор требует инструкции(ий) в конкретной форме, которые являются определенными для конкретного языка программирования в котором реализована система обработки. Диктационное приложение 150, таким образом, должно преобразовать пользовательские команды 300 размещенные в вводной, полученной от пользователя, в машинно-исполняемые инструкции 310. Диктационное приложение 150 таким образом должно изучить различные выражения естественного языка для каждой машинно-исполняемой инструкции 310.
В общем, диктационное приложение реализуется модулем обработки естественного языка (не показан). В этом варианте, модуль обработки естественного языка интегрирован с процессором электронного устройства 102. В некоторых альтернативных вариантах, модуль обработки естественного языка интегрирован с сервером, таким как сервер приложений 120. В некоторых других вариантах, часть модуля обработки естественного языка может быть частично интегрирован с электронным устройством 102, а другая часть модуля обработки естественного языка интегрируется с сервером приложений 120. Модуль обработки естественного языка содержит комбинацию аппаратного и/или программного и/или аппаратно-программного оборудования для работы диктационного приложения 150. Процессор содержит устройство распознавания речи, которое детектирует и преобразует детектированную речь в текстовые данные, анализатор для анализа тестовых данных, как будет показано ниже, и синтаксический анализатор для преобразования проанализированных текстовых данных в одну или более машинно-исполняемых инструкций 320.
Диктационное приложение получает как вводную речь, которая может содержать одну или более команд для выполнения операций таких, как, но без ограничений: добавление, редактирование, удаление, сохранение, продолжение документа, открытие сохраненного документа, создание нового документа и т.д. Как упоминалось выше, входная речь преобразуется в текстовые данные речь-в-текст конвертором. Диктационное приложение 150 затем анализирует текстовые данные. Анализ текстовых данных включает присвоение признаков 400 (Фиг. 4А) каждому из слов в текстовых данных.
Признаки 400 являются дескрипторами для слов, и содержат дескрипторы частей речи такие как глагол, существительное, единичное число, множественное число, сослагательное наклонение, инфинитив и т.д. Признаки могут также содержать дескрипторы, такие как ʺкомандаʺ или ʺне командаʺ для определения какие из слов имеют приемлемую для команды форму.
В некоторых вариантах, различные типы признаков 400 присваиваются каждому слову. Примеры типов признаков содержат слова как, нормализованная форма слова, грамматический элемент или часть речи, общий корень слова, пунктуация, разделитель слов, команда, не команда и т.д. Каждый тип признаков может быть представлен символически, например, числом или значением хеш-функции. В некоторых вариантах, признакам присваиваются веса, которые показывают важность типа признака для обработки входных пользовательских команд 300. В некоторых вариантах, веса присваиваются в ручном режиме, а в других вариантах, веса присваиваются автоматически с помощью машинной обучающей тренировки.
Например, слово, которое можно представить ʺ1ʺ и с присвоенным весом 5.0; нормализированная форма слова может быть представлена ʺ2ʺ и с присвоенным весом ʺ5.0ʺ тип признака ʺграмматический элементʺ может быть представлен номером ʺ3ʺ и присвоенным весом 1.0, тип признака ʺкоманда или не командаʺ может быть представлен номером ʺ9ʺ и присвоенным весом 3.0 и так далее и т.п. Каждому слову также присваивается величина для каждого типа признака 400. Таким образом, для слова ʺудалитьʺ, присвоенные типы признаков могут быть [1, 2, 3, 3, 9] с соответствующими величинами [удалить, удалить, слово, настоящее, команда] и соответствующими весами [5, 5, 1, 1, 3].
Признаки 400 присваиваются слову на основе морфологического и лексикологического анализа слова, и берутся во внимание соседние слова. В некоторых вариантах, если конкретное слово(а) может иметь более чем одно значение, тогда диктационное приложение 150 просматривает признаки 400 соседних слов с тем, чтобы присвоить признаки 400 этому слову.
Входные текстовые данные анализируются сравнением с тренировочным набором данных. Сравнение делается определением пересечений между признаками 400 слов входного текста и шаблонов признаков 410, сохраненных в базе данных шаблонов признаков предоставляемой тренировочным модулем 220, и этого из входных текстовых данных. Точность диктационного приложения 150 увеличивается с размером базы данных шаблонов признаков, и/или с ее способностью использовать доступные шаблоны признаков для коррелирования машинно-исполняемых инструкций 310 с различными возможными пользовательскими командами 300.
В соответствии с Фиг. 2, диктационное приложение 150 функционально подключено к тренировочному модулю 220 для изучения различных пользовательских команд 300 связанных с машинно-исполняемой инструкцией 310, и для изучения различных шаблонов признаков 410 связанных с каждой машинно-исполняемой инструкцией 310 как будет описано ниже.
В проиллюстрированном не ограничивающем варианте, тренировочный модуль 220 интегрирован с диктационным приложением 150. Так, в проиллюстрированном, тренировочный модуль 220 интегрирован с электронным устройством 102. В некоторых альтернативных вариантах, тренировочный модуль 220 интегрирован с сервером, таким как сервер приложений 120. В некоторых других вариантах, часть тренировочного модуля 220 интегрирована с электронным устройством 102, а другая часть тренировочного модуля 220 интегрируется с сервером приложений 120. Тренировочный модуль 220 включает комбинацию аппаратного и/или программного и/или аппаратно-программного оборудования для выполнения различных задач, связанных с тренировкой диктационного приложения 150 как это будет описано ниже. Тренировочный модуль 220 является также функционально соединенным с ресурсами 330 для получения доступа к информации. Ресурсы 330 могут быть внешними ресурсами, такими как сетевые ресурсы вроде веб-страниц, баз данных и т.п. Ресурсы 230 могут локально сохраняться или интегрироваться с тренировочным модулем 220. Например, словарь, или тезаурус могут сохраняться локально на устройстве хранения памяти тренировочного модуля 220. Тренировочный модуль 220 также связан с коммуникационным интерфейсом 240 через который может связываться с тренирующим администратором.
Тренирующий администратор это человек-оператор, который взаимодействует с тренировочным модулем 220 для создания шаблона признаков 410 и примерных выражений 320 связанных с различными машинно-исполняемыми инструкциями 310.
Хотя представленное описание будет предусматривать ссылки к диктационному приложению 150, должно, однако, быть понятно, что способы и системы представленной технологии не ограничиваются диктационным приложением 150, но могут быть применены к любому приложению обработки естественного языка, которое обрабатывает естественный язык. Например, приложение обработки естественного языка может быть приложением автоматизированного направления вызова, которое принимает голосовую вводную пользователя, обрабатывает полученную входную речь для определения запроса звонящего и в соответственно направляет телефонный вызов к должной локации. В другом примере, приложение обработки естественного языка может быть активируемой голосом системой управления для телевизора, приложением текст-голос для преобразования текста в голос и т.д.
Способ
Способ 600 представленной технологии для обработки входных пользовательских команд 300 будет теперь описан в соответствии с Фиг. 3А-5.
Как упоминалось выше, обработка пользовательских входных команд 300 может быть использована в контексте приложения обработки естественного языка, такого как диктационное приложение 150, преобразующее входные пользовательские команды 300 полученные как вводные в машинно-исполняемую инструкцию 310. Машинно-исполняемая инструкция 310 является выходом для того, что будет выполнять или вызывать выполнение машинно-исполняемой инструкции 310. Диктационное приложение 150 преобразует пользовательскую входную команду 300, полученную как вводную в машинно-исполняемую инструкцию 310, которая является выходом для процессора электронного устройства 102.
Способ 600 будет описан в контексте диктационного приложения 150, однако, как упоминалось выше, способ 600 не ограничивается диктационным приложением 150, но может быть использован с любым приложением обработки естественного языка, которое вызывает выполнение одной или более машинно-выполняемых инструкций 310 в соответствии с получением одной или более входных пользовательских команд 300.
Способ 600 выполняется тренировочным модулем 220. Способ 600 начинается на этапе 610 в момент получения тренировочным модулем 220 множества примерных выражений 320 для каждой машинно-выполняемой инструкции 310 из множества машинно-выполняемых инструкций. В некоторых вариантах, множество примерных выражений 320 получается от тренировочного администратора. Каждое примерное выражение 320 является словом или фразой, которое может быть использовано для выражения машинно-выполняемой инструкции 310 в нормальном человеческом языке. Другими словами, каждое примерное выражение 320 является возможной пользовательской входной командой 300.
Например, для машинно-исполняемой инструкции 310 ʺудалитьʺ, тренировочный администратор вводит список примерных выражений 320 как показано на Фиг. 3А. Каждое из примерных выражений 320 описывает операцию ʺудалитьʺ в нормальном человеческом языке. Каждое примерное выражение 320 может иметь одно слово, или множество слов. Так, каждое примерное выражение 320 может быть словом или фразой.
Также тренировочный администратор может ввести список примерных выражений 320 для множества машинно-исполняемых инструкций 310, которые являются выполняемыми компьютерным аппаратом. Как упоминалось выше, список машинно-исполняемых инструкций 310 может содержать инструкции, такие как ʺдобавитьʺ, ʺпоказатьʺ и т.д. Особый список машинно-исполняемых инструкций 310, для которых тренировочный модуль 220 получает примерные выражения 320, может быть особым для особой реализации приложения обработки естественного языка. Например, список машинно-исполняемых инструкций 310 может отличаться для приложения колл-центра в сравнении с диктационным приложением 150.
На этапе 620, признаки 400 генерируются для каждого из множества примерных выражений полученных на этапе 610. Признаки 400 были обсуждены выше. В некоторых вариантах реализации, признаки 400 генерируются с использованием предопределенных правил. Например, если слово ʺкнигаʺ предварительно имеет ʺаʺ, слову книга присваивается величина ʺсуществительноеʺ для типа признаков ʺграмматический элементʺ. В некоторых вариантах, признаки 400 генерируются с использованием алгоритмов, основанных на статистических моделях, таких как скрытая модель Маркова и/или модели условных случайных полей (УСП). Каждое примерное выражение 320 ассоциируется с рядом признаков 400. Например, в соответствии с Фиг. 4А, слову ʺудалитьʺ присваивается ряд признаков [123339].
С целью присвоения признаков 400, каждое примерное выражение 320 разбивается на единицы, содержащие слово или группу слов, и затем признаки 400 присваиваются каждой единице примерного выражения. Например, в некоторых вариантах реализации способа 600, примерное выражение ʺразрезать выражениеʺ разбивается на две единицы ʺразрезатьʺ и ʺtheʺ и ʺвыражениеʺ и соответственно присваиваются признаки 400 [122], [48], и [346]. В некоторых других вариантах способа 600, примерное выражение может быть разбито на единицы ʺразрезатьʺ и ʺвыражениеʺ и присваиваются признаки 400 [122] и [3468].
На этапе 630, признаки 400 ассоциированные с примерными выражениями 320 для конкретной машинно-исполняемой инструкции 310 анализируются для определения шаблонов признаков 410 (Фиг. 4Б) для этой машинно-исполняемой инструкции 310. Признаки 400 для примерных выражений 320 анализируются с использованием шаблона собирательных алгоритмов, такого как, но без ограничений, алгоритм Charm Bitset. Предполагается, что любой подходящий шаблон собирательного алгоритма может быть использован для определения шаблонов признаков 410, связанных с каждой машинно-исполняемой инструкцией 310. Так, в соответствии с этапом 630, каждое множество машинно-исполняемых инструкций 300 ассоциированных с множеством шаблонов признаков 410. Шаблоны признаков 410 связанные с каждой командой показывают наличие конкретных признаков 400 в комбинации с другими признаками 400 для этой машинно-исполняемой инструкции 310.
Анализируя признаки 400, связанные с примерными выражениями 320 для множества машинно-исполняемых инструкций 310 и получения шаблонов признаков 410, связанных с каждой машинно-исполняемой инструкцией 310, тренировочный модуль 220 изучает правила для наличия конкретных признаков 400 в комбинации с другими признаками 400. Размер базы данных шаблонов признаков 410 доступных для диктационного приложения 150 может быть увеличен добавлением дополнительных примеров 320 использования конкретных машинно-исполняемых инструкций 310, и затем шаблон собирает признаки 400, связанные с примерным выражениями 320 для чего конкретные машинно-исполняемые инструкции 310 без необходимости шаблона, собирать целые текстовые корпуса, что является значительно
В некоторых вариантах, до сбора множество признаков 400, связанных с множеством примерных выражений 320 для определения шаблонов признаков 410 для машинно-исполняемой инструкции 310, редко встречающиеся признаки 400 отбрасываются из множества 400, связанного с множеством примерных выражений 320 для машинно-исполняемой инструкуции 310. Так, признаки 400, которые появляются изредка в примерном выражении 320, для конкретной машинно-исполняемой инструкции 310 отбрасываются до сбора множества признаков 400 связанных с примерными выражениями 320 для определения шаблонов признаков 410 связанных с этой машинно-исполняемой инструкцией 310. Так, в некоторых вариантах, число появлений (счетчик появлений) признака 400 во множестве признаков 400 ассоциируется с множеством примерных выражений 320 для считанной машинно-исполняемой инструкции 310. Если счет появления признака 400 ниже чем пороговый счетчик появлений, то признак 400 отбрасывается или удаляется из множества признаков 400 присвоенных признакам 400 связанным с множеством примерных выражений 320 машинно-исполняемой инструкции 310.
В некоторых вариантах, один или более дополнительных примеров 330 генерируются тренировочным модулем 220 для одной или более машинно-исполняемых инструкций 310. Дополнительные примерные выражения 330 сгенерированные для конкретных машинно-исполняемых инструкций 310 затем включаются во множество примерных выражений 320 для этой машинно-исполняемой инструкции 310.
Дополнительные примерные выражения 330 генерируются получением слов и фраз, имеющих подобное значение машинно-исполняемой инструкции 310 или одному из примерных выражений 320. Тренировочный модуль 220 обращается к одному или более ресурсам 230, таким как словарь, тезаурус, сетевой ресурс такой как сетевые ресурсы 130а, 130b, 130с и т.д. с целью генерирования дополнительных примерных выражений 330. Например сценарий Фиг. 3А и 3Б, тренировочный модуль 220 может обращаться к тезаурусу для получения синонимов для слова ʺстеретьʺ и, таким образом, генерирует дополнительные примерные выражения ʺуничтожитьʺ, ʺаннулироватьʺ, ʺвычеркнутьʺ и ʺсравнятьʺ для машинно-исполняемой инструкции 310 ʺудалитьʺ. Считается, что ресурс 230 может храниться локально в тренировочном модуле 220 и/или подключенным к тренировочному модулю 220 по коммуникационной сети 110. В некоторых вариантах, тренировочный модуль 220 соединен с модулем сетевого поиска для получения от туда информации. В некоторых вариантах генерация дополнительных примерных выражений 330 тренировочным модулем 220 может быть инициирована наличием события операции сетевого поиска.
В некоторых вариантах, сгенерированное дополнительное примерное выражение 330 представляется администратору на утверждение. Сгенерированное дополнительное примерное выражение 330 представляется тренирующему администратору по коммуникационному интерфейсу 240. Тренирующий администратор затем преобразует сгенерированное примерное выражение 330 и оценяет его как действительное или не действительное. Считается, что подтверждение сгенерированного дополнительного выражения 330 может быть реализовано в форме рейтинга действительности на шкале, имеющей более чем две возможные величины.
В некоторых вариантах способа 600, дополнительное примерное выражение 330 сгенерированное тренирующим модулем 220 для конкретной машинно-исполняемой инструкции 310 включается в множество примерных выражений 320 полученных взамен (от тренирующего администратора) соответственно к подтверждению полученному от тренирующего администратора для этого сгенерированного дополнительного примерного выражения 330. Так, в примерном сценарии для машинно-исполняемой инструкции 310 ʺудалитьʺ, генерируются дополнительные примерные выражения 330 ʺуничтожитьʺ, ʺаннулироватьʺ, ʺвычеркнутьʺ и ʺсравнятьʺ предоставляются тренирующему администратору. В этом примерном сценарии, подтверждение полученное от тренирующего администратора для сгенерированного примерного выражения 330 ʺуничтожитьʺ может быть индикатором его действительности или быть индикатором того, что оно находится выше порога действительности. В ответ на получение позитивного утверждения от тренирующего администратора, сгенерированное примерное выражение 330 будет включено во множество выражений 320 связанных с машинно-исполняемой инструкцией 310 ʺудалитьʺ.
В некоторых вариантах, все из дополнительных примерных выражений 330 сгенерированных тренировочным модулем 220 для конкретной машинно-исполняемой инструкции 310 включаются во множество примерных выражений 320 на ряду с соответствующим подтверждением их действительности. Так, каждое дополнительное примерное выражение 330 включается в множество примерных выражений 320 независимо от действительного или недействительного подтверждения или рейтинга действительности. В некоторых вариантах, подтверждение дополнительного примерного выражения 330 ассоциируется с дополнительным примерным выражением 330. Подтверждение дополнительного примерного выражения 330 может включаться как признак 400 для дополнительного примерного выражения 330. Так, множество примерных выражений, в этом варианте, могут включать примерные выражения 320, не действительные или нефункциональные для описания соответствующей машинно-исполняемой инструкции. Эта информация относится к недействительным или не функциональным примерным выражениям используемым для увеличения точности обработки пользовательских команд 300 в машинно-исполняемые инструкции 310. Заключение о не действительности или не функциональности примерного выражения уменьшает ошибки в преобразовании пользовательской команды 300 в машинно-исполняемую инструкцию 310 предоставлением диктационному приложению 150 случаями не функциональности или неправильного использования машинно-используемой инструкции 310.
В некоторых вариантах, множество примерных выражений 320 для машинно-исполняемых инструкций 310 рассортированы в нисходящем порядке приближения к соответствующей машинно-исполняемой инструкции 310. Так, в некоторых вариантах, параметр приближения определяется для каждого примерного выражения по отношению к соответствующей машинно-исполняемой инструкции 310.
Должно быть понятно, что хотя описания были предоставлены по отношению к выражениям английского языка, должно быть понятно, что способы и системы, описанные выше, не ограничиваются реализацией только для одного языка. Способы и системы, описанные выше, могут быть реализованы в любом языке и могут также быть реализованы в более чем одном языке.
Модификации и улучшения описанных выше вариантов реализации представленной технологии могут быть очевидны специалисту в данной области техники. Дальнейшее описание является примерным, а не ограничивающим. Объем представленной технологии ограничен только объемом прилагаемой формулы изобретения.