Big Data Science [RU]
1.62K subscribers
80 photos
9 videos
545 links
Big Data Science [RU] — канал о жизни Data Science.
Для сотрудничества: a.chernobrovov@gmail.com
🌏 — https://t.me/bdscience — Big Data Science channel (english version)
💼 — https://t.me/bds_job — channel about Data Science jobs and career
Download Telegram
😎Как читать таблицы из PDF: tabula-py
Иногда исходные данные для анализа хранятся в pdf-документах. Чтобы автоматически извлечь данные из этого формата сразу в датафрейм, попробуйте tabula-py. Это простая Python-оболочка для tabula-java, которая может читать таблицы PDF и конвертировать в датафрейм pandas, а также файлы CSV/TSV/JSON.
Просто сначала установите ее через менеджер пакетов pip: pip install tabula-py
А затем импортируйте в свой Python-скрипт:
import tabula as tb
И можно пользоваться:
file='DataFile.pdf'
data = tb.read_pdf(file, pages = '12')
df = pd.DataFrame(data)
Примеры на английском языке: https://medium.com/codestorm/how-to-read-and-scrape-data-from-pdf-file-using-python-2f2a2fe73ae7
Русскоязычные примеры: https://nuancesprog.ru/p/13614/
Документация: https://tabula-py.readthedocs.io/en/latest/
💥5 главных трендов инженерии данных в 2022 году: исследование Astronomer
Компания Astronomer, которая занимается коммерциализацией и продвижением популярного инструмента автоматизации пакетных процессов работы с данными, Apache AirFlow, подготовила провела ряд интервью с экспертами в области дата-инженерии, чтобы выявить наиболее актуальные тенденции в этой ИТ-области. Ключевые направления наступившего года:
• Происхождение и обеспечение качества данных (data lineage, data provenance и Data Quality)
• Децентрализация данных по разным контекстам и командам, но в рамках единой согласованной инфраструктуры с централизацией ресурсов
• Консолидация инструментов работы с данными, включая оркестровку конвейеров обработки
• Сетки данных (Data Mesh), устраняющие разрозненность между командами обработки через соединение используемых платформ
• взаимная интеграция DataOps, MLOps, AIOps для более эффективного и быстрого использования согласованных друг с другом данных и инструментов бесшовной работы с ними.
https://www.astronomer.io/blog/top-data-management-trends-2022
🗣SQL-запросы к CSV-файлу с csvkit
csvkit
— это набор инструментов командной строки для преобразования и работы с CSV-файлами. Эта утилита позволяет на простом Python выполнить следующие операции:
• Преобразовать файлы Excel и JSON в CSV
• Отобразить только имена столбцов
• Нарезать данные
• изменить порядок столбцов
• найти строки с совпадающими ячейками
• преобразовать CSV в JSON
• генерировать сводную статистику
• обратиться к CSV с помощью SQL-запросов
• импортировать данные в базы данных и извлекать из них
• выполнить парсинг данных CSV
• поработать с разделителями столбцов
Установить csvkit поможет менеджер пакетов pip: pip install csvkit
А синтаксис обращения к CSV-файлу через SQL-запрос в командной строке будет выглядеть так:
csvsql --query "SQL Query Here -- source file name as table name (without .CSV)" source_filename > target_filename
Чтобы использовать это в своем Python-скрипте следует
1) сперва импортировать CSVSQL из утилиты csvkit
from csvkit.utilities.csvsql import CSVSQL
2) далее определить аргументы как список значений, например:
args = ['--query','select distinct manufacturer from playground','payground.csv']
3) затем вызвать CSVSQL с аргументами
result = CSVSQL(args)
3) наконец, можно показать результаты
print(result.main())
https://csvkit.readthedocs.io/en/latest/index.html
https://medium.com/data-engineering-ramstkp/sql-queries-on-csv-using-python-24a472fe53b1
🚀Ускоряем аналитику Big Data: кейс Expedia Group с Apache Druid and DataSketches
При анализе больших данных часто возникают проблемные запросы, которые не масштабируются, поскольку требуют огромных вычислительных ресурсов и времени для получения точных результатов. Например, подсчет отдельных элементов, квантили, наиболее частые элементы, соединения таблиц в SQL-запросах, матричные вычисления и анализ графов. Если приблизительные результаты для таких вычислений приемлемы, есть специальные потоковые алгоритмы или эскизы (скетчи), которые выполняются на несколько порядков быстрее с допустимыми погрешностями. Скетчи помогли Yahoo успешно сократить время обработки данных с дней или часов до минут или секунд. Одним из таких инструментов является open-source библиотека Apache DataSketches.
Именно ее использует крупная туристическая компания Expedia Group, чтобы ускорить анализ временных рядов в Apache Druid, где соединения таблиц ограниченно поддерживаются, требуя помещения одного набора данных в память. DataSketches поддерживает операции с множествами, включая соединение, пересечение и разность, с небольшой потерей точности. Это полезно при поиске и бронировании билетов. С DataSketches можно запросить каждый набор данных независимо от Druid, чтобы получить нужный объект для каждого набора данных с целью предварительного, а затем и окончательного расчета. Поскольку изначально Druid не поддерживал слияние объектов DataSketches, инженерам Expedia Group пришлось написать собственный код на Java. Причем объект DataSketches занимает очень мало места в памяти, несмотря на большой размер множества. В итоге Apache Druid, колоночная СУБД для быстрого приема огромных объемов данных о событиях и предоставления запросов с малой задержкой, стала работать еще быстрее.
https://datasketches.apache.org/
https://medium.com/expedia-group-tech/fast-approximate-counting-using-druid-and-datasketch-f5f163131acd
NVIDIA выпустила обновление для программы NVIDIA Canvas — графического редактора, создающего с помощью ИИ реалистичные пейзажи на основе схематичных рисунков.
https://youtu.be/wKztRskmsig
🌏5 главных компонентов технологической платформы цифрового правительства от Gartner
Технологическая платформа цифрового правительства (DGTP, Digital Government Technology Platform) делает цифровую трансформацию реальностью, но требует целенаправленного руководства. Согласно исследованию Gartner, к 2023 году более 80% правительственных цифровых внедрений, не основанных на технологической платформе, не будут соответствовать поставленным задачам.
DGTP — это набор сквозных, интегрированных, горизонтальных возможностей, которые координируют государственных услуг в нескольких областях путем интеграции пяти платформ:
• платформа гражданского опыта (Citizen Experience) предоставляет интерфейсы и технологии, реализует политики и процедуры взаимодействия граждан и бизнеса и измеряет опыт своих пользователей;
• платформа экосистемы (Ecosystem platform) – набор цифровых интерфейсов, которые реализуют политики и процедуры для правительств и партнеров по экосистеме для обмена данными и услугами.
• платформа Интернета вещей (IoT) предоставляет интерфейсы, управление данными и контекст, а также реализует политики и процедуры для сбора и обработки данных с датчиков IoT
• платформа информационных систем (Information System) - корпоративные информационные системы сегодня являются сердцевиной усилий правительства в области ИТ. Платформа информационной системы предоставляет технологии, политики и процедуры для интеграции этих бэк-офисных систем в DGTP
• интеллектуальная платформа (Intelligence) обеспечивает расширенную аналитику, геопространственную аналитику и аналитику местоположения, роботизированную автоматизацию процессов (RPA) и возможности ИИ для обработки данных, собранных или сохраненных в любой области платформы.
Ключевыми повторно используемыми компонентами в DGTP являются приложения и службы, способные обеспечить беспрепятственное сочетание данных, услуг и возможностей, которые работают вместе в рамках DGTP и доступны через сети и устройства. DGTP не является готовым решением, но она предоставляет государственным учреждениям возможность внедрять инновации, сокращать затраты и предоставлять новые возможности быстро и гибко.
https://www.gartner.com/en/articles/government-cios-here-s-an-essential-piece-of-the-digital-transformation-puzzle
Компоненты технологической платформы цифрового правительства от Gartner
🍏Байесовская статистика с PyMC3: краткий ликбез
Частотная статистика опирается на долгосрочную частоту событий (точки данных) для вычисления нужной переменной. Байесовский метод также может работать без большого количества событий, даже с одной точкой данных. Частотный анализ дает точечную оценку, тогда как байесовский анализ дает распределение, которое можно интерпретировать как уверенность в том, что среднее значение распределения является хорошей оценкой для переменной. Однако, существует неопределенность в форме стандартного отклонения.
Байесовский подход полезен в ML-задачах, где важны оценки и достоверность. Например, сегодня может пойти дождь с вероятностью 60%». Основной формулой, лежащей в основе байесовского подхода, является теорема Байеса, которая позволяет вычислить апостериорную вероятность P(A|B) события А в зависимости от события B.
• P(B|A) называется вероятностью того, что если событие A произошло, насколько вероятно, что произойдет событие B?
• P(A) – вероятность события А, априорное (начальное) предположение об интересующей переменной.
• P(B) вероятность события B (свидетельство), которое обычно это трудно вычислить при оценке апостериорной вероятности.
Быстро вычислить баейсовскую вероятность можно с помощью Python-библиотеки PyMC3 https://docs.pymc.io/en/v3/. Она позволяет записывать модели, используя интуитивно понятный синтаксис для описания процесса генерации данных. PyMC3 позволяет настроить ML-модель с помощью алгоритмов MCMC на основе градиента, таких как NUTS, с помощью ADVI для быстрого приближенного вывода, включая мини-пакетный ADVI для масштабирования до больших наборов данных, или с помощью гауссовых процессов для построения байесовских непараметрических моделей. PyMC3 включает полный набор предопределенных статистических распределений, которые можно использовать в качестве строительных блоков байесовской модели.
Этот пакет вероятностного программирования для Python позволяет пользователям подбирать байесовские модели с использованием различных численных методов, в первую очередь метода Монте-Карло с использованием цепи Маркова (MCMC) и вариационного вывода (VI). Вместо с базовой спецификацией модели и функциями подбора, PyMC3 включает функции для суммирования выходных данных и диагностики модели.
PyMC3 стремится сделать байесовское моделирование максимально простым и безболезненным, позволяя пользователям сосредоточиться на своей научной проблеме, а не на методах, используемых для ее решения. Пакет использует Theano в качестве вычислительного бэкэнда, чтобы быстро оценивать выражение, автоматически вычислять градиент и выполнять вычисления на графическом процессоре.
Также PyMC3 имеют встроенную поддержку моделирования гауссовых процессов, позволяя обобщать модели и строить графики. Есть проверка модели и обнаружение сходимости, пользовательские пошаговые методы и необычные распределения вероятностей. Полученные с помощью PyMC3 байесовские модели можно встраивать в более крупные программы, а результаты анализировать любыми средствами Python.
https://medium.com/@akashkadel94/bayesian-statistics-overview-and-your-first-bayesian-linear-regression-model-ba566676c5a7
🔥2
🥳 Все ждали и это свершилось!

