Действия

SMC. Руководство пользователя: различия между версиями

Материал из Флора AI

(Новая страница: «===== '''Общее описание''' ===== Сервис Short  Message Classifier предназначен для классификации текстовых фрагментов (фраз естественной речи). Принимает на вход текстовую строку и возвращает структурированные данные в формате JSON. ===== '''Термины и определения''' ===== Short  M...»)
 
Нет описания правки
Строка 37: Строка 37:
|'''id''' - идентификатор модели
|'''id''' - идентификатор модели
'''text''' - текст, подлежащий классификации
'''text''' - текст, подлежащий классификации
'''multiclass''' - опция запроса нескольких классов при их наличии, если multiclass=1
'''multiclass''' - опция запроса нескольких классов при их наличии, если multiclass=1
|Если multiclass=0 ответ будет в виде массива с одним классом, иначе - список массивов. Ниже пример такого списка.
|Если multiclass=0 ответ будет в виде массива с одним классом, иначе - список массивов. Ниже пример такого списка.
[  
<code>[</code>
{ class: Appointment,
 
calculated: Appointment,
<code>{ class: Appointment,</code>
confidence: 0.9993352,
 
start: 0,
<code>calculated: Appointment,</code>
length: 2
 
}, {...}
<code>confidence: 0.9993352,</code>
]
 
<code>start: 0,</code>
 
<code>length: 2</code>
 
<code>}, {...}</code>
 
<code>]</code>
 
'''start''' - позиция слова начала фрагмента, определяющего класс
'''start''' - позиция слова начала фрагмента, определяющего класс
'''length''' - количество слов во фрагменте, определяющим класс
'''length''' - количество слов во фрагменте, определяющим класс
'''confidence''' - вероятность правильного определения класса
'''confidence''' - вероятность правильного определения класса
'''calculated''' - поле, содержащее измененное постобработчиком (при его наличии) значение класса.
'''calculated''' - поле, содержащее измененное постобработчиком (при его наличии) значение класса.
|-
|-
Строка 73: Строка 85:
* создание новой модели из обучающего корпуса, текстового файла со строками CLASS<TAB>TEXT в переменной '''csv-file'''
* создание новой модели из обучающего корпуса, текстового файла со строками CLASS<TAB>TEXT в переменной '''csv-file'''


