Регулярно требуется преобразовать какой-либо текст в максимально совместимый текст для 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
✨Наша цифровая лаборатория получила новые сертификаты!
С радостью сообщаем, что в мае наша лаборатория прошла проверку и получила обновленные сертификаты качества (система сертификации Промтехстандарт).
Что это значит для вас:
• Уверенность в качестве исследований: вы можете быть уверены, что все исследования в нашей лаборатории проводятся в соответствии с международными стандартами качества
• Максимальная точность диагностики: мы используем передовые технологии и интегрированные IT-решения, чтобы обеспечить вам точные и надежные результаты исследований
• Профессиональный подход: наши специалисты – высококвалифицированные врачи с большим опытом работы в области патоморфологии
• Индивидуальный подход: мы готовы предоставить вам всю необходимую информацию об исследованиях и гибко подходить к решению ваших задач
С уважением,
UNIM – ваш надежный партнер в мире цифровой патоморфологии
#юним#digitalpathology#certification
✨ЮНИМ: Digital Pathology - "Продукт года" Digital Leaders 2024!✨
17 июня наш Digital Pathology одержал победу в престижной номинации "Продукт года" премии Digital Leaders!
Отбор проходил среди множества цифровых продуктов от ведущих компаний. Эксперты жюри высоко оценили инновационные решения и потенциал Digital Pathology в области медицины будущего.
Победа в Digital Leaders - это не просто признание, мы продолжим совершенствовать Digital Pathology, делая его еще более доступным и эффективным инструментом для врачей-патологов.
Наша цель - сделать диагностику более точной и быстрой.
Благодарим всех за поддержку!
#юним#digitalpathology#digitalleaders
Сегодня расскажем о важной услуге нашей лаборатории — фотосканирование микропрепаратов.
❓Что такое фотосканирование?
Фотосканирование, или сканирование микропрепарата, является ключевой частью цифровой патоморфологии. Этот метод позволяет получить цифровое изображение образца ткани для диагностики, второго мнения, удобного хранения и обмена данными.
Цифровое изображение микропрепарата имеет ряд преимуществ перед традиционной микроскопией:
✅Удобство: Анализ можно проводить без микроскопа, а доступ к изображениям возможен с любого места.
✅Качество: Высокое разрешение и сохранение качества при передаче данных.
✅Хранение: Цифровые слайды легче архивировать и искать.
Как это помогает врачам?
Фотосканирование особенно полезно, если нет возможности получить консультацию узкоспециализированного патоморфолога на месте. Цифровое изображение можно передать для второго мнения, включая зарубежных экспертов. Это повышает качество диагностики и снижает риски ошибок.
Цифровые изображения также используются для подготовки учебных материалов, видеоконференций и консилиумов.
В ЮНИМ мы активно используем эту технологию для обеспечения лучшего сервиса.
____________
Используете ли вы цифровую патоморфологию в своей практике? Делитесь опытом в комментариях!
#UNIM#цифроваяпатология#иммуногистохимия#онкология#медицина#юним#digitalpathology
Как правильно сформулировать клинический вопрос к патоморфологу?
Правильно сформулированный клинический вопрос – это ключ к получению точного и полезного патоморфологического заключения. От ясности и полноты вопроса зависит, насколько эффективно патоморфолог сможет помочь в диагностике и лечении пациента.
Как правильно сформулировать вопрос?
➡️Укажите локализацию процесса: Точно укажите орган или ткань, из которой взят материал для исследования.
➡️Опишите клиническую картину: Кратко опишите основные жалобы пациента, результаты физикального осмотра и данные дополнительных исследований (анализы, инструментальные методы).
➡️Выдвиньте предположительные диагнозы: Перечислите несколько наиболее вероятных диагнозов на основании клинических данных.
➡️Сформулируйте конкретный вопрос: Сформулируйте вопрос таким образом, чтобы он требовал конкретного ответа (например, "Является ли это новообразование доброкачественным или злокачественным?").
➡️Укажите дополнительные пожелания: Если у вас есть какие-либо дополнительные пожелания (например, необходимость проведения срочного исследования), укажите их.
Пример правильно сформулированного вопроса:
У пациента 55 лет обнаружено образование в правой доле печени. При ультразвуковом исследовании образование неоднородное, с четкими контурами. Биопсия печени выполнена пункционной иглой. Является ли это образование метастазом колоректального рака (у пациента в анамнезе колоректальный рак)? Необходимо ли провести иммуногистохимическое исследование на маркеры гепатоцеллюлярной карциномы и метастазов?
Цифровая платформа Digital Pathology может обеспечить в режиме реального времени общение между патоморфологом и клиницистом для повышение точности и скорости постановки диагноза.
Помните: сотрудничество клинициста и патоморфолога – это залог успешного лечения пациента.
#UNIM#цифроваяпатология#иммуногистохимия#онкология#медицина#юним#digitalpathology
Друзья,
Рады сообщить, что лаборатория UNIM успешно прошла независимую экспертизу качества иммуногистохимических исследований, проведенную Центром контроля качества РМАНПО.
Что это значит для вас?
🔘Высочайший уровень качества: Мы подтвердили, что наша лаборатория полностью соответствует мировым стандартам "идеального окрашивания". Это значит, что вы можете быть уверены в точности и надежности результатов наших исследований.
🔘Гарантия правильного диагноза: Даже при обнаружении незначительных отклонений от референсного показателя, наши специалисты проводят дополнительную верификацию, чтобы исключить нежелательных погрешностей в постановке диагноза.
🔘Ваш надежный партнер: Мы стремимся предоставлять вам самую точную и достоверную информацию, необходимую для принятия взвешенных клинических решений.
С уважением,
UNIM – ваш надежный партнер в мире цифровой патоморфологии.
#UNIM#цифроваяпатология#иммуногистохимия#качество#надежность#онкология#медицина#юним#digitalpathology#certification