Классифицировать текст Версия 1 (python)

Группа "Robin AI", подгруппа "Классификатор (Preferentum)"


Описание

The action classifies the text according to the given indexes and defines its class

Иконка


Параметры

Входные параметры

  1. Контекст - использует результат действия "Открыть классификатор", которое включает в себя путь до папки с классификатором.

  2. Текст - строковое значение, которое необходимо классифицировать.

  3. Многоклассовая классификация - используется для выбора, какое количество классов будет получено в результате.

    Если значение "false", то для текста будет определяться класс с наибольшим процентом вероятности. Если "true", то будут определятся несколько классов, к которым может относиться текст.

  4. Порог уверенности - позволяет установить разницу между первыми двумя рубриками (тематиками), при которой система сможет уверенно отнести текст к единственной рубрике. Параметр учитывается, если "Многоклассовая классификация" = false, иначе параметр игнорируется. 

  5. Количество классов - максимальное количество классов, которое будет выведено в результирующий словарь.

    Параметр учитывается, если "Многоклассовая классификация" = true, иначе параметр игнорируется. 

Выходные параметры

  1. Классы - словарь с результирующей выборкой классов, где ключ - класс, а значение - процент вероятности, т.е. ранг класса
    (отображается в том же виде, что и в классификаторе).

  2. Уверенный результат:

Настройки

Свойство

Описание

Тип

Пример заполнения

Обязательность заполнения поля
Параметры
Context

Classifier context for the operation of the action

Robin.ContextOpen classifier.Classifier
Да
TextText that needs to be classifiedRobin.String

When Wehner and colleagues performed a historical data analysis of hurricanes between 1980 and 2021, they found five storms that would fit into a Category 6 that have all occurred in the last nine years. It includes 2015’s Hurricane Patricia, which was the most powerful tropical cyclone that lashed Mexico with winds up to 215 mph. The other storms include Typhoon Haiyan in 2013, Typhoon Meranti in 2016, Typhoon Goni in 2020, and Typhoon Surigae in 2021.


Да
Multiclass classificationIf "false", then the class with the highest probability percentage will be determined for the text. If "true", then several classes will be defined, to which the text can belongRobin.Boolean
Нет
Confidence thresholdA number from 1 to 100 that determines whether the classification result is accurate enough. It is used if you need to define only one class. The higher the specified number, the greater the difference between the two most likely classes should be. The parameter is taken into account if "Multiclass classification" = false
Robin.Numeric80Нет
Number of classesThe maximum number of classes the action can return. If more classes were defined for the text during classification, the action will return only the specified number of classesRobin.Numeric5Нет
Результаты
ClassesA dictionary with classes to which the specified text can belong. The key is the class, the key value is the percentage of probability that the text will enter the class
Robin.Dictionary


Confident resultIf "true", the classification result is sufficiently accurate. If "false", the classification result may be inaccurateRobin.Boolean

Описание работы классификатора

Руководство по использованию системы классификации Preferentum - https://preferentum.ru/wp-content/uploads/2022/04/preferentumclass_manual.pdf.

Класс в классификаторе указан как "Рубрика", а вероятность вхождения в класс указана как "Ранг".

Система классифицирует текст в возможные рубрики и вычисляет ранг для каждой рубрики. Сравниваются две рубрики с наибольшим классом по формуле: X*100/Y, где x - ранг первой рубрики, y - ранг второй рубрики. Полученное число сравнивается со значением параметра "Порог уверенности". Если полученное число больше или равно, то результат считается уверенным. В таком случае параметр "Уверенный результат" = true. Если полученное число меньше, то результат считается неуверенным, т.к. возможно, что наиболее вероятная рубрика определенна не точно. В таком случае параметр "Уверенный результат" = false. В обоих случаях действие возвращает словарь с одной рубрикой (которая имеет самый высокий ранг).

Система классифицирует текст в возможные рубрики и вычисляет ранг для каждой рубрики. Все соседние рубрики сравниваются между собой по формуле: X/Y, где x - первый ранг, y - последующий ранг. Наибольшее число, полученное при сравнении, определяет какие рубрики не будут входить в результирующий словарь. Действие возвращает словарь с рубриками, которые находились выше по списку рубрики с наибольшим числом сравнения. Рубрика с наибольшим числом сравнения тоже входит в результирующий словарь.

