Вы просматриваете старую версию данной страницы. Смотрите текущую версию.

Сравнить с текущим просмотр истории страницы

« Предыдущий Версия 27 Следующий »

Обучить модель классификации Версия 1 (python)

Группа "Robin AI", подгруппа "Машинное обучение".

Описание

Данное действие обучает модель классификации текста.  Задача классификации - определение типа объекта из двух или более существующих классов. В зависимости от задачи классификации подбираются  подходящие типы классификаторов.   Используется совместно с действием "Классифицировать текст". 

Более подробно о методах классификации можно посмотреть здесь: Обзор методов классификации в машинном обучении с помощью Scikit-Learn (tproger.ru)

Параметры действия

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

  1. Данные для обучения - путь к папке с данными для обучения модели классификации. Внутри папки содержатся подпапки с классами, названия которых – это название класса. Внутри каждой подпапки должны быть файлы формата .txt. с различными текстами, которые соответствуют классу. Форматы текстов создаются Пользователем.
  2. Папка с результатом - путь к папке, в которую будет сохранена обученная модель классификации. В указанной папке должно быть создано 2 файла: machine_model.pkl – модель машинного обучения, и tfidf_model.pk – сохранение словаря, токены.
  3. Метод - метод, который будет использоваться для обучения модели классификации. методы  базируются на различных алгоритмах классификации. Метод выбирает Пользователь. Для обучения модели классификации могут быть использованы следующие методы: 
    • Выбрать наиболее подходящий – Choose the most suitable
    • SVC - метод опорных векторов 
    • RandomForest - классификатор дерева решений
    • GradientBoosting
    • AdaBoost
    • nTree - классификатор дерева решений
    • KNeighboors - метод к-ближайших соседей
    • Naive Bayes - наивный байесовский метод
  4. Перезаписать- если значение параметра  "true", и в папке с результатом уже существует файл с таким же именем и расширением, то он будет перезаписан. Если значение параметра"false", файл перезаписан не будет, и действие выдаст ошибку.  Файлы machine_model.pcl and tiff_model.pk должны быть уникальны в указанной папке.
  5. Стоп-слова - путь к txt-файлу, который содержит стоп-слова, которые не будут учитываться при обучении модели классификации. Каждое стоп-слово должно быть записано на новой строке. Слова, несущие мало смысла для классификации, но часто встречающиеся, например, в письмах:
    • Доброе утро!
    • Добрый день!
    • С уважением,
    • tel:
    • email:
  6. Словосочетания - путь к txt-файлу, содержащему словосочетания, которые при обучении модели важно не разделять на отдельные слова для сохранения смысла всей фразы. Каждое словосочетание должно быть записано на новой строке. Словосочетания нужны для указания важности фразы целиком, без разделения по словам. Например: юридическое лицо, операция по чеку, чек по операции, срочный вопрос, группа компаний, стратегия развития.

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

  1. Результат - результат показывает  процент точности обученной модели, полученный путем сравнения тестовой и тренировочной выборки в процентном соотношении.

Настройки               

Свойство

Описание

Тип данных

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

Обязательное

Параметры



Данные для обученияПуть к папке с данными для обучения модели классификации. Внутри папки содержатся подпапки, названия которых – это название класса. Внутри каждой подпапки должны быть txt-файлы с различными текстами, которые соответствуют классу.

Robin.FolderPath

C:\Классификатор\Классификатор\result

Да

Папка с результатом

Путь к папке, в которую будет сохранена обученная модель классификации.

Robin.FolderPathC:\Классификатор\Классификатор\modelДа
Метод

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

Robin.Stringвыбирается из выпадающего спискаДа

Перезаписать

Если значение "true", и в папке с результатом уже существует файл с таким же именем и расширением, то он будет перезаписан. Если "false", файл перезаписан не будет, и действие вернет ошибку.Robin.Booleanотметка галочкойНет

Стоп-слова

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

Robin.FilePathC:\Классификатор\Классификатор\stopwords.txtНет
СловосочетанияПуть к txt-файлу, содержащему словосочетания, которые при обучении модели важно не разделять на отдельные слова для сохранения смысла всей фразы. Каждое словосочетание должно быть записано на новой строке.Robin.FilePathC:\Классификатор\Классификатор\combinations.txtНет
Результаты



РезультатПроцент точности обученной модели.Robin.Numeric

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

В списке методов обучения параметра "Метод" при смене языка студии на английский название метода "Выбрать наиболее подходящий" сменяется на название "Choose the most suitable", остальные варианты остаются на английском.

При невыполнении условий проверки параметров робот будет выдавать следующие сообщения об ошибках:

УсловиеИсключениеТекст сообщений об ошибках
Проверки для параметра "Путь к исходной папке"

Если в имени пути превышена допустимая длинаValidationErrorПревышено ограничение на длину имени пути "{folder_path}"
Если в имени пути используются недопустимые символыValidationErrorНедопустимые символы в имени пути "{folder_path}"
Если директория не найденаDirectoryNotFoundДиректория "{folder_path}" не найдена
Если путь не является директориейDirectoryNotFoundРесурс "{folder_path}" не является директорией
Если к папке нет доступаDirectoryNotAvailableОшибка доступа к "{folder_path}" для чтения
Проверки для параметра "Путь к папке с результатом"

