Forwarded from Ivan Begtin (Ivan Begtin)
Телеграм бот @DataClassifierBot - это то что я обещал как инструмент автоматической классификации данных DataCrafter'а. В него можно загрузить файлы в формате CSV (разделитель обязательно запятая) или JSON lines (.jsonl) и на выходе будет одно или нескольк сообщений с таблицей структуры полей в файле, их типа и идентифицированного класса данных. Подробнее можно посмотреть на скриншотах. Через телеграм бот будет открытое бета тестирование, прошу делиться обратной связью в чате @apicrafterchat или написав мне. А для тех у кого более серьёзные задачи скоро будет доступно API.
По результатам бета-тестирования хочется понять:
1) Каких функций возможностей нехватает
2) Какие дополнительные классификации нужны/ожидаемы и пока отсутствуют.
3) Насколько точно алгоритмы работают на Ваших данных
Особенности работы бота:
- отключены почти все "неточные" правила
- текущие основные правила под русский язык
- ограничения на файлы 10M, ограничений на число полей нет
#data #apicrafter #datacrafter #datatools
По результатам бета-тестирования хочется понять:
1) Каких функций возможностей нехватает
2) Какие дополнительные классификации нужны/ожидаемы и пока отсутствуют.
3) Насколько точно алгоритмы работают на Ваших данных
Особенности работы бота:
- отключены почти все "неточные" правила
- текущие основные правила под русский язык
- ограничения на файлы 10M, ограничений на число полей нет
#data #apicrafter #datacrafter #datatools
Телеграм бот по классификации данных @DataClassifierBot теперь умеет распознавать типы файлы, их кодировку и разделители, если файлы в CSV формате. Теперь не надо преобразовывать данные для загрузки в бот, он автоматически идентифицирует необходимое и проведет классификацию полей данных.
Напомню что @DataClassifierBot анализирует структуру файла и на основе данных определяет содержание поля возвращает информацию о том что там содержится. Бот умеет определять такие виды данных как:
- Ссылки
- Email адреса
- ФИО и по отдельности фамилии, имена и отчества
- названия организаций
- Коды организаций ИНН/КПП/ОГРН/ОКПО
- Дату и время в любом формате
- Коды ОКВЭД, ОКПД, ОКВ, ОКФС и другие
- Названия городов
- Названия стран
- Адреса
и многое другое, полный перечень выявляемых идентификаторов и видов полей на сайте DataCrafter https://data.apicrafter.ru/class
#datatools #data
Напомню что @DataClassifierBot анализирует структуру файла и на основе данных определяет содержание поля возвращает информацию о том что там содержится. Бот умеет определять такие виды данных как:
- Ссылки
- Email адреса
- ФИО и по отдельности фамилии, имена и отчества
- названия организаций
- Коды организаций ИНН/КПП/ОГРН/ОКПО
- Дату и время в любом формате
- Коды ОКВЭД, ОКПД, ОКВ, ОКФС и другие
- Названия городов
- Названия стран
- Адреса
и многое другое, полный перечень выявляемых идентификаторов и видов полей на сайте DataCrafter https://data.apicrafter.ru/class
#datatools #data
DataCrafter
Классификация данных DataCrafter
Классификация данных DataCrafter: ОГРН, ИНН, кадастровый номер, ОКПО, ОКВЭД, коды бюджета, коды ГРБС и др.
Forwarded from Ivan Begtin (Ivan Begtin)
Не так давно я писал про распознавание классов данных в DataCrafter'е и про небольшой движок с открытым кодом metacrafter [1], но не все и не всегда понимают зачем это нужно и для чего вообще используются подобные инструменты и нужно понимание того что содержится в таблицах с данными. Я постараюсь об этом рассказать в подробностях.
То что я ранее упоминал как классы данных, иногда называют метки данных (data labels), но самое распространённое название - это semantic type (семантический тип данных). В отличие от простых типов данных таких как числа, числа с плавающей запятой, строки, даты, бинарные блоки и так далее, семантические типы определяют смысл и предназначение именно этих данных. Смысл и предназначение как в содержании, так и в последующих вариантах применения.
Например, типом поля может быть строка, а семантическим типом может быть: адрес, номер телефона, название организации или ФИО человека. Каждый из этих семантических типов имеет разный смысл и разные модели использования. Где-то это ссылка на справочные значения, где-то данные требующие расшифровки и декомпозиции, а где-то и метрики для последующего анализа и отображения.
Многие инструменты умеют определять семантические типы весьма неплохо. Например, Talend ETL поддерживает несколько десятков семантических типов данных [2] что используется в преобразованиях данных. Некоторые семантические типы понимает и распознает Google DataStudio [3] что позволяет сразу размечать данные в наборе для разных видов визуализации. А в таком инструменте как Dataprep [4] семантические типы данных используются в задачах очистки наборов данных. И таких применений ещё много.
Поэтому отвечая на вопрос: зачем это нужно, перечислю наиболе очевидные области применения:
1. Идентификации персональных данных в целях комплаенса и соответствия требованиям.
2. Автоматизация обработки данных включая (сопоставление схем, обогащение данных, автоматизация преобразований)
3. Обеспечение качества данных: автоматизация проверки на соответствие данных шаблонам и подсказки для инженеров QA.
4. Автоматизация документирования данных автоописанием полей данных на основе их смысла
5. Улучшение визуализации в BI системах за счёт того что система начинает понимать природу данных и предлагать разные способы их визуализации
6. Повышение находимости данных (data discoverability) через доп фильтры для поиска и через дополнительный способ навигации по данным.
Наиболее остроактуальные темы - это повышение качества данных и идентификация персональных данных. Многие онлайн платформы, вроде Snowflake, автоматизируют идентификацию семантических типов.
Ссылки:
[1] https://github.com/apicrafter/metacrafter
[2] https://help.talend.com/r/en-US/Cloud/data-preparation-user-guide/predefined-semantic-types
[3] https://developers.google.com/datastudio/connector/semantics
[4] https://docs.dataprep.ai/user_guide/clean/clean_df.html
#data #datatools #dataconcepts
То что я ранее упоминал как классы данных, иногда называют метки данных (data labels), но самое распространённое название - это semantic type (семантический тип данных). В отличие от простых типов данных таких как числа, числа с плавающей запятой, строки, даты, бинарные блоки и так далее, семантические типы определяют смысл и предназначение именно этих данных. Смысл и предназначение как в содержании, так и в последующих вариантах применения.
Например, типом поля может быть строка, а семантическим типом может быть: адрес, номер телефона, название организации или ФИО человека. Каждый из этих семантических типов имеет разный смысл и разные модели использования. Где-то это ссылка на справочные значения, где-то данные требующие расшифровки и декомпозиции, а где-то и метрики для последующего анализа и отображения.
Многие инструменты умеют определять семантические типы весьма неплохо. Например, Talend ETL поддерживает несколько десятков семантических типов данных [2] что используется в преобразованиях данных. Некоторые семантические типы понимает и распознает Google DataStudio [3] что позволяет сразу размечать данные в наборе для разных видов визуализации. А в таком инструменте как Dataprep [4] семантические типы данных используются в задачах очистки наборов данных. И таких применений ещё много.
Поэтому отвечая на вопрос: зачем это нужно, перечислю наиболе очевидные области применения:
1. Идентификации персональных данных в целях комплаенса и соответствия требованиям.
2. Автоматизация обработки данных включая (сопоставление схем, обогащение данных, автоматизация преобразований)
3. Обеспечение качества данных: автоматизация проверки на соответствие данных шаблонам и подсказки для инженеров QA.
4. Автоматизация документирования данных автоописанием полей данных на основе их смысла
5. Улучшение визуализации в BI системах за счёт того что система начинает понимать природу данных и предлагать разные способы их визуализации
6. Повышение находимости данных (data discoverability) через доп фильтры для поиска и через дополнительный способ навигации по данным.
Наиболее остроактуальные темы - это повышение качества данных и идентификация персональных данных. Многие онлайн платформы, вроде Snowflake, автоматизируют идентификацию семантических типов.
Ссылки:
[1] https://github.com/apicrafter/metacrafter
[2] https://help.talend.com/r/en-US/Cloud/data-preparation-user-guide/predefined-semantic-types
[3] https://developers.google.com/datastudio/connector/semantics
[4] https://docs.dataprep.ai/user_guide/clean/clean_df.html
#data #datatools #dataconcepts
GitHub
GitHub - apicrafter/metacrafter: Metadata and data identification tool and Python library. Identifies PII, common identifiers,…
Metadata and data identification tool and Python library. Identifies PII, common identifiers, language specific identifiers. Fully customizable and flexible rules - apicrafter/metacrafter
Forwarded from Ivan Begtin (Ivan Begtin)
Для тех кто интересуется анализом и обработкой данных, большое обновление реестра семантических типов данных который я создавал когда-то для инструментов определения типов данных. Реестр называется metacrafter registry и его репозиторий доступен на github [1].
Обновления:
- 158 семантических типов данных
- 38 дополнительных шаблона записи данных
- 18 категорий, 6 стран и 6 языков. Поддерживаются некоторые типы данных специфичные для США, Великобритании, Франции и Испании и, конечно, России. Например. идентификаторы организаций.
Все семантические типы описаны теперь как индивидуальные YAML файлы [2], это значительно упрощает их развитие и обновление.
По сути над базой не хватает только веб интерфейса для постоянных ссылок (пермалинков).
Зачем это нужно? Этот реестр развитие утилиты metacrafter [3] написанной как универсальный инструмент определения смысловых полей данных в базах данных, вне зависимости от их названия. Утилита умеет работать с SQL, MongoDB, файлами CSV, JSON, JSON lines и BSON․ Определяет десятки типов полей, а самое главное, она расширяема и можно писать свои правила. В опубликованной версии присутствует пара десятков готовых правил, а в нашей внутренней версии в DataCrafter'е, их несколько сотен. Все они сейчас обновляются для привязки к реестру семантических типов.
Ссылки:
[1] https://github.com/apicrafter/metacrafter-registry
[2] https://github.com/apicrafter/metacrafter-registry/tree/main/data/datatypes
[3] https://github.com/apicrafter/metacrafter
#datatools #opensource #datacrafter #apicrafter
Обновления:
- 158 семантических типов данных
- 38 дополнительных шаблона записи данных
- 18 категорий, 6 стран и 6 языков. Поддерживаются некоторые типы данных специфичные для США, Великобритании, Франции и Испании и, конечно, России. Например. идентификаторы организаций.
Все семантические типы описаны теперь как индивидуальные YAML файлы [2], это значительно упрощает их развитие и обновление.
По сути над базой не хватает только веб интерфейса для постоянных ссылок (пермалинков).
Зачем это нужно? Этот реестр развитие утилиты metacrafter [3] написанной как универсальный инструмент определения смысловых полей данных в базах данных, вне зависимости от их названия. Утилита умеет работать с SQL, MongoDB, файлами CSV, JSON, JSON lines и BSON․ Определяет десятки типов полей, а самое главное, она расширяема и можно писать свои правила. В опубликованной версии присутствует пара десятков готовых правил, а в нашей внутренней версии в DataCrafter'е, их несколько сотен. Все они сейчас обновляются для привязки к реестру семантических типов.
Ссылки:
[1] https://github.com/apicrafter/metacrafter-registry
[2] https://github.com/apicrafter/metacrafter-registry/tree/main/data/datatypes
[3] https://github.com/apicrafter/metacrafter
#datatools #opensource #datacrafter #apicrafter
GitHub
GitHub - apicrafter/metacrafter-registry: Registry of metadata identifier entities like UUID, GUID, person fullname, address and…
Registry of metadata identifier entities like UUID, GUID, person fullname, address and so on. Linked with other sources - apicrafter/metacrafter-registry
Forwarded from Ivan Begtin (Ivan Begtin)
В продолжение предыдущего я ранее писал что разные части наших продуктов APICrafter и Datacrafter мы выложили с открытый доступ [1]
Сейчас они используются для сборки нескольких дата-продуктов и появилась возможность выложить несколько новых примеров и актуализировать код открытых репозиториев.
В репозитории datacrafter-examples [2] появились 3 новых примера:
- itbenef - реестр ИТ компаний получателей налоговых субсидий
- itregistry - реестр аккредитованных ИТ компаний
- softreg - реестр отечественного ПО
Вместо того чтобы размещать сами наборы данных, публикую код с помощью которого они создаются. Потому что первоисточники акцента на данных не делают, данные обычно в Excel форматах или не них нет прямой ссылки. Ну и, конечно, никакие новые полезные данные на госпорталах с открытыми данными вроде data.gov.ru не появляются.
Они все используют в качестве источников данные с сайта Минцифры РФ и их информационных систем.
Для запуска достаточно установить datacrafter [3] и выполнить команду 'datacrafter run' в директориях с файлами проектов "datacrafter.yml"
Причём надо использовать последний код из репозитория поскольку в нем как раз исправлены ошибки обработки Excel файлов.
datacrafter - это пока упрощённая, а далее усложняемая NoSQL утилита для задач ETL, по извлечению обработке и загрузке данных.
По умолчанию все данные там рассматриваются как JSON/JSON lines и сама утилита включает возможности преобразования плоских файлов в эти форматы.
Если найдете ошибки, пишите их в issues репозиториев.
Ссылки:
[1] https://github.com/apicrafter
[2] https://github.com/apicrafter/datacrafter-examples
[3] https://github.com/apicrafter/datacrafter
#opensource #datatools
Сейчас они используются для сборки нескольких дата-продуктов и появилась возможность выложить несколько новых примеров и актуализировать код открытых репозиториев.
В репозитории datacrafter-examples [2] появились 3 новых примера:
- itbenef - реестр ИТ компаний получателей налоговых субсидий
- itregistry - реестр аккредитованных ИТ компаний
- softreg - реестр отечественного ПО
Вместо того чтобы размещать сами наборы данных, публикую код с помощью которого они создаются. Потому что первоисточники акцента на данных не делают, данные обычно в Excel форматах или не них нет прямой ссылки. Ну и, конечно, никакие новые полезные данные на госпорталах с открытыми данными вроде data.gov.ru не появляются.
Они все используют в качестве источников данные с сайта Минцифры РФ и их информационных систем.
Для запуска достаточно установить datacrafter [3] и выполнить команду 'datacrafter run' в директориях с файлами проектов "datacrafter.yml"
Причём надо использовать последний код из репозитория поскольку в нем как раз исправлены ошибки обработки Excel файлов.
datacrafter - это пока упрощённая, а далее усложняемая NoSQL утилита для задач ETL, по извлечению обработке и загрузке данных.
По умолчанию все данные там рассматриваются как JSON/JSON lines и сама утилита включает возможности преобразования плоских файлов в эти форматы.
Если найдете ошибки, пишите их в issues репозиториев.
Ссылки:
[1] https://github.com/apicrafter
[2] https://github.com/apicrafter/datacrafter-examples
[3] https://github.com/apicrafter/datacrafter
#opensource #datatools
GitHub
APICrafter
APICrafter Data API project. APICrafter has 12 repositories available. Follow their code on GitHub.
Forwarded from Ivan Begtin (Ivan Begtin)
Я всё забыл написать, ещё пару месяцев начал и почти доделал небольшую программную библиотеку для Python для чтения данных из файлов в любых форматах с данными։ csv, json, json lines, xml, parquet, orc, xls, xlsx и в перспективе других. Называется pyiterable [1] и воспроизводит и улучшает код который был в утилите командной строки undatum [2] и в ETL движке datacrafter [3].
По сути библиотека позволяет одинаковым образом читать любые табличные и не-табличные данные и возвращать их в виде словарей для Python (python dict). Причём файлы могут быть, например, сжатыми разными архиваторами и это тоже поддерживается.
Аналогично, для ряда форматов, поддерживается не только чтение, но и запись, опять же в виде записей в виде python dict.
Мне эта библиотека нужна была чтобы в итоге заменить код внутри Undatum и сделать универсальную утилиту преобразования данных из любого в любой формат которые могут быть контейнерами для данных.
На картинке изначальная модель библиотеки, сейчас реализовано около 70% возможностей. Ошибки, предложения можно отправлять в issues, исправления в код в pull request
Ссылки։
[1] https://github.com/apicrafter/pyiterable
[2] https://github.com/datacoon/undatum
[3] https://github.com/apicrafter/datacrafter
#datatools #opensource #apicrafter #data
По сути библиотека позволяет одинаковым образом читать любые табличные и не-табличные данные и возвращать их в виде словарей для Python (python dict). Причём файлы могут быть, например, сжатыми разными архиваторами и это тоже поддерживается.
Аналогично, для ряда форматов, поддерживается не только чтение, но и запись, опять же в виде записей в виде python dict.
Мне эта библиотека нужна была чтобы в итоге заменить код внутри Undatum и сделать универсальную утилиту преобразования данных из любого в любой формат которые могут быть контейнерами для данных.
На картинке изначальная модель библиотеки, сейчас реализовано около 70% возможностей. Ошибки, предложения можно отправлять в issues, исправления в код в pull request
Ссылки։
[1] https://github.com/apicrafter/pyiterable
[2] https://github.com/datacoon/undatum
[3] https://github.com/apicrafter/datacrafter
#datatools #opensource #apicrafter #data