APICrafter
195 subscribers
32 photos
59 links
Открытые и коммерческие API для доступа к данным о компаниях, статистики, госфинансам, финансовой сфере и так далее.
加入频道
Forwarded from Ivan Begtin (Ivan Begtin)
Для тех кто ищет международные данные и не знает где они могут быть, порталы и проекты данных ООН.
Многие недооценивают влияние открытости данных на работу межгосударственных организаций, между тем почти все они переходят к открытости данных как основе открытости их работы.

- UN Data Catalog - каталог данных ООН. 4500+ датасетов от 76 структур ООН
- UnData - портал данных подразделения статистики ООН. API, выгрузка данных
- UN Comtrade Database - детальные данные по международной торговле. API, выгрузка данных
- Human Development Reports Data - данные индекса человеческого капитала UNDP. Выгрузка данных
- Urban Indicators Database - база городских индикаторов Unhabitat. Выгрузка данных
- Refugee Data Finder - базы данных по беженцам от UNHCR. Выгрузка данных
- UN Covid-19 data hub - хаб данных по COVID-19 от UNStata DESA
- UN Women data portal - портал данных UN Women
- COVID-19 data portal - портал данных по COVID-19 от UN Info
- UNOps Open data - открытые данные по стандарту IATI по операциям UNOPS
- Migration Data Portal - портал данных по миграции IOM
- UNIDO Statistics Data Portal - портал статических данных UNIDO
- FAOSTAT - статистика сельского хозяйства на портале FAO
- UNICEF Data - данные UNICEF
- UN ESCWA Data Portal - портал открытых данных UN ESCWA

А также многочисленные другие порталы и разделы с открытыми данным у других структур ООН.

#datasets #opendata #un
Обновления в каталоге APICrafter

Что нового
1. Данные о пакетах данных теперь публикуются более компактно. Страница пакета данных теперь включает сведения о характеристиках, таблицах и сборках данных вместе. Например [1] [2]
2. Таблицы открытых наборов данных теперь можно скачать в форматах JSONl, CSV и Parquet. Ссылки на данные публикуются на странице таблицы, например, "Точки обмена" [3]

Экспорт данных сейчас работает со следующими ограничениями:
- экспорт только для наборов данных менее чем с 100 тысячами записей
- форматы csv и parquet доступны только для таблиц без вложенных объектов
- сборки данных включают все данные и доступны всегда

Формат Parquet [4] популярен в data science и активно используется с помощью Jupyter Notebook.

Мы обязательно опубликуем примеры его использования.

Ссылки:
[1] https://tinyurl.com/2s3vuxaf
[2] https://tinyurl.com/2p89vp2k
[3] https://tinyurl.com/yckma22e
[4] https://tinyurl.com/mr4xjdmd

#apicrafter #datascience #datasets #parquet #json #csv
Forwarded from Ivan Begtin (Ivan Begtin)
В качестве небольшого пред-анонса, где-то через 1-2 недели планируем обновление DataCrafter'а в виде доступного сервиса идентификации типов данных. Сейчас в DataCrafter'е 76399 полей данных из которых 9722 автоматически классифицированы по классам вот [1]. Пока это делалось внутренним движком обрабатывающим данные в таблицах MongoDB и работающем по базе частично закодированных правил. Этот же движок делался для автоматизации анализа качества датасетов.

Этот код сейчас отчуждается и активно тестируется.

А сами правила переносятся из кода в YAML формат. Сейчас это уже 67 правил из которых 40 про то как называются поля, 27 про то что в них содержится и ещё выявление дат делается хоть и 1 правилом, но по 312 шаблонам.

Вначале появится открытый сервис и API по такой классификации для CSV файлов и сейчас я думаю над тем стоит ли переводить его в open source.

Ссылки:
[1] https://data.apicrafter.ru/class

#openservices #datacrafter #apicrafter #data #dataclassification
В каталог DataCrafter'а добавлен открытый набор данных Реестр обязательных требований для организаций в городе Москве [1] полученный с сайта Открытый контроль (knd.mos.ru). Набор данных включает 87 тысяч записей, общим объёмом 470 МБ в формате JSONL и в 20 МБ в сжатом виде. Данные содержат обязательные требования предъявляемые организациям в зависимости от вида их деятельности.

Данные доступны через:
- в виде пакета данных (ZIP архив)
- в виде JSON lines файла экспорта
- через API платформы

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

Ссылки:
[1] https://data.apicrafter.ru/packages/mosknd

