APICrafter
195 subscribers
32 photos
59 links
Открытые и коммерческие API для доступа к данным о компаниях, статистики, госфинансам, финансовой сфере и так далее.
加入频道
Forwarded from Ivan Begtin (Ivan Begtin)
Телеграм бот @DataClassifierBot - это то что я обещал как инструмент автоматической классификации данных DataCrafter'а. В него можно загрузить файлы в формате CSV (разделитель обязательно запятая) или JSON lines (.jsonl) и на выходе будет одно или нескольк сообщений с таблицей структуры полей в файле, их типа и идентифицированного класса данных. Подробнее можно посмотреть на скриншотах. Через телеграм бот будет открытое бета тестирование, прошу делиться обратной связью в чате @apicrafterchat или написав мне. А для тех у кого более серьёзные задачи скоро будет доступно API.
По результатам бета-тестирования хочется понять:
1) Каких функций возможностей нехватает
2) Какие дополнительные классификации нужны/ожидаемы и пока отсутствуют.
3) Насколько точно алгоритмы работают на Ваших данных

Особенности работы бота:
- отключены почти все "неточные" правила
- текущие основные правила под русский язык
- ограничения на файлы 10M, ограничений на число полей нет


#data #apicrafter #datacrafter #datatools
Телеграм бот по классификации данных @DataClassifierBot теперь умеет распознавать типы файлы, их кодировку и разделители, если файлы в CSV формате. Теперь не надо преобразовывать данные для загрузки в бот, он автоматически идентифицирует необходимое и проведет классификацию полей данных.

Напомню что @DataClassifierBot анализирует структуру файла и на основе данных определяет содержание поля возвращает информацию о том что там содержится. Бот умеет определять такие виды данных как:
- Ссылки
- Email адреса
- ФИО и по отдельности фамилии, имена и отчества
- названия организаций
- Коды организаций ИНН/КПП/ОГРН/ОКПО
- Дату и время в любом формате
- Коды ОКВЭД, ОКПД, ОКВ, ОКФС и другие
- Названия городов
- Названия стран
- Адреса

и многое другое, полный перечень выявляемых идентификаторов и видов полей на сайте DataCrafter https://data.apicrafter.ru/class

#datatools #data
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
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
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
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