Свежий обзор The Modern Data Stack Ecosystem: Spring 2022 Edition [1] от Continual.ai, Конечно, как и все, они описывают Modern Data Stack с точки зрения их места в экосистеме, но, собственно и сам термин так активно используется стартапами именно для того чтобы показать позиционирование своего продукта. Удивительно что для MDS ещё нет холста в популярных системах проектирования вроде Miro и т.д.
Обзор полезный, например, автор отмечает отход от SQL-only подхода в преобразовании данных и в dbt рассматривают вариант включить поддержку non-SQL [2] и Snowflake рассматривают добавление Python-in-DB через Snowpark [3]
Главный недостаток именно этого обзора с слабом покрытии инструментов с открытым кодом, их там совсем немного упомянуто. Зато роли и применение продуктов стартапов довольно много.
Ссылки:
[1] https://continual.ai/post/the-modern-data-stack-ecosystem-spring-2022-edition
[2] https://roundup.getdbt.com/p/disjointed-lineage
[3] https://www.snowflake.com/blog/snowpark-is-now-generally-available/
#data #reading #tools #moderndatastack
Обзор полезный, например, автор отмечает отход от SQL-only подхода в преобразовании данных и в dbt рассматривают вариант включить поддержку non-SQL [2] и Snowflake рассматривают добавление Python-in-DB через Snowpark [3]
Главный недостаток именно этого обзора с слабом покрытии инструментов с открытым кодом, их там совсем немного упомянуто. Зато роли и применение продуктов стартапов довольно много.
Ссылки:
[1] https://continual.ai/post/the-modern-data-stack-ecosystem-spring-2022-edition
[2] https://roundup.getdbt.com/p/disjointed-lineage
[3] https://www.snowflake.com/blog/snowpark-is-now-generally-available/
#data #reading #tools #moderndatastack
continual.ai
The Modern Data Stack Ecosystem: Spring 2022 Edition
In this article, we take a peek at what is developing in the modern data stack ecosystem and summarize the main tools and vendors to consider when reaching for new functionality.
Яндекс выложили в открытый доступ систему управления базами данных YDB [1] с полным исходным кодом [2]. Эта распределенная SQL база данных, с собственным расширением языка SQL - YQL [3] и, в целом, выглядит любопытно.
Что стоит внимания:
- работа в кластере как часть системы
- обещанная простая масштабируемость
Что удивительно:
- база написана полностью на C++, хотя сейчас более популярно когда базы данных создаются на более высокоуровневых языках, в том числе и для того чтобы привлечь разработчиков которые хотят их изучать
- поддержка JSON и иерархических данных весьма скромная, по крайней мере документации об этом мало, хотя и упоминается
- вместо придумывания своего языка запросов расширяют SQL, что может быть и не плохо, просто +1 SQL диалект
- нет PostgreSQL или MySQL "совместимости из коробки", а это полезная фича которую декларируют многие новые СУБД и сервисы.
В целом база явно написана под высокие нагрузки, стоит пристального внимания и тестирования.
Ссылки:
[1] https://ydb.tech/
[2] https://github.com/ydb-platform/ydb
[3] https://ydb.tech/ru/docs/yql/reference/
#data #opensource #yandex #tools
Что стоит внимания:
- работа в кластере как часть системы
- обещанная простая масштабируемость
Что удивительно:
- база написана полностью на C++, хотя сейчас более популярно когда базы данных создаются на более высокоуровневых языках, в том числе и для того чтобы привлечь разработчиков которые хотят их изучать
- поддержка JSON и иерархических данных весьма скромная, по крайней мере документации об этом мало, хотя и упоминается
- вместо придумывания своего языка запросов расширяют SQL, что может быть и не плохо, просто +1 SQL диалект
- нет PostgreSQL или MySQL "совместимости из коробки", а это полезная фича которую декларируют многие новые СУБД и сервисы.
В целом база явно написана под высокие нагрузки, стоит пристального внимания и тестирования.
Ссылки:
[1] https://ydb.tech/
[2] https://github.com/ydb-platform/ydb
[3] https://ydb.tech/ru/docs/yql/reference/
#data #opensource #yandex #tools
ydb.tech
YDB — an open source Distributed SQL Database
YDB is an open source Distributed SQL Database that combines high availability and scalability with strong consistency and ACID transactions.
В рубрике полезных инструментов для работы с данными несколько обновлений
- spcrawler [1] утилита командной строки для выгрузки данных и файлов из открытых сайтов Sharepoint к которой я наконец-то нашёл время дописать документацию и выложил как открытый код. Предистория: в открытом доступе много сайтов на Sharepoint, некоторые государственные системы/сайты тоже сделаны нём. Эта утилита выгружает все данные доступные через API "/_api/web" для тех случаев когда такое API есть. Похоже на другую утилиту wparc - по архивации данных через API Wordpress, которую я ранее выкладывал.
- у утилиты undatum появилась команда query использующая mistql как язык запросов. Удобно при необходимости потоковой фильтрации данных при работе с JSON lines. Пока в экспериментальном режиме, функции незавершённые. Одна из идей в том чтобы реализовать полноценную команду запросов на многих языках, не только mistql, но и dictquery и ещё нескольких вариантах.
- у меня в планах написать гайд по apibackuper, утилите по архивации данных внутри API. Очень много примеров API по России и оказывается мало по миру, не могу быстро найти зарубежные недокументированные API.
- добавлены новые общедоступные правила к утилите идентфикации типов данных metacrafter, добавлены правила: intcodes.yaml - международные коды, boolean.yaml - булевые значения, orgs.yaml - организации, science.yaml - научные идентификаторы, vehicles.yaml - автомобили. Все они в категории common в репозитории. Напомню, что утилита является открытой и общедоступной как и базовые правила, а у нас внутри проходит бета тестирование сервис с расширенными правилами. Желающие могут использовать открытый код и сами писать правила под свои данные или привлечь нашу команду и мы применим расширенный свод правил + напишем под Ваши данные.
В ближайших планах собрать вместе открытый код + наработки по APICrafter'у и Datacrafter՛у и собрать продукт + сервис на международную и русскоязычную аудитории.
Ссылки:
[1] https://github.com/ruarxive/spcrawler
#opensource #tools #data
- spcrawler [1] утилита командной строки для выгрузки данных и файлов из открытых сайтов Sharepoint к которой я наконец-то нашёл время дописать документацию и выложил как открытый код. Предистория: в открытом доступе много сайтов на Sharepoint, некоторые государственные системы/сайты тоже сделаны нём. Эта утилита выгружает все данные доступные через API "/_api/web" для тех случаев когда такое API есть. Похоже на другую утилиту wparc - по архивации данных через API Wordpress, которую я ранее выкладывал.
- у утилиты undatum появилась команда query использующая mistql как язык запросов. Удобно при необходимости потоковой фильтрации данных при работе с JSON lines. Пока в экспериментальном режиме, функции незавершённые. Одна из идей в том чтобы реализовать полноценную команду запросов на многих языках, не только mistql, но и dictquery и ещё нескольких вариантах.
- у меня в планах написать гайд по apibackuper, утилите по архивации данных внутри API. Очень много примеров API по России и оказывается мало по миру, не могу быстро найти зарубежные недокументированные API.
- добавлены новые общедоступные правила к утилите идентфикации типов данных metacrafter, добавлены правила: intcodes.yaml - международные коды, boolean.yaml - булевые значения, orgs.yaml - организации, science.yaml - научные идентификаторы, vehicles.yaml - автомобили. Все они в категории common в репозитории. Напомню, что утилита является открытой и общедоступной как и базовые правила, а у нас внутри проходит бета тестирование сервис с расширенными правилами. Желающие могут использовать открытый код и сами писать правила под свои данные или привлечь нашу команду и мы применим расширенный свод правил + напишем под Ваши данные.
В ближайших планах собрать вместе открытый код + наработки по APICrafter'у и Datacrafter՛у и собрать продукт + сервис на международную и русскоязычную аудитории.
Ссылки:
[1] https://github.com/ruarxive/spcrawler
#opensource #tools #data
GitHub
GitHub - ruarxive/spcrawler: A command-line tool to backup Sharepoint public installations data from open API endpoint
A command-line tool to backup Sharepoint public installations data from open API endpoint - ruarxive/spcrawler
Я продолжаю писать на английском языке о инструментах для работы с данными которые делал последние несколько лет. Написал заметку [1] про утилиту APIBackuper используемую для извлечению данных из API. Не открою большого секрета если скажу что большая часть данных в DataCrafter[2] собрана с её помощью. Слишком многие данные в России доступны только как API.
Но в заметке пример сбора данных с недокументированного API аэропорта Берлина.
Ссылки:
[1] https://medium.com/@ibegtin/apibackuper-a-command-line-tool-to-archive-backup-data-api-calls-3eb0e98e1a3b
#tools #datatools #opensource #articles
Но в заметке пример сбора данных с недокументированного API аэропорта Берлина.
Ссылки:
[1] https://medium.com/@ibegtin/apibackuper-a-command-line-tool-to-archive-backup-data-api-calls-3eb0e98e1a3b
#tools #datatools #opensource #articles
Medium
APIBackuper: a command-line tool to archive/backup data API calls
A lot of data published as API, iterable by page or skip parameters API. Sometimes it’s documented, sometimes not, but quite often it’s…
Из свежего полезного чтения про оптимизацию работы с данными, заметка How to Build a Lossless Data Compression and Data Decompression Pipeline [1] о построении многопоточного компрессора bz2 на Python. Статья полезная, но лично мне так и хочется ехидно прокомментировать про то что "хипстеры обнаружили для себя многопоточность". Многопоточное сжатие и другие многопоточные операции это один из многих трюков отличающих общедоступные и коммерческие продукты по обработке данных. При правильно подобранном железе и иных оптимизациях оно даёт многократное ускорение.
При этом придумывать что-то своё совершенно необязательно. Есть реализация многопоточного Gzip на Python - pgzip [2] . Есть реализация многопоточности в python-zstandard [3] и это если только говорить про компрессию, а есть и другие многопоточные задачи используемые при обработке данных.
Другое чтение, про Software defined assets [4] про новый декларативный подход управления данными и оркестрацией от команды Dagster. Не могу сказать что с лёту мне удалось понять принципиальные преимущества подхода, но почитать точно стоит
Ссылки:
[1] https://python.plainenglish.io/lossless-data-compression-and-data-decompression-pipeline-2f5391a6b7e7
[2] https://github.com/pgzip/pgzip
[3] https://python-zstandard.readthedocs.io/en/latest/multithreaded.html
[4] https://dagster.io/blog/software-defined-assets
#readings #tools #datatools
При этом придумывать что-то своё совершенно необязательно. Есть реализация многопоточного Gzip на Python - pgzip [2] . Есть реализация многопоточности в python-zstandard [3] и это если только говорить про компрессию, а есть и другие многопоточные задачи используемые при обработке данных.
Другое чтение, про Software defined assets [4] про новый декларативный подход управления данными и оркестрацией от команды Dagster. Не могу сказать что с лёту мне удалось понять принципиальные преимущества подхода, но почитать точно стоит
Ссылки:
[1] https://python.plainenglish.io/lossless-data-compression-and-data-decompression-pipeline-2f5391a6b7e7
[2] https://github.com/pgzip/pgzip
[3] https://python-zstandard.readthedocs.io/en/latest/multithreaded.html
[4] https://dagster.io/blog/software-defined-assets
#readings #tools #datatools
Medium
How to Build a Lossless Data Compression and Data Decompression Pipeline
A parallel implementation of the bzip2 high-quality data compressor tool in Python.
Интересные продукты для работы с данными и не только
- PostgresML [1] реализация системы машинного обучения внутри Postgres, только через SQL. Для настоящих фанатов Postgres
- PyScript [2] реализация языка Python на Javascript
- HARI - The First Annotation And Dataset Analytics Platform [3] - интересный коммерческий продукт для визуализации и анализа алгоритмов распознвания видео. К сожалению описания маловато
- tinypandas [4] для тех кто привык к pandas, но хочет инструмент попроще. Не знаю кому такое может пригодится, но вдруг
- Metabase 0.43 [5] новая версия Metabase, самое интересное, на мой взгляд, поддержка JSON записей в Postgres, но много чего другого тоже есть
- Reconcilation [6] инструмент для создания сервисов обогащения данных для OpenRefine, написан на Python + Flask. Нужен для тех кто пользуется OpenRefine и хочет его расширять
- Squirel [7] свежая ETL на базе Python позиционируемая как инструмент для ML.
Ссылки:
[1] https://postgresml.org/
[2] https://pyscript.net/
[3] https://www.quality-match.com/hari
[4] https://talegari.github.io/tidypandas/_build/html/index.html
[5] https://github.com/metabase/metabase/releases/tag/v0.43.0
[6] https://github.com/preftech/reconciliation
[7] https://squirrel-core.readthedocs.io/en/latest/
#opensource #tools #datatools
- PostgresML [1] реализация системы машинного обучения внутри Postgres, только через SQL. Для настоящих фанатов Postgres
- PyScript [2] реализация языка Python на Javascript
- HARI - The First Annotation And Dataset Analytics Platform [3] - интересный коммерческий продукт для визуализации и анализа алгоритмов распознвания видео. К сожалению описания маловато
- tinypandas [4] для тех кто привык к pandas, но хочет инструмент попроще. Не знаю кому такое может пригодится, но вдруг
- Metabase 0.43 [5] новая версия Metabase, самое интересное, на мой взгляд, поддержка JSON записей в Postgres, но много чего другого тоже есть
- Reconcilation [6] инструмент для создания сервисов обогащения данных для OpenRefine, написан на Python + Flask. Нужен для тех кто пользуется OpenRefine и хочет его расширять
- Squirel [7] свежая ETL на базе Python позиционируемая как инструмент для ML.
Ссылки:
[1] https://postgresml.org/
[2] https://pyscript.net/
[3] https://www.quality-match.com/hari
[4] https://talegari.github.io/tidypandas/_build/html/index.html
[5] https://github.com/metabase/metabase/releases/tag/v0.43.0
[6] https://github.com/preftech/reconciliation
[7] https://squirrel-core.readthedocs.io/en/latest/
#opensource #tools #datatools
PostgresML
PostgresML | You know Postgres. Now you know machine learning – PostgresML
Build AI apps in minutes with a GPU-powered Postgres database
Для тех кто любит сжатие данных также как это люблю я, подборка полезных ссылок:
- про сжатие CSV файла в 22 ГБ в 1.5 ГБ файла Parquet [1] включает преобразование структур данных, сжатие zstd внутри файла parquet и тд. Для сравнения оригинальный сжатый файл был около 12GB. Для работы на ноутбуках и десктопах может быть значимо.
- Bzip3 [2] автор позиционирует как замену Bzip2. Сжимает существенно лучше чем Bzip2, немного лучше чем Xz и 7Zip (LZMA2), при этом не существенно теряет в скорости. В общем надо измерять.
- PLZip [3] и LZTurbo [4] два особо быстрых декомпрессора для lzip и lz77 соответственно, важно когда скорость сжатия некритична, а скорость распаковки важна
Ссылки:
[1] https://medium.com/@deephavendatalabs/the-r-place-dataset-bf4b0d70ce72
[2] https://github.com/kspalaiologos/bzip3
[3] https://www.nongnu.org/lzip/plzip.html
[4] https://sites.google.com/site/powturbo/home
#compression #tools #opensource
- про сжатие CSV файла в 22 ГБ в 1.5 ГБ файла Parquet [1] включает преобразование структур данных, сжатие zstd внутри файла parquet и тд. Для сравнения оригинальный сжатый файл был около 12GB. Для работы на ноутбуках и десктопах может быть значимо.
- Bzip3 [2] автор позиционирует как замену Bzip2. Сжимает существенно лучше чем Bzip2, немного лучше чем Xz и 7Zip (LZMA2), при этом не существенно теряет в скорости. В общем надо измерять.
- PLZip [3] и LZTurbo [4] два особо быстрых декомпрессора для lzip и lz77 соответственно, важно когда скорость сжатия некритична, а скорость распаковки важна
Ссылки:
[1] https://medium.com/@deephavendatalabs/the-r-place-dataset-bf4b0d70ce72
[2] https://github.com/kspalaiologos/bzip3
[3] https://www.nongnu.org/lzip/plzip.html
[4] https://sites.google.com/site/powturbo/home
#compression #tools #opensource
Medium
The r/place dataset
22GB CSV -> 1.5GB Parquet
Low code добралось и до инженерии данных. Стартап Prophecy.io [1] поднял в общей сложности $38.5M за 5 раундов инвестиций создавая платформу с минимальным программированием на базе Apache Spark и Apache Airlow. Эдакий подход - антихардкор, никакой командной строки, только работа мышкой.
Интересно до чего ещё докатится волна создания low-code продуктов?
Ссылки:
[1] https://www.prophecy.io/
#startups #dataengineering #tools
Интересно до чего ещё докатится волна создания low-code продуктов?
Ссылки:
[1] https://www.prophecy.io/
#startups #dataengineering #tools
Те кто ищет продукты по работе с базами данных и при этом больше похожие на MS Access, но в облаке, обычно быстро находят Airtable, но это совсем далеко не единственный low-code и no-code продукт в этой области. О некоторых я ранее писал, а других ещё нет:
- NocoDB [1] альтернатива Airtable с открытым кодом.
- Rows [2] позиционируют себя как "переизобретение таблиц", стартап и онлайн сервис
- Clay [3] стартап с интеграцией с кучей онлайн сервисов, CRM, аналитики и т.д.
- Dataland [4] стартап и онлайн сервис ориентированный на удобство разработчиков, как универсальный фронтенд над базами данных. Пока в бета по запросу
- Tulr [5] бесплатная альтернатива Airtable. Платные тарифы тоже есть. Стартап, онлайн сервис
- StackBy [6] сервис ориентированный на маркетологов, с кучей шаблонов под их работу
- Basedash [7] ещё один сервис упрощения редактирования баз данных, словно не база, а таблица в Excel.
- Grist [8] довольно продвинутый инструмент с открытым кодом и облачный стартап.
- Smartsheet [9] корпоративный продукт, вернее продукт с корпоративной версией.
- Actiondesk [10] позволяет подключаться к СУБД и ещё и создавать аналитические интерфейсы.
А также большая подборка инструментов в списке Awesome NoCode/LowCode [11]
Ссылки:
[1] https://nocodb.com
[2] https://rows.com
[3] https://www.clay.com
[4] https://dataland.io/
[5] https://tulr.io/
[6] https://stackby.com/
[7] https://www.basedash.com/
[8] https://www.getgrist.com/
[9] https://www.smartsheet.com/
[10] https://www.actiondesk.io/
[11] https://github.com/kairichard/awesome-nocode-lowcode#database
#nocode #lowcode #tools #data
- NocoDB [1] альтернатива Airtable с открытым кодом.
- Rows [2] позиционируют себя как "переизобретение таблиц", стартап и онлайн сервис
- Clay [3] стартап с интеграцией с кучей онлайн сервисов, CRM, аналитики и т.д.
- Dataland [4] стартап и онлайн сервис ориентированный на удобство разработчиков, как универсальный фронтенд над базами данных. Пока в бета по запросу
- Tulr [5] бесплатная альтернатива Airtable. Платные тарифы тоже есть. Стартап, онлайн сервис
- StackBy [6] сервис ориентированный на маркетологов, с кучей шаблонов под их работу
- Basedash [7] ещё один сервис упрощения редактирования баз данных, словно не база, а таблица в Excel.
- Grist [8] довольно продвинутый инструмент с открытым кодом и облачный стартап.
- Smartsheet [9] корпоративный продукт, вернее продукт с корпоративной версией.
- Actiondesk [10] позволяет подключаться к СУБД и ещё и создавать аналитические интерфейсы.
А также большая подборка инструментов в списке Awesome NoCode/LowCode [11]
Ссылки:
[1] https://nocodb.com
[2] https://rows.com
[3] https://www.clay.com
[4] https://dataland.io/
[5] https://tulr.io/
[6] https://stackby.com/
[7] https://www.basedash.com/
[8] https://www.getgrist.com/
[9] https://www.smartsheet.com/
[10] https://www.actiondesk.io/
[11] https://github.com/kairichard/awesome-nocode-lowcode#database
#nocode #lowcode #tools #data
Nocodb
NocoDB Cloud
Instantly turn your Database into a No-Code Platform
В рубрике инструментов работы с данными ArangoDb [1] NoSQL СУБД для хранения документов, с акцентом на графовые данные и собственный язык запросов AQL [2].
Довольно развитый продукт, сравнимый с MongoDB по многим возможностям, со своими плюсами и ограничениями.
Из плюсов:
- JSON Native
- поддержка графовых данных
- реально свободная лицензия Apache 2 в сравнении с ограниченной SSPL у MongoDB
- поддержка JOIN՛ов (редкость для NoSQL)
Из ограничений:
- поскольку внутри JSON, то нет родных типов date и datetime, работа с датами через функции
- значительно меньшее сообщество чем у MongoDB
- по некоторым тестам ArangoDB работает медленнее чем MongoDB или OrientDB [3]
Ссылки:
[1] https://www.arangodb.com
[2] https://www.arangodb.com/docs/stable/aql/
[3] https://www.diva-portal.org/smash/get/diva2:1567918/FULLTEXT01.pdf
#tools #opensource
Довольно развитый продукт, сравнимый с MongoDB по многим возможностям, со своими плюсами и ограничениями.
Из плюсов:
- JSON Native
- поддержка графовых данных
- реально свободная лицензия Apache 2 в сравнении с ограниченной SSPL у MongoDB
- поддержка JOIN՛ов (редкость для NoSQL)
Из ограничений:
- поскольку внутри JSON, то нет родных типов date и datetime, работа с датами через функции
- значительно меньшее сообщество чем у MongoDB
- по некоторым тестам ArangoDB работает медленнее чем MongoDB или OrientDB [3]
Ссылки:
[1] https://www.arangodb.com
[2] https://www.arangodb.com/docs/stable/aql/
[3] https://www.diva-portal.org/smash/get/diva2:1567918/FULLTEXT01.pdf
#tools #opensource
ArangoDB
Home
ArangoDB is the leading multi-model database for high-performance applications. Try it now for flexible data modeling and efficient querying.
Может ли ИИ лишить работы журналистов и писателей? Может быть, когда-нибудь. А вот что он может уже сейчас - это выступить соавтором текста.
ИИ мой соавтор [1] в рассылке Stories by AI о сервисе Sudowrite использующем языковую модель GPT-3 для сонаписания текстов.
ИИ выступает в ролях:
- Помощника в мозговых штурмах
- Читателя, предоставляя автоматическую обратную связь на тексты
а также писателя и редактора.
Страшная штука, если задуматься, но, пока ещё, поддерживает только английский язык.
Сейчас это художественные тексты, а, если подумать, то можно ведь сделать сервисы написания текстов публицистических. Сонаписания научных статей, работ журналистов и так далее. Про всяческие пресс-релизы даже не говорю, для этого и ИИ не нужен.
Если подумать об этом чуть дальше, то такие усилители могут быть в разных профессиях. Например, может ли ИИ писать законы или распоряжения, переписывать ранее написанные? И нужны ли будут после этого профессии юристов и нормотворцев?
Но это вопрос, относительно, далекого будущего. А в нашем настоящем творческие профессии могут меняться уже в самом ближайшем будущем.
Ссылки:
[1] https://storiesby.ai/p/ai-is-my-co-writer
[2] https://www.sudowrite.com
#ai #tools #writing
ИИ мой соавтор [1] в рассылке Stories by AI о сервисе Sudowrite использующем языковую модель GPT-3 для сонаписания текстов.
ИИ выступает в ролях:
- Помощника в мозговых штурмах
- Читателя, предоставляя автоматическую обратную связь на тексты
а также писателя и редактора.
Страшная штука, если задуматься, но, пока ещё, поддерживает только английский язык.
Сейчас это художественные тексты, а, если подумать, то можно ведь сделать сервисы написания текстов публицистических. Сонаписания научных статей, работ журналистов и так далее. Про всяческие пресс-релизы даже не говорю, для этого и ИИ не нужен.
Если подумать об этом чуть дальше, то такие усилители могут быть в разных профессиях. Например, может ли ИИ писать законы или распоряжения, переписывать ранее написанные? И нужны ли будут после этого профессии юристов и нормотворцев?
Но это вопрос, относительно, далекого будущего. А в нашем настоящем творческие профессии могут меняться уже в самом ближайшем будущем.
Ссылки:
[1] https://storiesby.ai/p/ai-is-my-co-writer
[2] https://www.sudowrite.com
#ai #tools #writing
storiesby.ai
How GPT-3 Helps Me Write Short Stories
On how GPT-3 helps me writes short fiction
В рубрике регулярных напоминаний не могу не рассказать про сервис оценки простоты языка Простой язык (plainrussian.ru) [1] который я много лет назад сделал и передал в Инфокультуру при её создании.
Это очень простой сервис который на вход получает текст на русском языке и на выходе выдает его сложность в баллах где баллы - это число лет учёбы которые необходимо пройти чтобы понимать этот текст. Например, 11.97 баллов - это, примерно, 1-3 курс ВУЗа, а то есть около 12 лет учебы.
При том что анализ текстов - это, довольно сложная задача в общем понимании, но в данном случае было целью сделать как можно более доходчивый сервис для всех и каждого.
У сервиса есть API [2] и открытый код [3]. Код не обновлялся примерно лет 10, во всяком случае та его часть которая использовалась для расчета формул.
И вот в формулах и было самое сложное и интересное. Алгоритмы сервиса работают на тех же принципах что формулы читабельности текста созданные изначально для английского языка: Flesch-Kincaid, SMOG, Automatic Readability Index и другие. В их основе подсчет числа слов на предложение, среднее число слогов на слово, среднее число букв на слово, число редких слов и так далее.
Когда я задумал впервые сделать такой же алгоритм для русского языка, то столкнулся что для него формул нет. Их надо было, или придумать с нуля, или адаптировать коэффициенты английского языка для русского. В итоге я пошёл вторым путем, но составление собственного языкового корпуса с нужной мне статистикой тогда казалось длительной и неэффективной задачей, поэтому коэффициенты были подобраны грубым перебором за несколько недель-месяцев (?) нескольких десятков миллиардов вариантов коэффициентов на обучающей предразмеченной выборке из пары десятков текстов литературы для внеклассного чтения.
Сейчас всё это можно было бы решить гораздо быстрее, с современными ML инструментами расчеты были бы быстрее чем их проектирование.
Особенность итогового результата в том что тексты простые/бытовые он идентифицирует хорошо, а вот тексты юридические или нормативно-государственные оценивает всегда как особо сложные.
По прежнему сайт остаётся одним из тех проектов которым регулярно пользуются несмотря на его неизменность в последние годы.
Ссылки:
[1] https://plainrussian.ru/
[2] https://github.com/ivbeg/readability.io/wiki/API
[3] https://github.com/infoculture/plainrussian/tree/master/textmetric
#plainrussian #russian #language #api #tools
Это очень простой сервис который на вход получает текст на русском языке и на выходе выдает его сложность в баллах где баллы - это число лет учёбы которые необходимо пройти чтобы понимать этот текст. Например, 11.97 баллов - это, примерно, 1-3 курс ВУЗа, а то есть около 12 лет учебы.
При том что анализ текстов - это, довольно сложная задача в общем понимании, но в данном случае было целью сделать как можно более доходчивый сервис для всех и каждого.
У сервиса есть API [2] и открытый код [3]. Код не обновлялся примерно лет 10, во всяком случае та его часть которая использовалась для расчета формул.
И вот в формулах и было самое сложное и интересное. Алгоритмы сервиса работают на тех же принципах что формулы читабельности текста созданные изначально для английского языка: Flesch-Kincaid, SMOG, Automatic Readability Index и другие. В их основе подсчет числа слов на предложение, среднее число слогов на слово, среднее число букв на слово, число редких слов и так далее.
Когда я задумал впервые сделать такой же алгоритм для русского языка, то столкнулся что для него формул нет. Их надо было, или придумать с нуля, или адаптировать коэффициенты английского языка для русского. В итоге я пошёл вторым путем, но составление собственного языкового корпуса с нужной мне статистикой тогда казалось длительной и неэффективной задачей, поэтому коэффициенты были подобраны грубым перебором за несколько недель-месяцев (?) нескольких десятков миллиардов вариантов коэффициентов на обучающей предразмеченной выборке из пары десятков текстов литературы для внеклассного чтения.
Сейчас всё это можно было бы решить гораздо быстрее, с современными ML инструментами расчеты были бы быстрее чем их проектирование.
Особенность итогового результата в том что тексты простые/бытовые он идентифицирует хорошо, а вот тексты юридические или нормативно-государственные оценивает всегда как особо сложные.
По прежнему сайт остаётся одним из тех проектов которым регулярно пользуются несмотря на его неизменность в последние годы.
Ссылки:
[1] https://plainrussian.ru/
[2] https://github.com/ivbeg/readability.io/wiki/API
[3] https://github.com/infoculture/plainrussian/tree/master/textmetric
#plainrussian #russian #language #api #tools
Telegram
Инфокультура
Новости Информационной культуры. https://infoculture.ru
Forwarded from Open Data Armenia (Kseniia Orlova)
[EN] Awesome list: a toolkit for text analyzis Armenian language
- Eastern Armenian National Corpus Electronic Library provides a full view of works by classical authors (these books are in the public domain because their authors died more than 70 years ago). The corpus contains 4547379 words from 104 books by 12 authors.
- Named entity recognition. pioNer — trained data for Armenian NER using Wikipedia. This corpus provides the gold standard for automatically generated annotated datasets using GloVe models for Armenian. Along with the datasets, 50-, 100-, 200-, and 300-dimensional GloVe word embeddings trained on a collection of Armenian texts from Wikipedia, news, blogs, and encyclopedias have been released.
- The Polyglot library for Python supports language detection, named entity extraction (using Wikipedia data), morphological analysis, transliteration, and sentiment analysis for Armenian.
- Kevin Bougé Stopword Lists Page includes th Armenian language.
- Ranks NL Stopword Lists Page includes the Armenian language.
If you know of new usefull tools and guides, please share that knowledge with us!
Image author Aparna Melaput
#opendata #armenia #language #tools #digitalhumanities
- Eastern Armenian National Corpus Electronic Library provides a full view of works by classical authors (these books are in the public domain because their authors died more than 70 years ago). The corpus contains 4547379 words from 104 books by 12 authors.
- Named entity recognition. pioNer — trained data for Armenian NER using Wikipedia. This corpus provides the gold standard for automatically generated annotated datasets using GloVe models for Armenian. Along with the datasets, 50-, 100-, 200-, and 300-dimensional GloVe word embeddings trained on a collection of Armenian texts from Wikipedia, news, blogs, and encyclopedias have been released.
- The Polyglot library for Python supports language detection, named entity extraction (using Wikipedia data), morphological analysis, transliteration, and sentiment analysis for Armenian.
- Kevin Bougé Stopword Lists Page includes th Armenian language.
- Ranks NL Stopword Lists Page includes the Armenian language.
If you know of new usefull tools and guides, please share that knowledge with us!
Image author Aparna Melaput
#opendata #armenia #language #tools #digitalhumanities
Свежий инструмент Hashnode Rix [1] по модели компаньёна разработчика. Умеет отвечать на вопросы относительно написания кода, На сложные вопросы ответить не может, а на вот такие простые легко.
Уже просто таки даже интересно, когда от supportive AI придёт мода на proactive AI. Пишешь код, к примеру, а тут тебе AI помощник и пишет "Йоу, чувак, да у тебя веб приложение. А кинь мне список страниц что тебе нужны, я сейчас сгенерю" и тд.
Ссылки:
[1] https://hashnode.com/rix
#ai #tools
Уже просто таки даже интересно, когда от supportive AI придёт мода на proactive AI. Пишешь код, к примеру, а тут тебе AI помощник и пишет "Йоу, чувак, да у тебя веб приложение. А кинь мне список страниц что тебе нужны, я сейчас сгенерю" и тд.
Ссылки:
[1] https://hashnode.com/rix
#ai #tools
В качестве регулярного напоминания, кроме всего прочего я за последние лет 15 занимался тем публиковал довольно много кода как открытый код. В основном с надеждой на вовлечение сообщества и, где-то, это получалось, а где-то не очень. Случаев когда получалось и появлялись контрибьюторы довольно много, так что почему бы и не напомнить, на случай если возникнуть желающие воспользоваться и помочь в разработке:
- newsworker - библиотека для Python для извлечения новостей из веб страниц. Один из моих экспериментов с автоматизацией парсинга HTML закончился написанием этой библиотеки которая умеет распознавать даты в любом написании, ссылки и заголовки и текст новости.
- docx2csv - библиотека для Python и утилита командной строки по извлечению таблиц внутри файлов Microsoft Word (.DOCX).
- qddate - библиотека для идентификации дат в любом написании для условно любых языков. Изначально писалась как часть newsworker, потом была отделена. Поддерживает более 300 шаблонов написания дат.
- lazyscraper - утилита командной строки для превращения массивов HTML тэгов и HTML таблиц в таблицы CSV
- russiannames - на удивление оказавшаяся востребованной библиотека для Python и база данных для имён на русском языке и распознаванию стилей их написания. Создавалась из многих открытых источников, полезна, например, для задач когда надо понять в каком формате написано ФИО и что в нём есть что
- undatum - утилита командной строки для работы с разными структурированными данными, в первую очередь JSON lines. Фактически делалось как аналог csvkit для JSON lines, лично я ей пользуюсь ежедневно хотя и её ещё надо и надо допиливать.
- govdomains - база российских госдоменов и ассоциированного с этим кода, да, да, это не только зона .gov.ru, но и многое другое. Делалось изначально для проекта Ruarxive для понимания того что надо архивировать. Список большой, но с 2022 года развиваемый в закрытую по объективным причинам, чтобы не помогать хакерам находить уязвимости.
- metacrafter - утилита и библиотека идентификации семантических типов данных. Поддерживает десятки типов данных собранных в специальном реестре, изначально это был один из внутренних инструментов в продукте Datacrafter
- apibackuper - тоже утилита которой я пользуюсь регулярно, она создавалась для того чтобы архивировать данные предоставляемые через API. Причём всё это делается через простой конфиг файл. До сих пор многие датасеты из API я генерирую с её помощью.
- wparc - утилита архивации содержания Wordpress сайтов через API Wordpress если оно не отключено.
- ydiskarc - утилита архивирования материалов на Яндекс Диске, использует, по большей части документированное официальное API, но не требует к нему токенов или авторизации
- pyiterable - попытка унифицировать работу с данными в разных форматах: CSV, JSON, JSON lines, BSON, в том числе внутри контейнеров архивов. Регулярно сам этим пользуюсь. Изначально был план переписать undatum с использованием этой библиотеки, но руки не доходят.
- datacrafter - облегчённая ETL на Python для работы с открытыми данными, используется в одноимённом проекте datacrafter.ru, аналогично я ей сам регулярно пользуюсь когда надо систематизировать извлечение данных из открытых источников. К ней множество примеров для работы с данными на российских госсайтах.
#opensource #tools #data #datatools
- newsworker - библиотека для Python для извлечения новостей из веб страниц. Один из моих экспериментов с автоматизацией парсинга HTML закончился написанием этой библиотеки которая умеет распознавать даты в любом написании, ссылки и заголовки и текст новости.
- docx2csv - библиотека для Python и утилита командной строки по извлечению таблиц внутри файлов Microsoft Word (.DOCX).
- qddate - библиотека для идентификации дат в любом написании для условно любых языков. Изначально писалась как часть newsworker, потом была отделена. Поддерживает более 300 шаблонов написания дат.
- lazyscraper - утилита командной строки для превращения массивов HTML тэгов и HTML таблиц в таблицы CSV
- russiannames - на удивление оказавшаяся востребованной библиотека для Python и база данных для имён на русском языке и распознаванию стилей их написания. Создавалась из многих открытых источников, полезна, например, для задач когда надо понять в каком формате написано ФИО и что в нём есть что
- undatum - утилита командной строки для работы с разными структурированными данными, в первую очередь JSON lines. Фактически делалось как аналог csvkit для JSON lines, лично я ей пользуюсь ежедневно хотя и её ещё надо и надо допиливать.
- govdomains - база российских госдоменов и ассоциированного с этим кода, да, да, это не только зона .gov.ru, но и многое другое. Делалось изначально для проекта Ruarxive для понимания того что надо архивировать. Список большой, но с 2022 года развиваемый в закрытую по объективным причинам, чтобы не помогать хакерам находить уязвимости.
- metacrafter - утилита и библиотека идентификации семантических типов данных. Поддерживает десятки типов данных собранных в специальном реестре, изначально это был один из внутренних инструментов в продукте Datacrafter
- apibackuper - тоже утилита которой я пользуюсь регулярно, она создавалась для того чтобы архивировать данные предоставляемые через API. Причём всё это делается через простой конфиг файл. До сих пор многие датасеты из API я генерирую с её помощью.
- wparc - утилита архивации содержания Wordpress сайтов через API Wordpress если оно не отключено.
- ydiskarc - утилита архивирования материалов на Яндекс Диске, использует, по большей части документированное официальное API, но не требует к нему токенов или авторизации
- pyiterable - попытка унифицировать работу с данными в разных форматах: CSV, JSON, JSON lines, BSON, в том числе внутри контейнеров архивов. Регулярно сам этим пользуюсь. Изначально был план переписать undatum с использованием этой библиотеки, но руки не доходят.
- datacrafter - облегчённая ETL на Python для работы с открытыми данными, используется в одноимённом проекте datacrafter.ru, аналогично я ей сам регулярно пользуюсь когда надо систематизировать извлечение данных из открытых источников. К ней множество примеров для работы с данными на российских госсайтах.
#opensource #tools #data #datatools
GitHub
GitHub - ivbeg/newsworker: Advanced news feeds extractor and finder library. Helps to automatically extract news from websites…
Advanced news feeds extractor and finder library. Helps to automatically extract news from websites without RSS/ATOM feeds - ivbeg/newsworker
Forwarded from Национальный цифровой архив
Для тех кто работает с файлами в WARC формате (большая часть сайтов в ruarxive хранятся в нём) ещё одна утилита по работе с ними. Warchaeology [1]. Утилита создана в Национальной библиотеке Норвегии и позволяет:
- конвертировать форматы ARC, WARC и Nedlib
- листать WARC файлы
- удалять дубликаты файлов
- валидировать содержание WARC файлов
- предоставлять оболочку по работе с WARC файлами
Инструмент полезный, может пригодится тем кто любит работать в командной строке. Я также напомню про библиотеку и утилиту командной строки WarcIO [2] с функциями извлечения и пересжатия содержимого WARC файлов и разработанную мной когда-то утилиту MetaWARC [3] которая тоже умеет извлекать контент из WARC файлов и ещё индексировать их в sqlite и считать статистику и даже извлекать метаданные из вложенных файлов.
Больше инструментов полезных и разных! Если Вы знаете хорошие инструменты с открытым кодом для цифровой архивации, пишите нам, будем делать их обзоры.
Ссылки:
[1] https://github.com/nlnwa/warchaeology
[2] https://github.com/webrecorder/warcio
[3] https://github.com/datacoon/metawarc
#tools #opensource #digitalpreservation #webarchives #WARC #software
- конвертировать форматы ARC, WARC и Nedlib
- листать WARC файлы
- удалять дубликаты файлов
- валидировать содержание WARC файлов
- предоставлять оболочку по работе с WARC файлами
Инструмент полезный, может пригодится тем кто любит работать в командной строке. Я также напомню про библиотеку и утилиту командной строки WarcIO [2] с функциями извлечения и пересжатия содержимого WARC файлов и разработанную мной когда-то утилиту MetaWARC [3] которая тоже умеет извлекать контент из WARC файлов и ещё индексировать их в sqlite и считать статистику и даже извлекать метаданные из вложенных файлов.
Больше инструментов полезных и разных! Если Вы знаете хорошие инструменты с открытым кодом для цифровой архивации, пишите нам, будем делать их обзоры.
Ссылки:
[1] https://github.com/nlnwa/warchaeology
[2] https://github.com/webrecorder/warcio
[3] https://github.com/datacoon/metawarc
#tools #opensource #digitalpreservation #webarchives #WARC #software
GitHub
GitHub - nlnwa/warchaeology: Command line tool for digging into WARC files
Command line tool for digging into WARC files. Contribute to nlnwa/warchaeology development by creating an account on GitHub.
Забавная утилита для командной строки ai-renamer [1] переименует фотографии в зависимости от их содержимого. Бывает полезно, но... очень многие хранят десятки фотографий одного и того же места или объекта и потом выбирают лучшую фотографию из многих.
Очень полезным инструментом был бы такой локальный органайзер который сканировал фото по наличию того что на них есть и давал бы возможность фасетного поиска с новыми тегами и атрибутами. Кстати и для корпоративных банков документов такое было бы полезно.
Ссылки:
[1] https://github.com/ozgrozer/ai-renamer
#ai #commandline #tools
Очень полезным инструментом был бы такой локальный органайзер который сканировал фото по наличию того что на них есть и давал бы возможность фасетного поиска с новыми тегами и атрибутами. Кстати и для корпоративных банков документов такое было бы полезно.
Ссылки:
[1] https://github.com/ozgrozer/ai-renamer
#ai #commandline #tools
Свежий симпатичный поисковик по смыслам слов semantic grep [1] использует Word2Vec для выборки связанных по смыслу слов и уже их ищет по тексту.
Выглядит просто, симпатично, удобно для простого использования и под лицензией MIT. Опубликовано совсем недавно и аналогов такого я нигде не видел.
Если подумать то такую штуку можно было бы сделать с языковой моделью внутри или более сложными алгоритмами чем просто модель Word2Vec.
Лично я большой любитель командной строки и инструментов работы в ней, хороших поисковиков по текстовым файлам всегда нехватает (и всегда много!)
Ссылки:
[1] https://github.com/arunsupe/semantic-grep
#opensource #ai #commandline #tools #data
Выглядит просто, симпатично, удобно для простого использования и под лицензией MIT. Опубликовано совсем недавно и аналогов такого я нигде не видел.
Если подумать то такую штуку можно было бы сделать с языковой моделью внутри или более сложными алгоритмами чем просто модель Word2Vec.
Лично я большой любитель командной строки и инструментов работы в ней, хороших поисковиков по текстовым файлам всегда нехватает (и всегда много!)
Ссылки:
[1] https://github.com/arunsupe/semantic-grep
#opensource #ai #commandline #tools #data