Если в имени пути превышена допустимая длинаValidationErrorПревышено ограничение на длину имени пути "{folder_path}"
Если в имени пути используются недопустимые символыValidationErrorНедопустимые символы в имени пути "{folder_path}"
Если директория не найденаDirectoryNotFoundДиректория "{folder_path}" не найдена
Если путь не является директориейDirectoryNotFoundРесурс "{folder_path}" не является директорией
Если у папки нет доступаDirectoryNotAvailableОшибка доступа к "{folder_path}" для записи
Проверка для файла machine_model.pkl, который будет сохранен в "Путь к папке с результатом"

Если файл уже существует и не выбран параметр "Перезаписать"FileAlreadyExistsФайл по пути: {result_file_path} уже существует
Проверка для файла tfidf_model.pk, который будет сохранен в "Путь к папке с результатом"

Если файл уже существует и не выбран параметр "Перезаписать"FileAlreadyExistsФайл по пути: {result_file_path} уже существует
Проверка для параметра "Пользовательские стоп-слова"

Если в имени пути превышена допустимая длинаValidationErrorПревышено ограничение на длину имени пути "{folder_path}"
Если в имени пути используются недопустимые символыValidationErrorНедопустимые символы в имени пути "{folder_path}"
Если файл не найденFileNotFoundФайл "{file_path}" не найден
Если путь не является файломFileNotFoundРесурс "{folder_path}" не является файлом
Если у файла нет доступаFileNotAvailableОшибка доступа к "{folder_path}" для чтения
Ошибка чтения файла, например неправильная кодировкаValidationErrorОшибка чтения .txt файла по пути {filepath}: {ex}
У входного файла расширение не .txtValidationErrorФайл по пути {list_words_path} имеет неверное расширение. Допустимые значения: .txt
Проверка для параметра "Словосочетания"

Если в имени пути превышена допустимая длинаValidationErrorПревышено ограничение на длину имени пути "{folder_path}"
Если в имени пути используются недопустимые символыValidationErrorНедопустимые символы в имени пути "{folder_path}"
Если файл не найденFileNotFoundФайл "{file_path}" не найден
Если путь не является файломFileNotFoundРесурс "{folder_path}" не является файлом
Если у файла нет доступаFileNotAvailableОшибка доступа к "{folder_path}" для чтения
Ошибка чтения файла, например неправильная кодировкаValidationErrorОшибка чтения .txt файла по пути {filepath}: {ex}
У входного файла расширение не .txtValidationErrorФайл по пути {list_words_path} имеет неверное расширение. Допустимые значения: .txt



Если после прохода по папкам и очистки текстов нет ни одного текста для обученияValidationErrorОшибка входных данных: нет подходящих данных или данные пустые

 Примеры  работы действия

1. Все параметры настроены верно:

"Данные для обучения" - Папка с результатом с необходимой структурой данных,

"Папка с результатом" - существующая папка.

Установить действие группы Robin AI «Обучить модель классификации» на рабочую область;

Корректно настроить параметры действия;

Запустить робота.

Результат: Робот сохранит обученную модель в указанной папке,

2. Указаны неверные пути в:

"Данные для обучения";

"Папка с результатом"; 

"Стоп-слова";

"Словосочетания".

Установить действие группы Robin AI «Обучить модель классификации» на рабочую область;

Корректно настроить параметры действия;

Запустить робота.

Результат: Робот выдаст ошибку, связанную с несуществующим адресом папки/файла.

3. Указаны неверные форматы файлов в:

"Стоп-слова";

"Словосочетания".

Установить действие группы Robin AI «Обучить модель классификации» на рабочую область;

Корректно настроить параметры действия;

Запустить робота.

Результат: Робот вернет ошибку, так как не может прочитать файлы.

4. Обученная модель (файлы) уже существует в указанном пути "Папка с результатом", но выключено "Перезаписать":

Установить действие группы Robin AI «Обучить модель классификации» на рабочую область;

Корректно настроить параметры действия. Не включать "Перезаписать";

Запустить робота.

Результат: Робот выдаст ошибку, так как не может записать файлы.

5. В папке "Данные для обучения" нет файлов для обучения:

Установить действие группы Robin AI «Обучить модель классификации» на рабочую область;

Корректно настроить параметры действия.

Запустить робота.

Результат: Робот выдаст ошибку.

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

Задача

Обучить модель классификации.

Решение

Воспользоваться действием  "Обучить модель классификации".

Реализация

1.Для задания параметров модели обучения Пользователю необходимо создать данные для обучения:

 данные для обучения - дерево объектов, состоящее из двух папок:

Исходная папка:

в ней классы:

В каждой папке папка с классом:

Подготовить словосочетания.

txt-файл, содержащий словосочетания, которые при обучении модели важно не разделять на отдельные слова для сохранения смысла всей фразы. Каждое словосочетание должно быть записано на новой строке, указывать фразы надо целиком, без разделения по словам, например:  операции по чеку

Подготовить стоп-слова.

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

  • Доброе утро!
  • Добрый день!
  • С уважением,
  • tel:
  • email:

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

3. Настроить параметры действия " Обучить модель классификации".

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

Результат

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



  • Нет меток