|'''id''' - идентификатор модели
|
'''zip-model''' - zip-архив с файлами модели '''from-existing-model''' - название модели, которое до
* '''id''' - идентификатор модели
* '''zip-model''' - zip-архив с файлами модели
* '''from-existing-model''' - название модели, которое должно быть переименовано в '''id'''
* '''csv-file''' - текстовый файл для обучения модели
* '''tokenizer''' - способ оцифровки фразы. entities или fragments. В первом случае упор делается на взаимосвязи сущностей, во втором на [https://ru.wikipedia.org/wiki/N-%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0 N-граммы]
* '''normalization''' - уровень нормализации для устранения количественного перекоса в данных каждого класса, 0 - автоматическое определение, 1-9 - ручной режим. При увеличении значения происходит синтез данных для каждого класса. По умолчанию 1
* '''model-size''' - размер структуры модели. Чем больше данных, теб больше нужна модель. 0 - автоматический режим определения структуры модели. 1-5 - ручной режим. По умолчанию 3.
* '''entity-cross-limit''' - от 0 до 1. Предельный коэффициент возможного наличия сущности в многих классах, выше которого сущность считается мусорной. По умолчанию 1, т.е. допуск всех найденных сущностей.
* entity-rare-limit - от 0 до 1. Минимальный порог повторяемости сущности в классе, ниже которого сущность считается мусорной. По умолчанию 0, т.е. допуск всех найденных сущностей.
|<code>{ error: INT, message: DESCRIPTION }</code>
|<code>{ error: INT, message: DESCRIPTION }</code>
|-
|-

Версия от 13:53, 8 июня 2023

Общее описание

Сервис Short  Message Classifier предназначен для классификации текстовых фрагментов (фраз естественной речи). Принимает на вход текстовую строку и возвращает структурированные данные в формате JSON.


Термины и определения

Short  Message Classifier (SMC) - сервис классификации текстовых фрагментов.

Модель — предварительно обученная специализированная нейронная сеть классификации коротких фраз.

Swagger UI – интерактивная  веб-консоль с кратким описанием методов АPI и возможностью выполнять запросы к сервису SMC.


Описание методов API

Запросы осуществляются по протоколу HTTP 1.1 на адрес сервера с доступным сервисом SMC. По умолчанию используется порт 6181/tcp.

Авторизация запросов не требуется. HTTP-запросы должны содержать заголовок "accept: application/json"

Ответ сервиса представляет собой JSON-документ в кодировке UTF-8 или двоичный файл. Содержимое документа зависит от результата выполнения запроса. При наличии ошибки в качестве ответа вернется переменная error=1 и описание в переменной message. Для удобства проверки методов по ссылке http://АДРЕС:6183 будет отображен интерфейс swagger со всеми методами с возможностью их проверки.

Метод Тип Описание Входные параметры Ответ
/smc/ GET Вывод списка моделей - { models: [model1,...,modelN] }
/smc/classify/{id} GET Классификация текстовой фразы id - идентификатор модели

text - текст, подлежащий классификации

multiclass - опция запроса нескольких классов при их наличии, если multiclass=1

Если multiclass=0 ответ будет в виде массива с одним классом, иначе - список массивов. Ниже пример такого списка.

[

{ class: Appointment,

calculated: Appointment,

confidence: 0.9993352,

start: 0,

length: 2

}, {...}

]

start - позиция слова начала фрагмента, определяющего класс

length - количество слов во фрагменте, определяющим класс

confidence - вероятность правильного определения класса

calculated - поле, содержащее измененное постобработчиком (при его наличии) значение класса.

/smc/confusion/{id}/{type} GET Получение изображения матрицы ошибок id - идентификатор модели

type - тип данных для построения матрицы, train или test

Возвращает PNG изображение с матрицей ошибок
/smc/data/{id} GET Получение архива модели id - идентификатор модели ZIP-файл с моделью, либо { error: 1, message: DESCRIPTION }
/smc/data/{id} POST Добавление модели. Может быть добавлена следующими способами:
  • файл архива модели
  • переименование существующей модели если указана переменная from-existing-model. В данном случае происходит переименование модели на сервере from-existing-model -> id
  • создание новой модели из обучающего корпуса, текстового файла со строками CLASS<TAB>TEXT в переменной csv-file
  • id - идентификатор модели
  • zip-model - zip-архив с файлами модели
  • from-existing-model - название модели, которое должно быть переименовано в id
  • csv-file - текстовый файл для обучения модели
  • tokenizer - способ оцифровки фразы. entities или fragments. В первом случае упор делается на взаимосвязи сущностей, во втором на N-граммы
  • normalization - уровень нормализации для устранения количественного перекоса в данных каждого класса, 0 - автоматическое определение, 1-9 - ручной режим. При увеличении значения происходит синтез данных для каждого класса. По умолчанию 1
  • model-size - размер структуры модели. Чем больше данных, теб больше нужна модель. 0 - автоматический режим определения структуры модели. 1-5 - ручной режим. По умолчанию 3.
  • entity-cross-limit - от 0 до 1. Предельный коэффициент возможного наличия сущности в многих классах, выше которого сущность считается мусорной. По умолчанию 1, т.е. допуск всех найденных сущностей.
  • entity-rare-limit - от 0 до 1. Минимальный порог повторяемости сущности в классе, ниже которого сущность считается мусорной. По умолчанию 0, т.е. допуск всех найденных сущностей.
{ error: INT, message: DESCRIPTION }
/smc/data/{id} DELETE Удаление модели id - идентификатор модели { error: INT, message: DESCRIPTION }
/smc/stt/{id} POST Отправка файла на распознавание речи. Моно-файлы до 30 секунд распознаются без разбивки на фрагменты. Многоканальные файлы и файлы длиннее 30 секунд предварительно разбиваются на фрагменты по отсутствию речи. Настройка данных параметров описана в руководстве администратора. В случае отправки переменной speakers=1, дополнительно производится поиск говорящих и получение метаданных по каждому говорящему. id - идентификатор модели

wav - файл для распознавания speakers - опция разделения по говорящим

text заполняется только для файлов менее 60 секунд. speakers, speaker, confidence (вероятность правильности определения говорящего) возвращаются только при отправке speakers=1.

{ model: модель, text: текст без разбивки, speakers: [ { gender: пол, age: возраст, emotion: эмоция, id: идентификатор }, ... ], splitted": [ { start: "00:00:02.255", stop: "00:00:10.995", channel: канал в файле, duration: 00:00:08.740, start_ms: 2255, stop_ms: 10995, duration_ms: 8740, speaker: индекс говорящего, confidence: 0.9541002174024272, text: распознанный текст}, ... ] }