Регулярно требуется преобразовать какой-либо текст в максимально совместимый текст для 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
🚀 ИИ-ВЗРЫВ: 11–14 июля 2025 — только факты, максимум эмоций
🔥 Специально для наших подписчиков — подкаст новостей ИИ от самого ИИ. Не просто текст, а живой голос и драйв! Включайте в дороге — и будьте в курсе главного за неделю.
Китай рвёт рынок! Kimi K2 от Moonshot — новая супер-модель: обошла западных гигантов, открытый код, минимализм без “словесного мусора”.
Grok-4 от xAI — вроде бы топ, но… 4% ответов про Илона Маска, баг “Heavy” взорвал форум (AI отвечает только “Heavy” — баг или искусство?).
Meta строит дата-центр мощнее Гувера: 5 ГВт ради одной мечты — сделать ИИ ещё умнее, быстрее, больше.
OpenAI нервничает: релиз open-source модели задержан, инсайдеры говорят — китайский успех Kimi K2 застал врасплох.
Perplexity атакует Google: их браузер Comet делает всё за пользователя. Гугл в шоке.
Тренды недели:
Молодые команды — на вершине. Старым гигантам пора паниковать?
Энергия и “железо” — новое поле битвы.
Агентные ИИ — не фантастика, а новая реальность.
Open-source умеет удивлять (и пугать конкурентов).
Полный разбор с деталями — в файле над постом выше.
Экономим вам 1343 минуты мониторинга: 189 сабреддитов, 449 твиттеров, 29 Discord — всё уже отсмотрено.
#ИИ#Новости#Moonshot#KimiK2#Grok4#Meta#OpenAI
DeepSeek R2: Ожидание затягивается.. ⏳
Ждали в апреле-мае релиза DeepSeek R2 (наш пост от апреля)?
преемника невероятно популярной модели R1, обещавшего революцию в кодинге и неанглоязычных рассуждениях.
Но, похоже, придется подождать дольше.
Что случилось?
Гендиректор DeepSeek Лян Вэньфэн недоволен результатами R2: модель пока не соответствует внутренним стандартам качества компании и сроки релиза снова не определены.
Технические сложности: Быстрому запуску могут помешать не только требования к качеству, но и острая нехватка серверных чипов Nvidia в Китае из-за американских санкций. Облачные провайдеры опасаются, что спрос на мощную R2 может превысить их текущие возможности.
Почему R2 так ждут? Потому что R1 – настоящий феномен!
➡️Майское обновление R1 (R1-0528) показало феноменальный прогресс в генерации кода! По данным LiveCodeBench, она вплотную приблизилась к топовым моделям OpenAI и обошла Grok 3 mini и Qwen 3!
➡️В феврале DeepSeek Chat привлек 524.7 млн посещений, обогнав ChatGPT и став самым быстрорастущим ИИ-инструментом в мире с долей рынка 12.12%!
➡️Пока DeepSeek шлифует R2, Илон Маск анонсировал релиз Grok 4 "вскоре после 4 июля" (ранее известная как Grok 3.5).
Что это значит?
DeepSeek явно не хочет выпускать "сырой" продукт, особенно на фоне успеха R1 и растущей конкуренции. Они стремятся сделать R2 по-настоящему прорывной. Однако задержки и проблемы с "железом" (чипы Nvidia) добавляют неопределенности.
Ждать ли нам R2 этим летом? Или осенью? Делитесь мнениями в комментариях!
#DeepSeek#DeepSeekR2#DeepSeekR1#ИскусственныйИнтеллект#ИИ#AI#Китай#Nvidia#Чипы#Reuters#TheInformation#Grok4#xAI#LiveCodeBench#Нейросети#БольшиеЯзыковыеМодели#LLM#NvidiaH100#Санкции
https://t.me/semasci
📊 AI-автоматизация на страже новостей!
За период 07.07.2025 – 10.07.2025 наша система автоматически проанализировала для вас:
191 топовый сабреддит
449 Twitter-аккаунтов
29 Discord-серверов (226 каналов, 12 761 сообщений)
⏳ Экономия вашего времени:
Если бы вы читали это вручную со скоростью 200 слов в минуту, ушло бы целых 806 минут — а так, всё самое важное уже собрано в одном месте!
tags:
companies #xai#perplexityai#langchain#cursor#cline
models #grok4#grok4heavy#claude4opus
topics #modelreleases#benchmarking#longcontext#modelpricing#modelintegration#voice#performance#scaling#gpuoptimization
people’s #elonmusk#aravsrinivas#igorbabuschkin#yuchenj_uw