🚨Я продолжаю серию митапов про Data Science в городских и геосервисах, логистике, и технологиях умных городов.

🗓 25 января в 18:30 МСК состоится первая в этом году онлайн-встреча Citymobil Data Meetup!

Вас ждут новые гости и новые интересные доклады.

🚕 Олег Стрельников Руководитель команды Data Quality в Ситимобил «Как мы качество данных проверяем»

Расскажет про выбор фреймворка для DataQuality, что от него ждали и почему остановились на GreatExpectations. Покажет, как встроили его в архитектуру DWH, с какими проблемами столкнулись и как их побороли.

☎️ Максим Шевченко Ведущий ML разработчик в МТС BigData «Проверка гипотезы валидности таргетинга в наружной рекламе»

Маркетологи часто таргетируют наружную рекламу не только по геопризнаку, но и по социально-демографическим сегментам и интересам. При этом, исходят из предположения, что, например, по разным дорогам ездят разные люди – есть дороги, по которым в большей степени ездят высокодоходные клиенты, люди более старшего возраста и т.д. Действительно ли это так? Слушатели узнают про интересный и одновременно простой способ проверки некоторых гипотез и о том, как его можно использовать в других реальных задачах.

После докладов спикеры ответят на все ваши вопросы.

Регистрация для бесплатного участия

