Группа «Robin AI»¶
Извлечение именнованных сущностей¶
Извлечь адреса / Extract addresses¶
Описание
Действие извлекает из указанного текста адреса. Каждый адрес сохраняется в виде словаря, где ключ – отдельный элемент адреса, а значения - извлеченные данные.
Варианты значений для ключей словаря:
Если в одном предложении указаны страна, и город, а в другом предложении списком улица, дом, индекс, то есть в разных предложениях части одной сущности, то они извлекутся как разные адреса в отдельные словари.
Параметры
Входные параметры:
Текст - текст, из которого будут извлекаться адреса.
Без элемента адреса - параметр, с помощью которого в результирующем словаре будут указаныне указаны вид элемента адреса. Пример с включенным и выключенным параметром:
Исходный вид элемента адреса - параметр, с помощью которого адрес будет представлен как в исходном тексте или записан как официальный полный вид элемента адреса. Например, с включенный параметром адрес «г. Нижний Новгород» так и будет записан, а если параметр отключен, то адрес в результате будет «Нижний Новгород».
Выходные параметры:
- Результат - коллекция словарей с извлеченными адресами. Повторяющиеся в тексте адреса записываются в коллекции один раз.
Настройки
Особые условия использования
Если в поданном тексте нет искомого поля, то оно вернется пустым. Словарь всегда создается с полным набором ключей, чтобы не возникало ошибки при обращении к любому ключу словаря.
Если одновременно отмечены параметры «Без вида элемента адреса» и «Исходный вид элемента адреса», то галочка у «Исходный вид элемента адреса» будет проигнорирована.
Если в одном предложении указаны страна, и город, а в другом предложении списком улица, дом, индекс, то есть в разных предложениях части одной сущности, то они извлекутся как разные адреса в отдельные словари, не дополняя друг друга.
Ключи словаря адресов:
- Полный адрес.
- Страна.
- Субъект Российской Федерации.
- Муниципальное образование.
- Административно-территориальная единица.
- Населенный пункт.
- Элемент планировочной структуры.
- Элемент улично-дорожной сети.
- Элемент объекта адресации.
- Тип здания.
- Тип помещения.
- Почтовый индекс.
В первый ключ «Полный адрес» попадает вся найденная строка с адресом, а остальные поля будут заполнены согласно ключам словаря.
Робот вернет пустую коллекцию словарей, если:
- в исходном тексте не будет найдено ни одного элемента адреса,
- исходный текст на неподдерживаемом языке. На данный момент поддерживается только русский язык.
Пример использования
Задача: записать в текстовый файл извлеченные адреса из текста.
Текст: Школа Евгении расположена по адресу: Нижегородская область, г.Нижний Новгород ,ул.Ленина, д.100
Решение: воспользоваться действиями «Извлечь адреса», «Получить длину», «Вычитание», «Получить значение по индексу», «Получить значение», «Получить коллекцию ключей», «Записать в текстовый файл», циклом «Для каждого».
Реализация:
Собрать схему робота, состоящего из действий:
Настроить параметры действия «Извлечь адреса». В поле «Текст» ввести нужный текст.
Настроить параметры действия «Получить длину 1». В поле «Коллекция или массив» указать результат действия «Извлечь адреса».
Настроить параметры действия «Вычитание 1». В поле «Первый операнд» указать результат действия «Получить длину 1». В поле «Второй операнд» указать «1».
Настроить параметры действия «Для каждого 1». В поле «Начальное значение» указать «0». В поле «Конечное значение» указать результат действия «Вычитание 2». В поле «Инкремент» указать «1».
Настроить параметры действия «Получить значение по индексу 2». В поле «Коллекция» указать результат действия «Получить коллекцию ключей 1». В поле «Индекс» указать результат цикла «Для каждого 1».
Настроить параметры действия «Получить значение по индексу 3». В поле «Коллекция» указать результат действия «Получить значения 1». В поле «Индекс» указать результат цикла «Для каждого 1».
Настроить параметры действия «Записать текстовый файл 1». В поле «Файл» указать путь к текстовому файлу, куда будет записан результат. В поле «Данные» указать результат действия «Получить значение по индексу 2». В поле «Добавить» указать чекбокс = true. В поле «С новой строки» указать чекбокс = true.
Настроить параметры действия «Записать текстовый файл 2». В поле «Файл» указать путь к текстовому файлу, куда будет записан результат. В поле «Данные» указать «:». В поле «Добавить» указать чекбокс = true.
Настроить параметры действия «Записать текстовый файл 3». В поле «Файл» указать путь к текстовому файлу, куда будет записан результат. В поле «Данные» указать результат действия «Получить значение по индексу 3». В поле «Добавить» указать чекбокс = true.
Заполнить параметры цикла «Для каждого 2». В поле «Начальное значение» указать «0». В поле «Конечное значение» указать результат действия «Вычитание 1». В поле «Инкремент» указать «1».
Заполнить параметры действия «Получить значение по индексу 1». В поле «Коллекция» указать результат действия «Извлечь адреса 1». В поле «Индекс» указать результат цикла «Для каждого 2».
Заполнить параметры действия «Получить значения 1». В поле «Словарь» указать результат действия «Получить значение по индексу 1».
Заполнить параметры действия «Получить коллекцию ключей». В поле «Словарь» указать результат действия «Получить значение по индексу 1».
Заполнить параметры действия «Получить длину 2». В поле «Коллекция или массив» указать результат действия «Получить значения 1».
Заполнить параметры действия «Вычитание 2». В поле «Первый операнд» указать результат действия «Получить длину 2». В поле «Второй операнд» указать «1».
Нажать на кнопку «Старт» в верхней панели.
Результат:
Программный робот отработал успешно. Извлеченные адреса записались в текстовый файл.
Текстовый файл:
Машинное обучение¶
Классифицировать текст / Classify text¶
Описание
Действие определяет класс, к которому относится текст, на основе обученной модели классификации, т.е. показывает вероятность отношения текста к определенному классу, соответствующему рубрике на основе обученного метода классификации.
Целью выполнения действия является определение той рубрики, к которой ближе всего относится текст, то есть должна быть определена рубрика с наибольшим процентом точности, чтобы позволить принять решение о дальнейших действиях с этим текстом.
Параметры
Входные параметры:
Текст для классификации - текст, класс которого необходимо определить.
Язык может быть любой. Если будет язык отличный от языка обучающей выборки, то процент определения класса будет близким к нулю.
Обученная модель - путь к папке, которая содержит обученную модель классификации.
В папке должно содержаться два файла: machine_model.pkl и tfidf_model.pk. Отсутствие какого-то файла или изменение имени папки на другое может привести к ошибке.
Выходные параметры:
Результат - словарь, где ключ - название класса, а значение - процент вхождения в данный класс.
Сортировка в словаре производится по проценту вхождения в класс.
Настройки
Особые условия использования
В папке должно содержаться два файла. Файлы предоставляются заказчику по требованию. Данные файлы представляют из себя запакованную модель машинного обучения.
Если какого-то файла нет/другое название, то это приведет к ошибке при работе действия.
Робот выдаст ошибку, если:
в поле «Обученная модель» указан неверный путь/не содержит обученную модель (один или два файла изменены).
в поле «Текст для классификации» указана пустая строка или действие не смогло определить класс.
Робот не выдаст ошибку, если:
подан текст не на языке обученной модели, при этом % совпадения с классом будет небольшой.
Существующую обученную модель нельзя «дообучать», при необходимости добавления классов, необходимо заново запустить действие по обучению модели
Для сведения обученная модель на 20000 записей классифицирует текст за 2-3 минуты.
Дополнительная информация о теории классификации текста:
https://vas3k.blog/blog/machine_learning/
https://www.edureka.co/blog/classification-in-machine-learning/
Пример использования
Задача: классифицировать текст на основе обученной модели.
Решение: воспользоваться действием «Классифицировать текст».
Реализация:
Перенести действие «Классифицировать текст» на рабочую область.
Заполнить параметры действия «Классифицировать текст».
В поле «Текст для классификации» указать следующий текст:
Указать путь к папке, которая содержит обученную модель.
- Нажать на кнопку «Старт» в верхней панели.
Результат:
Программный робот отработал успешно. Получен словарь , где Ключ - рубрика, а Значение - процент вхождения в данную рубрику. Сортировка в словаре по проценту вхождения в рубрику.
В результате получился словарь с названием категории и с точностью принадлежности к данной категории.
При необходимости получения рубрики к которой текст относится в наибольшей степени необходимо воспользоваться действием «Получить коллекцию ключей», потому что в значениях % указаны, а сами рубрики-категории в ключах. Далее, нужно получить коллекцию ключей и нулевой элемент этой коллекции - это та рубрика, к которой скорее всего относится текст (действие «Получить значение по индексу»).
Обучить модель классификации / Train classification model¶
Описание
Данное действие обучает модель классификации текста. Задача классификации - определение типа объекта из двух или более существующих классов. В зависимости от задачи классификации подбираются подходящие типы классификаторов. Используется совместно с действием «Классифицировать текст».
Более подробно о методах классификации можно посмотреть здесь: https://tproger.ru/translations/scikit-learn-in-python/?ysclid=lloyhyht80831308492
Входные параметры
Данные для обучения* - путь к папке с данными для обучения модели классификации. Внутри папки содержатся подпапки с классами, названия которых – это название класса. Внутри каждой подпапки должны быть файлы формата .txt. с различными текстами, которые соответствуют классу. Форматы текстов создаются Пользователем.
Папка с результатом* - путь к папке, в которую будет сохранена обученная модель классификации. В указанной папке должно быть создано 2 файла: machine_model.pkl – модель машинного обучения, и tfidf_model.pk – сохранение словаря, токены.
Метод* - метод, который будет использоваться для обучения модели классификации. методы базируются на различных алгоритмах классификации. Метод выбирает Пользователь. Для обучения модели классификации могут быть использованы следующие методы:
- 1.Выбрать наиболее подходящий – Choose the most suitable.
- 2.SVC - метод опорных векторов.
- 3.RandomForest - классификатор дерева решений.
- 4.GradientBoosting.
- 5.AdaBoost.
- 6.nTree - классификатор дерева решений.
- 7.KNeighboors - метод к-ближайших соседей.
- 8.Naive Bayes - наивный байесовский метод.
Перезаписать*- если значение параметра «true», и в папке с результатом уже существует файл с таким же именем и расширением, то он будет перезаписан. Если значение параметра»false», файл перезаписан не будет, и действие выдаст ошибку. Файлы machine_model.pcl and tiff_model.pk должны быть уникальны в указанной папке.
Стоп-слова* - путь к txt-файлу, который содержит стоп-слова, которые не будут учитываться при обучении модели классификации. Каждое стоп-слово должно быть записано на новой строке. Слова, несущие мало смысла для классификации, но часто встречающиеся, например, в письмах:
- Доброе утро!
- Добрый день!
- С уважением,
- tel*:
- email*:
Словосочетания* - путь к txt-файлу, содержащему словосочетания, которые при обучении модели важно не разделять на отдельные слова для сохранения смысла всей фразы. Каждое словосочетание должно быть записано на новой строке. Словосочетания нужны для указания важности фразы целиком, без разделения по словам. Например: юридическое лицо, операция по чеку, чек по операции, срочный вопрос, группа компаний, стратегия развития.
Выходные параметры
- Результат - результат показывает процент точности обученной модели, полученный путем сравнения тестовой и тренировочной выборки в процентном соотношении.
Настройки
Особые условия использования
В списке методов обучения параметра «Метод» при смене языка студии на английский название метода «Выбрать наиболее подходящий» сменяется на название «Choose the most suitable», остальные варианты остаются на английском.
При невыполнении условий проверки параметров робот будет выдавать следующие сообщения об ошибках:
Примеры работы действия:
1. Все параметры настроены верно.
«Данные для обучения» - Папка с результатом с необходимой структурой данных.
«Папка с результатом» - существующая папка.
Решение:
- Установить действие группы Robin AI «Обучить модель классификации» на рабочую область.
- Корректно настроить параметры действия. Запустить робота.
Результат:
Робот сохранит обученную модель в указанной папке.
2. Указаны неверные пути в следующих параметрах:
«Данные для обучения»;
«Папка с результатом»;
«Стоп-слова»;
«Словосочетания».
Решение:
- Установить действие группы Robin AI «Обучить модель классификации» на рабочую область.
- Корректно настроить параметры действия.
- Запустить робота.
Результат:
Робот выдаст ошибку, связанную с несуществующим адресом папки/файла.
3.Указаны неверные форматы файлов в параметрах: «Стоп-слова»; «Словосочетания».
- Установить действие группы Robin AI «Обучить модель классификации» на рабочую область.
- Корректно настроить параметры действия.
- Запустить робота.
Результат:
Робот вернет ошибку, так как не может прочитать файлы.
4.Обученная модель (файлы) уже существует в указанном пути «Папка с результатом»
- выключена «Перезаписать».*
- Установить действие группы Robin AI «Обучить модель классификации» на рабочую область.
- Корректно настроить параметры действия.
- не включать «Перезаписать».
Запустить робота. Результат: Робот выдаст ошибку, так как не может записать файлы.
5.В папке «Данные для обучения» нет файлов для обучения.
- Установить действие группы Robin AI «Обучить модель классификации» на рабочую область.
- Корректно настроить параметры действия.
- Запустить робота.
Результат:
Робот выдаст ошибку.
Пример использования:
Задача: обучить модель классификации.
Решение: воспользоваться действием «Обучить модель классификации».
Реализация:
Для задания параметров модели обучения Пользователю необходимо создать данные для обучения:
- данные для обучения -дерево объектов, состоящее из двух папок:
Исходная папка:
- подготовить словосочетания.
txt-файл, содержащий словосочетания, которые при обучении модели важно не разделять на отдельные слова для сохранения смысла всей фразы. Каждое словосочетание должно быть записано на новой строке, указывать фразы целиком, без разделения по словам, например: - операции по чеку
Подготовить стоп-слова.
- txt-файл, который содержит стоп-слова, которые не будут учитываться при обучении модели классификации. Каждое стоп-слово должно быть записано на новой строке, например:
- Доброе утро!
- Добрый день!
- С уважением,
- tel:
- email:
Перенести на рабочую область действие «Обучить модель классификации».
Настроить параметры действия » Обучить модель классификации».
Нажать на кнопку «Старт» в верхней панели.
Результат:
Программный робот отработал успешно.