Регулярно требуется преобразовать какой-либо текст в максимально совместимый текст для 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
⚡️MedGemma: открытые ИИ-модели для медицины от Google.
Google Research продолжают развивать свою линейку специализированных медицинских ИИ-моделей, представив два важных пополнения: MedGemma и MedSigLIP.
Это серьезное пополнение экосистемы открытых и доступных инструментов для здравоохранения. Разработчики предлагают мощные базовые модели, которые можно дообучать и запускать на собственном железе, даже на потребительском GPU.
🟡Флагман релиза MedGemma - 2 мультимодальные модели на 4 и 27 миллиардов параметров на основе Gemma 3.
Младшая, 4-миллиардная версия, показывает себя как один из лучших открытых «малышей» (<8B), а после дообучения достигает SOTA в генерации отчетов по рентгеновским снимкам. В ходе одного из тестов 81% сгенерированных ею заключений были признаны сертифицированными радиологами достаточно точными.
Старшая, на 27 миллиардов, в текстовой версии, на бенчмарке MedQA набрала 87.7%. Это всего на 3 пункта ниже DeepSeek R1, но при этом модель требует в 10 раз меньше ресурсов для инференса.
🟡Глазами для MedGemma служит MedSigLIP - легковесный (всего 400М параметров) энкодер изображений.
Его задача - классификация, поиск и другие задачи со структурированным выходом. Он был создан адаптацией общей модели SigLIP на огромном массиве медицинских данных (от рентгена до гистологии и снимков глазного дна).
🟡Ключевая особенность и MedGemma, и MedSigLIP в том, что при специализации они не растеряли своих общих знаний.
Они по-прежнему понимают немедицинский контекст и умеют работать с разными языками, что подтвердили исследователи из Тайваня, успешно применявшие модель в связке с литературе на традиционном китайском.
📌Лицензирование: Health AI Developer Foundations.
🟡Страница проекта
🟡Набор моделей
🟡Документация
🟡Arxiv
🟡Demo
@ai_machinelearning_big_data
#AI#ML#LLM#MedGemma#MedSigLIP#Google
ИИ-доктор в кармане: как стартапы вроде Death Clock меняют превентивную медицину (и что с этим не так)
Пока одни ИИ-модели соревнуются в генерации картинок, другие нацелены на самую ценную область — наше здоровье. Яркий пример — американский стартап Death Clock с их сервисом Life Lab.
В чем суть?
Life Lab — это персональный ИИ-консультант по долголетию, встроенный в приложение. Система:
1. Агрегирует данные: подключается к тысячам лабораторий, импортирует медкарты, учитывает образ жизни.
2. Считает возраст и риски: на основе исследований вычисляет биологический возраст и прогнозируемую дату смерти (да, именно это и есть их «визитная карточка» — Death Clock).
3. Дает рекомендации: формирует персонализированный план по питанию, добавкам и привычкам для снижения рисков и продления здоровой жизни.
Их цель — сделать превентивную медицину максимально простой и доступной.
Другие примеры на подходе:
* ChatGPT Health (от OpenAI): Пока только в тестировании у врачей, но это шаг к тому, чтобы ИИ-ассистент стал первым пунктом консультации. Модель должна уметь анализировать симптомы, расшифровывать анализы и диалогом вести к диагнозу.
* K Health: Использует ИИ на основе данных миллионов медкарт для первичной оценки состояния.
* Your.MD: AI-симптомчекер и навигатор по системе здравоохранения.
Что важно помнить?🔍
За кажущейся простотой и технологичностью скрываются серьезные вопросы:
➡️Качество данных и исследований: На чем именно основаны прогнозы и советы? Многие методики расчета биовозраста и рекомендаций по долголетию все еще являются областью активных (и коммерциализированных) споров.
➡️Юридическая и этическая ответственность: Кто виноват, если совет ИИ приведет к проблемам? Пока это серая зона.
➡️Риск гипердиагностики и тревожности: Постоянный мониторинг и «цифры смерти» могут скорее навредить ментальному здоровью, чем помочь.
Контекст и важные ссылки:
➡️Я уже подробно разбирал риски слепого доверия медицинскому ИИ в этом посте: Осторожно: как ошибки ИИ в медицине могут стоить здоровья
➡️А здесь анализировали другой подход — мощную специализированную модель от Google для профессионалов, которая работает оффлайн и точнее: Google выпустила MedGemma 1.5
Вывод:
Такие сервисы, как Death Clock, — это мощный драйвер для осознанности и перехода от «медицины лечения» к «медицине предупреждения». Но они остаются инструментами для информирования, а не для постановки диагноза. Их рекомендации — это гипотезы, которые должен проверять и одобрять ваш лечащий врач. Главное правило: Data-Driven, но Doctor-Approved.
Полезные ссылки по теме (англ.):
➡️Анонс Life Lab от Death Clock
➡️Исследование о возможностях и ограничениях ИИ в предиктивной медицине (Nature)
#ИИ_в_медицине#DigitalHealth#превентивная_медицина#HealthTech#DeathClock#ChatGPT#MedGemma#долголетие
https://t.me/semasci