Извлечь адреса Версия 1 (Python)
Группа действий: Robin AI
Описание
Действие извлекает из указанного текста адреса. Каждый адрес сохраняется в виде словаря, где ключ – отдельный элемент адреса, а значения - извлеченные данные.
Варианты значений для ключей словаря:
Страна |
---|
АССР, УССР, УЗССР, ССР, СССР, Франция, ФРГ |
Субъект Российской Федерации |
федеральный округ, республика, край, область, автономный округ, автономная область |
Муниципальное образование |
Административно-территориальная единица |
район |
Населенный пункт |
город, село, деревня, посёлок |
Элемент планировочной структуры |
совхоз |
Элемент улично-дорожной сети |
улица, проспект, проезд, переулок, площадь, шоссе, набережная, бульвар |
Элемент объекта адресации |
дом |
Тип здания |
корпус, строение |
Тип помещения |
офис, квартира |
Если в одном предложении указаны страна, и город, а в другом предложении списком улица, дом, индекс, то есть в разных предложениях части одной сущности, то они извлекутся как разные адреса в отдельные словари.
Параметры
Входные параметры:
- Текст - текст, из которого будут извлекаться адреса.
- Без вида элемента адреса - параметр, с помощью которого в результирующем словаре будут указаны\не указаны вид элемента адреса. Пример с выключенным и включенным параметром:
- Исходный вид элемента адреса - параметр, с помощью которого адрес будет представлен как в исходном тексте или записан как официальный полный вид элемента адреса. Например, с включенный параметром адрес "г. Нижний Новгород" так и будет записан, а если параметр отключен, то адрес в результате будет "Нижний Новгород".
Выходные параметры:
- Результат - коллекция словарей с извлеченными адресами. Повторяющиеся в тексте адреса записываются в коллекции один раз.
Настройки
Свойство | Описание | Тип | Пример заполнения | Обязательность заполнения поля |
Параметры | ||||
Текст | Текст, из которого будут извлечены адреса. | Robin.String | Школа Евгении расположена по адресу: Нижегородская область, г.Нижний Новгород ,ул.Ленина, д.100 | Да |
Без вида элемента адреса | Если значение "true", то будет указано только значение элемента адреса. Если "false", в словаре будут записаны значение и вид элемента адреса. | Robin.Boolean | True | Нет |
Исходный вид элемента адреса | Если значение "true", то вид элемента адреса будет указан как в исходном тексте. Если "false", в словаре будет записан официальный полный вид элемента адреса. | Robin.Boolean | True | Нет |
Результаты | ||||
Результат | Коллекция словарей с извлеченными данными. Если один и тот же адрес встречается в тексте несколько раз, то в результирующей коллекции он будет записан один раз. | Robin.Collection |
Особые условия использования
Если в поданном тексте нет искомого поля, то оно вернется пустым. Словарь всегда создается с полным набором ключей, чтобы не возникало ошибки при обращении к любому ключу словаря.
Если одновременно отмечены параметры "Без вида элемента адреса" и "Исходный вид элемента адреса", то галочка у "Исходный вид элемента адреса" будет проигнорирована.
Если в одном предложении указаны страна, и город, а в другом предложении списком улица, дом, индекс, то есть в разных предложениях части одной сущности, то они извлекутся как разные адреса в отдельные словари, не дополняя друг друга.
Ключи словаря адресов:
- Полный адрес
- Страна
- Субъект Российской Федерации
- Муниципальное образование
- Административно-территориальная единица
- Населенный пункт
- Элемент планировочной структуры
- Элемент улично-дорожной сети
- Элемент объекта адресации
- Тип здания
- Тип помещения
- Почтовый индекс
В первый ключ "Полный адрес" попадает вся найденная строка с адресом, а остальные поля будут заполнены согласно ключам словаря.
Робот вернет пустую коллекцию словарей, если:
- в исходном тексте не будет найдено ни одного элемента адреса,
- исходный текст на неподдерживаемом языке. На данный момент поддерживается только русский язык.
Пример использования
Задача: записать в текстовый файл извлеченные адреса из текста.
Текст: Школа Евгении расположена по адресу: Нижегородская область, г.Нижний Новгород ,ул.Ленина, д.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".
- Нажать на кнопку "Старт" в верхней панели.
Результат:
Программный робот отработал успешно. Извлеченные адреса записались в текстовый файл.
Текстовый файл: