Регулярно требуется преобразовать какой-либо текст в максимально совместимый текст для 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
🤝 Друзья, коллеги, нетворк!
В рамках партнёрской инициативы 🖇Startech.vc совместно с ⭐ AISummit и
⚡️@iGlobalCom у нас для вас 6 пригласительных на церемонию награждения Awards.Startech.vc в ВЭБ Центре 13.09.2024.
Пригласительные 🖇Startech получат те 6 участников ⭐AIsummit.ru, кто воспользуется промокодом iGlobal50 на сайте AISummit.ru для приобретения билета.
Для получения промокодов, если Вы заинтересованы, обратитесь в личные сообщения или тэгните в @iGlobalChat Сашу Бреус @AlexandraBreus.
💡 Как воспользоваться предложением:
1. Перейдите на сайт ⭐AISummit.ru и выберите билеты
2. Введите промокод iGlobal50 при оформлении билета, и Вы получите 50% OFF (скидку)
3. После оплаты участия с 50% скидкой пришлите скриншот своего билета в лс @AlexandraBreus, и в ответ Вы получите свой пригласительный на церемонию награждения 🖇awards.startech.vc.
📍⭐AIsummit.ru 11 — 12 сентября
и 🖇Awards.Startech.vc 13 сентября пройдут на одной площадке в Москве, ВЭБ Центр, Новинский бульвар 31.
✨ Не упустите шанс стать частью главного события осени в Москве по теме практики и юзкейсов применения AI сегодня и встретиться с лидерами индустрии для максимально качественного нетворкинга!
#AISummit#iGlobal#StartechAwards#Промо#партнерскийпост
На саммите L’Action pour l’IA обсуждали не только инвестиции и технологии, но и риски, которые несет ИИ. Подмена реальности, автоматизация рабочих мест, манипуляции общественным мнением — все эти вопросы стали главными темами дискуссий.
Франция делает ставку на «разумное регулирование»: ИИ должен помогать людям, но не заменять их полностью. Париж предлагает жесткие законы по защите авторских прав и персональных данных, что должно предотвратить монополизацию технологий крупными корпорациями.
«Мы ускоряем инновации, но не отказываемся от наших ценностей. Человек останется в центре цифровой революции», — заявил Макрон.
Важный момент: Франция против бездумного копирования китайской и американской модели. В США ИИ — это бизнес-актив, в Китае — инструмент госконтроля. В Европе же хотят создать «гибридную модель», которая обеспечит и развитие технологий, и соблюдение прав человека.
На фоне проблем с регулированием ИИ во всем мире Франция предлагает собственные решения.
Вопрос только в том, готовы ли другие страны принять эту модель?
61 страна, включая Китай 🇨🇳 , подписали итоговую декларацию парижского саммита и согласились на «открытый, инклюзивный и этичный искусственный интеллект».
Однако подписи США и Великобритании в этом документе отсутствуют, как результат противоречий. Но Европа 🇪🇺 едина и ее поддерживает Индия 🇮🇳.
#такиедела#ИИ#технологии#Франция#AIsummit
@nobody_cares_but
Когда ЛЮДИ перестанут бояться РОБОТОВ 🤖?
Вопрос, который звучал на каждом углу на AI SUMMIT, грандиозном форуме, посвященном инновационным технологиям и их влиянию на нашу жизнь.
Под эгидой организатора этого замечательного мероприятия, @tatyanabenua Татьяны Бенуа, великие умы собрались, чтобы обсудить будущее искусственного интеллекта.
И я, задав этот вопрос директору центра робототехники Сбера, Алексею Гонноченко, получил на него неожиданный ответ.
Ведь робототехника - это не только сфера технологий, но и психологии. В своем ответе он рассказал, как с каждым годом роботы становятся все более частью нашей повседневной жизни, помогая нам в самых разных сферах - от медицины до финансов.
Именно на AI SUMMIT мы видим, как этот процесс становится все более неотъемлемой частью нашего будущего.
Но вернемся к вопросу - когда же мы перестанем бояться роботов? Может быть, ответ кроется в осознании их потенциала и того, как они могут улучшить нашу жизнь. А может быть, все дело в принятии того факта, что они уже давно с нами, и лучше начать использовать их возможности в нашу пользу.
Форум AI SUMMIT стал не только местом обсуждения самых передовых разработок, но и отличной площадкой для нетворкинга и обмена идеями.
Спикеры были на высшем уровне, а атмосфера просто не передаваема словами. Подводя итог, хочется сказать: спасибо, @tatyanabenua Татьяна, за этот великолепный форум, и продолжайте в том же духе, а мы будем рядом и поможем! #AIsummit#инновации#робототехника#будущее#бизнес#ии#ai
Да снова потребовалось много времени, но лучше поздно чем никогда. Не очень большой, но всё же довольно разврнутый репортаж с впечатлениями и выводами с ИИ саммита в Париже 🇫🇷
Кому интересно и есть 18 минут времени, ссылка на видео тут 👉🏽жми сюда
Буду рад мнениям в комментариях как в чате так и под видео 💭
#AIsummit#Франция#гражданингорожанин#ютуб#влог
@nobody_cares_but
⚡️#партнерскийпост
📅Уже в этот Чт, 27.11, приглашаем всех, кто в Москве, на ⭐️AISummit.ru.
Александра Бреус, младший партнёр ⚡️@iGlobalCom, @iGlbalChat и директор коммерческой вертикали 👍 Totem mobile ad platform, поделится практическим опытом и актуальными данными о применении AI в рекламе — в том числе на примере решений Totem.
🔎 В программе выступления:
• как ML оптимизирует RTB и ускоряет обучение рекламных кампаний;
• как AI усиливает персонализацию и адаптацию креативов в реальном времени;
• где и как AI-ассистенты уже упрощают работу баеров в запуске и управлении размещением;
• как будет развиваться рынок AI в маркетинге в ближайшие годы — на основе Gartner Hype Cycle, отчётов McKinsey и IDC.
📌 Короткий тизер по данным из исследования:
Глобальный рынок AI в маркетинге продолжает расти и, по прогнозам Market US и Salesforce, достигнет $214 млрд к 2033 году — поэтому автоматизация ставок, персонализация и AI-ассистенты уже становятся отраслевым стандартом, а не экспериментами.
🎟 Промокод: iGlobal50 — скидка 50% на участие.
#AISummit#AISummit2025#AdTech#AI#Маркетинг#iGlobal#TechEvents
Вопросы, комментарии, дополнения — смело пишите в ⚡️@iGlobalChat.
p.s. от лица сообщества выражаем благодарность Татьяне Бенуа ⭐@tatyanabenua за возможность поделиться опытом среди глав компаний, владельцев бизнеса и разработчиков IT-решений