Выделение смысла с помощью Yandex SpeechKit Cloud — различия между версиями
| Строка 42: | Строка 42: | ||
| − | '''Шаг 3.''' После выполнения web-запроса в переменной ЯндексОтвет содержится размеченный текст в виде JSON-структуры. Для получения конкретных значений используйте компонент "'''Парсер'''". Подробнее про работу с компонентом читайте в статье: [[Компонент Парсер]]. | + | '''Шаг 3.''' После выполнения web-запроса в переменной '''ЯндексОтвет''' содержится размеченный текст в виде JSON-структуры. Для получения конкретных значений используйте компонент "'''Парсер'''". Подробнее про работу с компонентом читайте в статье: [[Компонент Парсер]]. |
Версия 12:37, 26 декабря 2014
Наверх [Oktell 2.7+]
Введение
Yandex SpeechKit Cloud — это облачный сервис, открывающий разработчикам доступ к речевым технологиям Яндекса. В этой статье мы поговорим про выделение смысловых структур из текста.
Технология выделения смысловых объектов позволяет позволяет найти смысловые объекты в тексте и получить от сервера размеченную распознанную структуру. С помощью сервиса возможно анализировать контекст фразы, к примеру, система понимает, что во фразе "Позвони мне завтра" есть информация про время, а во фразе "Соедините меня со Ивановым Иваном" - фамилия и имя. В системе Oktell этот сервис удобно применять для анализа распознанных голосовых выражений и электронных писем.
На момент написания статьи сервис умеет распознавать следующие структуры:
- Дата и время.
- Фамилия, имя и отчество.
- Адреса
- Морфемы - существительные преобразуются в именительный падеж, глаголы в инфинитив
Документация по API выделения смысла Yandex SpeechKit доступна на сайте https://tech.yandex.ru/speechkit/cloud/doc/dg/concepts/speechkit-dg-nlu-docpage/
Быстрый старт
Для использования системы выделения смысла Yandex SpeechKit Cloud выполните следующие действия:
Шаг 1. Получите API-ключ на использование сервиса в кабинете разработчика.
Шаг 2. Для использования сервиса используйте компонент "Web-запрос" в сценариях. В свойствах компонента выберите:
- URL - используется выражение:
'https://vins-markup.voicetech.yandex.net/markup/0.x/?text='+[Text]+'&layers=Fio,Morph,GeoAddr,Date&key='+[key]
где
- [Text] - переменная Text (строковая), анализируемое выражение
- [key] - переменная key (строковая), API-ключ, полученный на шаге 1
- Метод - GET
- Режим работы - Ожидание результата
- Тип ответа - Текст
- Ответ в переменную - переменная ЯндексОтвет (строковая), содержит размеченный текст
- Кодировка ответа - UTF-8
- Код ошибки в переменную - переменная "Код ошибки" (строковая), нужна для вывода администратору в случае возникновения проблем.
Шаг 3. После выполнения web-запроса в переменной ЯндексОтвет содержится размеченный текст в виде JSON-структуры. Для получения конкретных значений используйте компонент "Парсер". Подробнее про работу с компонентом читайте в статье: Компонент Парсер.
Описание сценария
В этом параграфе описывается демонстрационный пример использования сервиса выделения смысла Yandex SpeechKit Cloud. Сценарий выглядит следующим образом:
Компонент "SpeechKit Key". Определяет API-ключ для выполнения Web-запроса на сервисы Yandex.
- переменной key (строковая) присваивается значение API-ключа.
Компонент "Text". Предназначен для ввода демонстрационного текста.
- переменной Text (строковая) присваивается текст для анализа: "Здравствуйте меня зовут Александр Сергеев. Я живу на Проспекте Победы, дом 55 квартира 890. Позвоните мне завтра". Вы можете опробовать любой другой текст.
Компонент "Выделение смысла". Отправляет текст на сервис Yandex SpeechKit для анализа и сохраняет разметку в переменную.
- URL - используется выражение:
'https://vins-markup.voicetech.yandex.net/markup/0.x/?text='+[Text]+'&layers=Fio,Morph,GeoAddr,Date&key='+[key]
- Метод - GET
- Режим работы - Ожидание результата
- Тип ответа - Текст
- Ответ в переменную - переменная ЯндексОтвет (строковая), содержит размеченный текст
- Кодировка ответа - UTF-8
- Код ошибки в переменную - переменная "Код ошибки" (строковая), нужна для вывода администратору в случае возникновения проблем.
Компонент "Вывод разметки". Выводит размеченную структуру на экран.
- Текст - переменная ЯндексОтвет
- Адресат - укажите вашего пользователя
Компонент "Ошибка". В случае неудачного выполнения web-запроса выводит код ошибки на экран
- Текст - выражение 'Ошибка '+[Код ошибки]
- Адресат - укажите вашего пользователя
Результаты работы
В качестве тестового примера использовался текст:
Здравствуйте меня зовут Александр Сергеев. Я живу на Проспекте Победы, дом 55 квартира 890. Позвоните мне завтра
Ниже показан размеченный текст (некоторые части вырезаны для компактности). Как мы видим, сервис определил в тексте объекты, обозначающие время (ключ "Date"), структуру с именем клиента (ключ "Fio"), выделил географические объекты (ключ "GeoAddr"), а также предоставил список всех использованных слов (ключ "Morph")
{
"Date": [
{
"Day": 1,
"RelativeDay": true,
"Tokens": {
"Begin": 16,
"End": 17
}
}
],
"Fio": [
{
"FirstName": "александр",
"LastName": "сергеев",
"Tokens": {
"Begin": 3,
"End": 5
},
"Type": "finame"
}
],
"GeoAddr": [
{
"Fields": [
{
"Name": "проспект победы",
"Tokens": {
"Begin": 8,
"End": 10
},
"Type": "Street"
},
{
"Name": "дом 55 квартира 890",
"Tokens": {
"Begin": 10,
"End": 14
},
"Type": "HouseNumber"
}
],
----
----
}
}
],
"Morph": [
{
"Lemmas": [
{
"Grammems": [
"V pl imper 2p ipf intr"
],
"Language": "ru",
"Text": "здравствовать"
}
],
"Tokens": {
"Begin": 0,
"End": 1
}
},
----
----