Особые условия использования 

  1. Если параметр "Многоклассовая классификация" = false и текст классифицировался в классы с одинаковым процентом вероятности, то действие завершится ошибкой.

  2. Если параметр "Многоклассовая классификация"=true, "Количество классов" - указано несколько классов, а текст классифицировался в классы с одинаковым процентом вероятности, то действие завершится ошибкой. 
    (Пример: "Количество классов" = 2. Текст классифицировался в три класса, два с одинаковым процентом вероятности = 50, а третий классифицировался с процентом вероятности = 80, действие завершится ошибкой.)

  3. Если текст не классифицировался ни в один класс или у классификатора не имеется классов, то действие завершится ошибкой.

  4. Следует отметить, что в настоящее время классифицировать можно текст только на русском языке.

Пример использования

Задача 1

Классифицировать текст на основе обученной модели с определением класса с наибольшим процентом вероятности

Решение

Воспользоваться действием "Классифицировать текст". 

Реализация

Предусловие

Для работы действия "Открыть классификатор" необходима обученная модель классификатора. 
Обучение осуществляется при помощи действия "Создать индекс".

  1. Перенести действие "Открыть классификатор" на рабочую область.


  2. Заполнить параметры действия "Открыть классификатор".

    Указать путь к папке, которая содержит обученную модель. 


  3. Перенести действие "Классифицировать текст" на рабочую область. 


  4. Заполнить параметры действия "Классифицировать текст". 

    1. Указать контекст, полученный в действии "Открыть классификатор"

    2. Установить значение в поле "Порог уверенности"


    3. В поле "Текст" указать следующий текст: 


4. Нажать на кнопку "Старт" в верхней панели.  

Результат

Программный робот отработал успешно.

Получен словарь с классом, имеющим наибольший процент вероятности, к которому может относиться указанный текст,

а также подтверждение, что результат классификации достаточно точен ( параметр "Уверенный результат"/"Confident Result" - True).

Задача 2

Классифицировать текст на основе обученной модели для определения классов, к которым может относиться текст

Решение

Воспользоваться действием "Классифицировать текст". 

Реализация

Предусловие

Для работы действия "Открыть классификатор" необходима обученная модель классификатора. 
Обучение осуществляется при помощи действия "Создать индекс".

  1. Повторить шаги 1-3 из Задачи 1
  2. Заполнить параметры действия "Классифицировать текст". 
    1. Указать контекст, полученный в действии "Открыть классификатор"
    2. Установить чекбокс "Многоклассовая классификация"
    3. Добавить данные в поле "Количество классов"


    4. В поле "Текст" указать следующий текст: 


4. Нажать на кнопку "Старт" в верхней панели.  

Результат

Программный робот отработал успешно.

Получен словарь с классами, к которым может относиться указанный текст, при этом параметр "Уверенный результат"/"Confident Result" - False.

Задача 3

Получить результаты действия "Классифицировать текст"

Решение

Воспользоваться действиями "Получить ключи", "Получить значение по индексу" и "Получить значение".

Реализация

  1. Повторить шаги 1-3 из Задачи 2
  2. Перенести действие "Получить ключи" на рабочую область. 


  3. Заполнить параметр "Словарь" действия "Получить ключи" 


  4. Перенести действие "Получить значение по индексу" на рабочую область. 


  5. Заполнить параметры действия "Получить значение по индексу" 
    1. Установить результат действия "Получить ключи" в поле "Коллекция"
    2. Установить индекс коллекции


  6. Перенести действие "Получить значение" на рабочую область. 


  7. Заполнить параметры действия "Получить значение" 
    1. Установить результат действия "Классифицировать текст" в поле "Словарь"
    2. Установить ключ, полученный из действия "Получить значение по индексу"


  8.  Нажать на кнопку "Старт" в верхней панели. 

Результат

Программный робот отработал успешно.

Получены следующие результаты:

Значение параметра "Многоклассовая классификация"
в действии
"Классифицировать текст"

Полученные значение в результате работы действия "Классифицировать текст"


Многоклассовая классификация = false


В результате получен один класс, имеющий наибольший процент вероятности, к которому может относиться указанный текст, и процент вероятности вхождения текста в класс



Многоклассовая классификация = true


В результате получены классы, к которым может относиться указанный текст и процент вероятности вхождения текста в класс