https://citymobil.timepad.ru/event/1904978/
💥5 англоязычных YOUTUBE-каналов для дата-инженера от популярных DS-блогеров
• Ken Jee https://www.youtube.com/c/KenJee1/videos - 183 тысячи подписчиков и около 200 видео про Data Science, инженерию больших данных, ML и аналитику в спорте
• Karolina Sowinska https://www.youtube.com/c/KarolinaSowinska/videos 30+ тысяч подписчиков и почти 60 отличных роликов про AirFlow, ИИ, ETL и карьеру дата-инженера;
• Shashank Mishra https://www.youtube.com/c/LearningBridge/video 40+ тысяч подписчиков и более 150 видео о буднях дата-инженеры, отзывы о DS-курсах, рекомендации по прохождению интервью и личный опыт автора, работавшего в Amazon, McKinsey&Company, PayTm и других крупных корпорациях, а также в стартапах.
• Seattle Data Guy https://www.youtube.com/c/SeattleDataGuy/videos почти 20 тысяч подписчиков и более 100 видео про soft и hard skills дата-инженера, лайфхаки для решения ежедневных задач по сбору и агрегации данных с помощью Python и не только, лучшие практики SQL, введение в R и еще много всего интересного/
• Andreas Kretz https://www.youtube.com/c/andreaskayy/videos около 27 тысяч подписчиков и более 500 роликов ванильные и проприетарные Hadoop, Spark, Kafka, сервисы AWS и другие облачные платформы, основы ETL, тонкости установки и практического использования разных технологий Big Data и особенности профессии дата-инженера.
👍1
🏸Комбо Zingg + TigerGraph для удаления дублей и графовой аналитики больших данных
Графовые базы данных со встроенными шаблонами связей отлично подходят для устранения неоднозначности записей и разрешения сущностей. Например, TigerGraph – мощная система графовой аналитики. А если дополнить ее открытым ML-инструментом Zingg (https://github.com/zinggAI/zingg), можно найти дублированные и неоднозначные записи еще быстрее.
Например, один и тот же человек в разных системах записан по-разному. Поэтому проанализировать его пользовательское поведение, например, для генерации персонального маркетингового предложения или включения в программы лояльности, очень сложно. Zingg, имеют встроенные механизмы блокировки, которые вычисляют попарное сходство только для выбранных записей. Это сокращает время вычислений и помогает масштабироваться на большие наборы данных. Не нужно беспокоиться об связывании-группировке записей вручную: об этом позаботится внутренняя структура разрешения сущностей. Так с Zingg и TigerGraph можно объединить лучшее простое и масштабируемое разрешение сущностей и дальнейший анализ графа.
https://towardsdatascience.com/entity-resolution-with-tigergraph-add-zingg-to-the-mix-95009471ca02
🙌🏻LaMDA: безопасная, объективная и высококачественная языковая модель от Google AI
LaMDA
создается путем точной настройки семейства нейронных языковых моделей на основе Transformer, специализированных для диалога, с параметрами модели до 137B и обучения моделей использованию внешних источников знаний. LaMDA преследует три ключевые цели:
• Качество (Quality), которое измеряется через Разумность (Sensibleness), Специфичность (Specificity) и Интересность (Interestingness). Эти показатели оцениваются людьми. Разумность говорит о наличии смысла в контексте диалога, например, отсутствие со стороны ML-модели абсурдных ответов и противоречий с более ранними ответами. Специфичность показывает, является ли ответ системы специфичным для контекста предыдущего диалога. Интересность измеряет эмоциональную реакцию собеседника на ответы ML-модели.
• Безопасность (Safety), чтобы ответы модели не содержали оскорбительных и опасных высказываний.
• Объективность (Groundedness) – современные языковые модели часто генерирует утверждения, которые кажутся правдоподобными, но на самом деле противоречат истинным фактам во внешних источниках. Объективность определяется как процент ответов с утверждениями о внешнем мире, которые могут быть подтверждены авторитетными внешними источниками. Родственная метрика, Информативность (Informativeness), определяется как процент ответов с информацией о внешнем мире, которая может быть подтверждена известными источниками.
Модели LaMDA проходят двухэтапное обучение: предварительное обучение и тонкая настройка. Первый этап выполнен на наборе данных из 1,56 тыс. слов из общедоступных данных диалогов и публичных веб-документов. После токенизации набора данных в 2,81T токенов модель была обучена предсказывать каждый следующий токен в предложении с учетом предыдущих. Предварительно обученная модель LaMDA также широко использовалась для NLP-исследований в Google, включая синтез программ, обучение с нулевым выстрелом и пр.
На этапе тонкой настройки LaMDA обучается комбинировать выполнение генеративных задач для создания ответов на естественном языке в заданных контекстах и задач классификации чтобы определить безопасность и качество модели. Так получается единая многозадачная модель: генератор LaMDA обучен прогнозировать следующий токен в наборе данных диалога, а классификаторы обучены прогнозировать оценки безопасности и качества ответа в контексте с использованием аннотированных данных.
Результаты тестирования показали, что LaMDA значительно превосходит предварительно обученную модель в каждом измерении и любом масштабе. Показатели качества улучшаются с увеличением количества параметров модели, с тонкой настройкой и даже без нее. Безопасность не улучшается только за счет масштабирования модели, но компенсируется при точной настройке. Объективность улучшается по мере роста размера модели, благодаря способности запоминать необычные знания. А точная настройка позволяет модели получать доступ к внешним источникам и эффективно переносить на них часть нагрузки по запоминанию знаний. С помощью точной настройки разрыв качества с человеческим уровнем может быть сокращен, хотя производительность модели остается ниже человеческого уровня в плане безопасности и объективности.
https://ai.googleblog.com/2022/01/lamda-towards-safe-grounded-and-high.html
сравнение метрик LAMDA с человеческими оценками
👀Повышаем разрешение в видеоиграх с DLDSR от NVIDIA
DLDSR (Deep Learning Dynamic Super Resolution)
– технология улучшения картинки в видеоиграх, которая использует многослойную нейросеть, требующую меньше пикселей. DLDSR с коэффициентом разрешения 2.25X сопоставим по качеству с 4X-разрешением технологии предыдущего поколения DSR. При этом производительность DLDSR намного выше благодаря тензорным ядрам видеокарт RTX, которые ускоряют нейросети в несколько раз. Попробовать DLDSR можно на своем игровом компьютере, обновив драйвер видеокарты и выставив нужные настройки.
https://ru.blogs.nvidia.com/blog/2022/01/14/uluchshaem-proizvoditelnost-s-dldsr/
☄️Друзья! 1 марта в NewProLab стартует флагманский 12-недельный онлайн-курс "Специалист по большим данным".

А это значит, вас вновь ждет самая глубокая и объемная программа на рынке Big Data, заслужившая множество восторженных отзывов!

👉Оставляйте заявку и задавайте вопросы: https://clck.ru/apR8H 👈

Вы:
☑️Владеете основами Python?
☑️Уже умеете создавать SQL-запросы?
☑️ Знакомы с прикладными понятиями мат. анализа и линейной алгебры?
☑️Понимаете базовые операции ОС Linux?

Тогда мы приглашаем вас систематизировать текущие навыки и получить полное практическое руководство для подготовки собственных полноценных проектов.

Вы научитесь: строить модели машинного обучения, писать MapReduce-джобы, используя Hadoop Streaming и Python, работать с данными на HDFS, проводить анализ при помощи Apache Spark, строить алгоритмы рекомендательных систем.
❗️И все это на реальных дата-сетах и живых бизнес-кейсах с преподавателями и нетворком в сообществе единомышленников❗️

Эту программу уже прошли более 300 дата аналитиков и разработчиков. Присоединяйтесь и вы!
🌦Новогодняя спячка закончилась, пора выбираться на конференции, митапы и прочие DS-события. Февральский дайджест 2022:
1. 1 февраля в 12.00 МСК - онлайн-конференция «Цифровизация нефтегазовой отрасли: инструменты повышения доходности, эффективности и безопасности» https://www.tbforum.ru/vizit
2. 2 февраля в 16:00 МСК Online-митап компании «Синимекс» по работе с PostGIS, Hadoop и Spark: разбор реальных бизнес-кейсов и технологическая начинка https://www.cinimex.ru/meetup/
3. 3 февраля в 16:00 МСК Online-митап Яндекс.Cloud «Как и для чего решать задачи сбора, репликации и интеграции данных» https://cloud.yandex.ru/events/479
4. 10 февраля в 10:00 МСК - конференция "Искусственный интеллект 2022" от CNews https://events.cnews.ru/events/iskusstvennyi_intellekt_2022.shtml
5. 10 февраля в 11:00 МСК - онлайн-конференция «Интеллектуальное видеонаблюдение и машинное зрение в системах безопасности на крупных объектах» в рамках форума «Технологии безопасности 2022» https://www.tbforum.ru/vizit
6. 12 февраля в 10:00 МСК - New IT Fest: онлайн-фестиваль информационных технологий от Accenture: кейсы по внедрению ML, DS, AI решений https://newitfest.ru/
7. 16 февраля в 10:00 МСК – офлайн-конференция «Качество данных 2022» - по стратегиям и практикам обеспечения качества данных, гарантирующего высокий уровень сервисов и бизнес-процессов. Москва, Отель Palmira Business Club https://www.osp.ru/static/2021121039
8. 17 февраля в 11:00 МСК - Forum.Digital Telecom 2022 - II ежегодная онлайн-конференция по цифровой трансформации телекоммуникационной отрасли https://forum.digital/telecom2022
9. 17-18 февраля - OpenTalks.AI – 5-я ведущая независимая открытая конференция по ИИ в России: лучшие российские докладчики по ML/DL на одной площадке. Конференция пройдет в оффлайне, но с ограниченным количеством участников. Начало 17.02.2022 в 10:00, Москва, Конференц-зал гостиницы "Космос" , Проспект Мира, 150. https://opentalks.ai/
10. 28 февраля Citymobil Data Meetup №7 https://citymobil.timepad.ru/events/
🚗Роботы-курьеры Яндекса в Сеуле
Еще в прошлом году автономные роботы-курьеры Яндекса начали доставлять заказы в России, еду из ресторанов в американском городе Энн-Арбор в штате Мичиган и другие студенческие кампусы США. А в январе 2022 Яндекс заключил соглашение о намерениях с крупной южнокорейской телекоммуникационной компаний KT Corporation на доставку автономными роботами в Сеуле. Так уже в этом году Южная Корея станет первой страной в Восточной Азии, где работают роверы Яндекса. Также компания готовится запустить эту технологию в Дубае.
https://yandex.ru/company/press_releases/2022/2022-01-18
🎂Terality - сверхбыстрый serverless-движок вместо медленного Pandas
Terality
— это бессерверный механизм обработки данных, работающий на гигантских кластерах для работы с наборами данных любого размера. Благодаря парадигме serverless можно не беспокоиться о масштабировании ресурсов в кластерах или прочей инфраструктуре: практически нет ограничений на память, а значит, и на размер набора данных. Для работы нужно только хорошее подключение к Интернету для обработки сотен ГБ, даже на простом офисном ноутбуке с 4 ГБ ОЗУ. Terality позволяет запускать код Pandas в 10 раз быстрее: синтаксис Terality аналогичен Pandas. Достаточно изменить лишь одну строку кода, чтобы переключиться с Pandas на Terality:
import teratiyu as te.
Пакет Python отправляет HTTPS-запросы движку Terality, когда вы вызываете функции Pandas. Механизм обрабатывает данные и команду и возвращает результат. Однако, Terality – это не просто Python-пакет, а freemium-ПО с бесплатным планом на 1 ТБ. При этом учитывается каждый вызов API, а не только чтение данных.
https://docs.terality.com/
https://towardsdatascience.com/good-bye-pandas-meet-terality-its-evil-twin-with-identical-syntax-455b42f33a6d
🥁🥁Undouble - Python-библиотека для обнаружения дубликатов изображений с помощью хеш-функций
Поиск идентичных или похожих фотографий вручную – долгая и утомительная задача. Ее не решить просто сравнением размера и имени файлов, т.к. фото берутся из разных источников (мобильные устройства, приложения для социальных сетей и пр.), что приводит к различиям в этих атрибутах и создает разницу в разрешении, масштабировании, сжатии и яркости. Хеш-функции идеально подходят для обнаружения идентичных и похожих фото из-за устойчивости к незначительным изменениям. На этой идее основана Undouble - Python-библиотека, которая работает с использованием многоэтапного процесса предварительной обработки изображений (оттенки серого, нормализация и масштабирование), вычисления хэша изображения и группировки изображений. Порог 0 будет группировать изображения с идентичным хешем изображения. Результаты можно легко изучить с помощью функции построения графика, а изображения можно перемещать с помощью функции перемещения. При перемещении изображений копируется изображение из группы с наибольшим разрешением, а все остальные изображения перемещаются в подкаталог «undouble».
Чтобы попробовать эту библиотеку c открытым кодом (https://github.com/erdogant/undouble), ее сперва надо установить: pip install undouble, затем импортировать пакет в свой проект: from undouble import Undouble. Затем, установив метод хэширования и размер хэша, можно выявляться дубли с помощью undouble. При этом выполняются следующие шаги: рекурсивное чтение всех изображений из каталога с указанными расширениями, вычисление хэша и группировка похожих изображений.
Пример с объяснениями смотрите здесь: https://towardsdatascience.com/detection-of-duplicate-images-using-image-hash-functions-4d9c53f04a75
😜Как создать исполняемый файл из py-скрипта?
Хотя можно запустить Python-скрипт в терминале или текстовом редакторе, иногда нужно скрыть весь код в py-файле, обернув его внутрь исполняемого файла (.exe). Например, чтобы запланировать задание, которое запускает исполняемый файл в определенное время. Это можно сделать 2-мя способами:
• через GUI пакета auto-py-to-exe (https://pypi.org/project/auto-py-to-exe/), который сперва следует установить через pip install auto-py-to-exe, затем запустить и последовательно выполнить 4 шага.
• в терминале с библиотекой PyInstaller, которую тоже следует сперва установить: pip install pyinstaller, а затем перейти в каталог с нужным py-файлом и создать на его основе исполняемый с помощью команды pyinstaller --onefile name_of_script.py
По сути, первый способ представляет собой визуализацию 2-го в наглядном GUI. А те, кто работает с CLI-интерфейсом могут сразу использовать PyInstaller безо всяких дополнительных оберток.
https://towardsdatascience.com/how-to-easily-convert-a-python-script-to-an-executable-file-exe-4966e253c7e9