#opendata #moscow #data #knd
Forwarded from Ivan Begtin (Ivan Begtin)
Масштабное обновление алгоритмов классификации данных в DataCrafter'е. Теперь из 76500 полей наборов данных классифицированы 19 501 поле, это около 25,5%. Учитывая что многие поля надо отмечать как "неклассифицируемые" потому что они содержат только расчёт численные данные, то 25,5% от всех полей это очень много, можно сказать рекорд!

Классификация данных - это процесс при котором определяется природа данных содержащихся в таблицах/файлах/наборах данных. Например, идентификация кодов ИНН/ОГРН/КПП организация, ФИО / Имён / Отчеств / Фамилий физических лиц и ещё многое другое.

При этом обновлении были добавлены новые идентификаторы и правила их распознавания:
- ruscity - Российский город
- rusdayofweek - День недели на русском языке (понедельник, вторник и т.д.)
- runpa - нормативно-правовые и распорядительные документы. Законы, постановления, распоряжения и приказы
- mimetype - типы MIME, как правило ассоциированные с файлами
- filename - название файла
- rusworkposition - должности. Например: ректор,директор,и.о. директора и т.д.
- timerange - временные промежутки. Например: 10:00-12:00 или 21:10-21:30

А также многие другие. Сейчас в DataCrafter внесено 90 классов данных [1] для идентификации которых используется 134 правила идентифицирующих данные и 304 правила идентифицирующих дату/время. Дата и время идентифицируются отдельно поскольку ещё в 2017 году я заопенсорсил движок qddate [2] определяющая даты в 348 шаблонах и на 9 языках. Движок, кстати, делался для библиотеки newsworker [3] по извлечению новостей из сайтов не отдающих RSS ленты, на основе шаблонов текстов, в основе которых даты. Эту библиотеку я тогда же заопенсорсил и слегка подзабросил, но она всё ещё вполне работает и актуальна.

Чтобы достичь этого результата внутренний движок классификации данных был полностью переписан. Большая часть правил теперь описывается в конфигурационных настраиваемых файлах YAML. При применении правил они могут фильтроваться по контексту, по языку и по точности. Кроме коллекий в MongoDB теперь поддерживаются файлы CSV и JSONl. Через некоторое время рабочая версия классификатора появится в виде страницы в интернете и телеграм бота (телеграм бот уже тестируется).

Сейчас 72 из 135 правил написаны под русский язык и Россию. Они учитывают, или принятые в России классификаторы, или русскоязычное кодирование информации. Следующий шаг после открытия версии классификатора для публичного тестирования - это поддержка классификации данных происходящих из других стран.

Ссылки:
[1] https://data.apicrafter.ru/class
[2] https://github.com/ivbeg/qddate
[3] https://github.com/ivbeg/newsworker

#opendata #data #datasets #datacrafter #apicrafter #dataclassification
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
В ближайшее время мы переносим проект на другой хостинг, поэтому временно не будет работать обновление данных и в какие-то дни он может быть временно недоступен. Как только миграция на новый хостинг завершится, мы вернемся к регулярному обновлению данных и продолжим загрузку новых данных.

Спасибо за понимание!
Восстановлена работа каталога DataCrafter (data.apicrafter.ru) на обновлённом сервере. Каталог должен работать быстрее, все функции должны работать как прежде. Если столкнётесь с ошибками или какими-либо несоответствиями, пишите и мы оперативно исправим.
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)
Новости по разрабатываемым продуктам:
- общая стратегия в перенос в открытый код корневых/ключевых компонентов и ведение их в режиме открытой разработки. Коммерческие продукты будут вынесены в облака, то есть модель open source engine + cloud services.
- приоритет будет сдвигаться на технологические сервисы и сервисные API
- через какое-то время появится общий репозиторий с архитектурой продуктов APICrafter'а как единого целого. Это будет включать ряд технологических продуктов и ряд продуктов агрегаторов данных.
- для DataCrafter'а добавлен Getting Started гайд [1], его можно почитать тут, а далее будет сайт документации
- задачи по развитию DataCrafter'а перенесены в issues продукта на Github [2] туда можно добавить предложения, проголосовать и прокомментировать. Пока добавлено основное, что в работе.
- все задачи по datacrafter'у, metacrafter'у и др. продуктам вынесены в проект с общим списком задач [3]

Ссылки:
[1] https://github.com/apicrafter/datacrafter/blob/main/docs/getting-started.md
[2] https://github.com/apicrafter/datacrafter/issues
[3] https://github.com/orgs/apicrafter/projects/1

#opensource #code #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