Регулярно требуется преобразовать какой-либо текст в максимально совместимый текст для 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
#анонс#вебинар#ABA
❗️КАК РАБОТАТЬ С ТРУДНОСТЯМИ ПОВЕДЕНИЯ У ДЕТЕЙ С ОТКЛОНЕНИЯМИ. 4 ЭТАПА РАБОТЫ ПО МЕТОДИКЕ АВА
Практикум с разбором кейсов 27 апреля в 19:00 по Мск!
➡️Пройти регистрацию можно по ссылке: https://clck.ru/gdDfV
Поведенческий аналитик из Калифорнии поделится своим 20-летним опытом, а руководитель реабилитационного центра в Новосибирске Светлана Кондренкова расскажет о применении метода АВА в России!
✅После встречи вам станет понятно, как:
- специалисту действовать в случаях нежелательного поведения со стороны ученика;
- наблюдать и анализировать поведение ребенка;
- применять позитивный подход в коррекции нежелательного поведения;
- предупредить плохое поведение.
Не упустите возможность поучаствовать в разборе видеоматериалов, на которых показана работа поведенческого аналитика с трудным ребенком!
Каждый участник встречи получит в конце эфира подарок — памятку «Как построить отношения сотрудничества с родителями».
➡️Зарегистрироваться: https://clck.ru/gdDfV
Увидимся на практикуме 27 апреля в 19:00
#анонс#вебинар#ABA
❗️ «КАК СОСТАВИТЬ ПЛАН КОРРЕКЦИИ АГРЕССИВНОГО ИЛИ ПОЛЕВОГО ПОВЕДЕНИЯ РЕБЁНКА. 4 ЭТАПА КОРРЕКЦИИ ПО МЕТОДИКЕ АВА»
Ольга Шаповалова, поведенческий аналитик из Калифорнии, начнет прямой эфир 19 апреля в 19:00 мск!
➡️Зарегистрироваться: https://clck.ru/fb8ng
🔹Спикер вебинара: Ольга Шаповалова - специалист АВА, сертифицированный поведенческий аналитик ВСВА;
магистр наук области Прикладного анализа поведения; опыт преподавательской деятельности – 20 лет.
Что делать специалисту, чтобы скорректировать негативное поведение ученика🤔?
В процессе коррекционного вмешательства следует одновременно применять следующие методики:
✅предупредительные
✅поддерживающие
✅обучающие
✅реактивные
⏳О том, как применять эти методики в работе Ольга Шаповалова расскажет на практикуме. Приходите на эфир, чтобы поучаствовать в разборе кейса и узнать больше о позитивном подходе в коррекции полевого поведения!
Встреча бесплатная, но нужно зарегистрироваться по ссылке👉https://clck.ru/fb8ng
До встречи 19 апреля в прямом эфире!
Только30% тьюторов используют методы прикладного анализа поведения
Из доклада Марины Мантлер:
- слайды выше и в комментариях.
- разница между тьютором и поведенщиком:
Тьютор - имеет профстандарт и там есть 3 функции. Это ключевая единица построения инклюзивное системы. Он не просто "собирает данные". В его работе много творчества.
Тьютор это не только тот, что 1 к 1. Но ещё и тьютор, который сопровождает группу из 5-6 детей.
А ещё у него может не быть базы в АВА.
Поведенщик - сейчас принят к разработке профстандарт. Неизвестно, кем он станет после. Его функционал нам пока не известен, слишком много вариантов.
Опрос от августа 25, который прошло 325 человек показал, что:
- 70% используют ПАП редко или никогда
- 20% не знают, что такое ПАП
- мало времени на обучение и доступ к нему низкий
- методы известны, но единичные (как правило это визуальная поддержка, PECS, жетоны)
- используют методы только часть тех, кто их знает.
Видео от тьюторов, живая прямая речь:
- не хватает информации
- мы знаем о ПАП, но у меня 5-6 детей в разных классах, технически сложно или невозможно применять, особенно собирать данные
- нужны супервизоры
- нужно обучение
Мария Мантлер дала обратную связь по докладу Дарьи Ли-Романовой и Екатерины Ким. Она обратила внимание на то, что такая ювелирная работа с ребёнком с очень большим уровнем поддержки невозможна в школе. И тьюторам нужна помощь.
"Подскажите мне, где я не увидела. Дайте вовремя правильную подсказку специалисту. "
Блог "Тьютор в инклюзии" вырос из сообщества в мощный инструмент обучения, информирования и поддержки тьюторов, тьюторантов и их семей.
Цель сообщества - сделать профессию тьютора престижной и привлекательной.
Всем причастным советую почитать ❤️
#коллеги
#aba
#конференция
CW: ABA, signs of trauma.
I don’t normally do content warnings, but ngl: this one just hurts. Take care of yourself and scroll on by if you’re not in the right space for it. (And I promise I’ll make it up to you next week.)
#Autism#Autistic#ActuallyAutistic#ABA#banABAsource