TGTGInsighttelegram intelligenceLIVE / telegram public index
← Python Заметки

TGINSIGHT SIMILAR POSTS

Најди сличен содржај

Изворен канал @pythonotes · Post #121 · 20 јул.

Регулярно требуется преобразовать какой-либо текст в максимально совместимый текст для URL, имени файла, имени объекта в каком-то софте и тд. Требования совместимости простые: в тексте должны быть только допустимые символы. Обычно это a-z, 0-9 и "_" или "-". То есть, только прописные буквы латинского алфавита и цифры (как пример). Допустим, нам нужно название статьи в блоге преобразовать в slug для добавления его в URL этой статьи. Как это лучше всего сделать? В Django по умолчанию есть готовая функция slugify для таких случаев. Но я её никогда не использую. Почему? Потому что её недостаточно! Приведём пример >>> from django.utils.text import slugify >>> slugify('This is a Title') 'this-is-a-title' Пока всё отлично >>> slugify('This is a "Title!"') 'this-is-a-title' Спец символы удалились, всё хорошо. >>> slugify('Это заголовок статьи') '' Вот и приехали 😢. Если текст не английский то буквы просто игнорируются. Можно это поправить >>> slugify('Это заголовок статьи', allow_unicode=True) 'это-заголовок-статьи' Но тогда мы не вписываемся в условие. У нас появилась кириллица в тексте. Так как я часто пишу сайты для русскоязычных пользователей эта проблема весьма актуальна. Я не использую стандартную функцию и всегда пишу свою. Оригинал я не беру в расчёт и пишу полностью свою функцию. И так, по порядку: 🔸1. Исходный текст: >>> text = 'Мой заголовок №10 😁!' Взял специально посложней со специальными символами. 🔸2. Транслит Необходимо сделать транслит всех символов в латиницу. Здесь очень выручает библиотека unidecode. Помимо простого транслита кириллицы в латиницу она умеет преобразовывать спец символы и иероглифы в текстовые аналоги. from unidecode import unidecode >>> unidecode("Ñ Σ ® µ ¶ ¼ 月 山") 'N S (r) u P 1/4 Yue Shan' Очень крутая библиотека, советую👍 В нашем случае получаем такое преобразование: >>> text = unidecode(text) >>> print(text) 'Moi zagolovok No. 10 !' Отличный транслит. Смайл просто удалился, хотя я ждал что-то вроде :). Ну и ладно, всë равно невалидные символы. А еще наш код уже поддерживает любой язык, будь то хинди или корейский. 🔸4. Фильтр символов Unidecode не занимается фильтрацией по недопустимым символам. Это мы делаем в следующем шаге через regex. Просто заменим все символы на "_" если они вне указанного диапазона. >>> text = re.sub(r'[^a-zA-Z0-9]+', '_', text) >>> print(text) 'Moi_zagolovok_No_10_' Символ "+" в паттерне выручает когда несколько недопустимых символов идут рядом. Все они заменяются на один символ "_". 🔸5. Slugify Осталось удалить лишние символы по краям и сделать нижний регистр >>> text = text.strip('_').lower() >>> print(text) 'moi_zagolovok_no_10' Получаем отличный slug! 😎 🌎 Полный код в виде функции. ______________ PS. Проверку что в строке остался хоть один допустимый символ я бы вынес в отдельную функцию. #libs#tricks#django

Резултати

Пронајдени 1 слични објави

Пребарај: #perch

当前筛选 #perch清除筛选
Machinelearning

@ai_machinelearning_big_data · Post #8288 · 16.08.2025 г., 12:01

🎧 Perch 2.0 — AI, который слушает природу и спасает вымирающие виды. DeepMind выпустили Perch 2.0 — компактную supervised-модель для биоакустики. Без миллиардов параметров, без сложного self-supervised обучения — просто аккуратная модель, которая побила все бенчмарки и уже работает в полевых исследованиях. 🌱 Почему это важно Звуки природы — это источник данных о биоразнообразии. По аудиозаписям можно понять: - какие животные живут в лесу, - сколько их, - размножаются ли они, - не вытесняются ли они человеком. Но расшифровка аудио — адский труд: в одном часе записи из тропиков десятки накладывающихся голосов. 🐦Что умеет Perch 2.0 Perch 2.0 — универсальный эмбеддер для звуков животных. Берёт 5 секунд аудио → выдаёт вектор, с которым можно: - находить похожие записи, - кластеризовать звуки, - обучать простой классификатор для новых видов (few-shot). ⚡ Работает без GPU и без дообучения. 🛠 Архитектура - Основa: EfficientNet-B3 (12M параметров). - Три головы: 1. Классификация ~15k видов. 2. Прототипная — создаёт семантические логиты для distillation. 3. Source prediction — угадывает источник записи. - Обучение в два шага: 1. Прототипная голова учится сама. 2. Её логиты становятся soft-label’ами для основной (**self-distillation**). 📊 Результаты - SOTA на BirdSet и BEANS (ROC-AUC, mAP). - Отличная переносимость на морских данных (киты, дельфины), которых почти не было в тренировке. - Всё это — без fine-tuning, только фиксированные эмбеддинги. Главный вывод Perch 2.0 показывает, что: 🟢 качественная разметка, 🟢 простая архитектура, 🟢 чёткая постановка задачи могут быть важнее, чем «бесконечные параметры» и сложные LLM. 🌍 Что это меняет - Биологам — быстрый анализ джунглей Бразилии или рифов без написания своих моделей. - ML-инженерам — наглядный пример, как обучать компактные сети без потери качества. - Исследователям — напоминание: не всегда нужен GPT-4, чтобы сделать полезный инструмент. 🟠Github: https://github.com/google-research/perch-hoplite 🟠Подробнее: https://deepmind.google/discover/blog/how-ai-is-helping-advance-the-science-of-bioacoustics-to-save-endangered-species/ 🟠Статья: http://arxiv.org/abs/2508.04665 @ai_machinelearning_big_data #DeepMind#AI#Bioacoustics#MachineLearning#Perch#Ecology