Вебинары Разобраться в IT Реферальная программа
Программирование Аналитика Дизайн Маркетинг Управление проектами
11 Фев 2023
2 мин
236

Удаление диакритических знаков из строки в Python

Одна из распространенных задач при обработке текстовых данных — это нормализация текста, в частности, удаление диакритических знаков (акцентов)

Одна из распространенных задач при обработке текстовых данных — это нормализация текста, в частности, удаление диакритических знаков (акцентов) из строк. Диакритический знак — это знак, добавленный к букве для изменения ее произношения, тон или акцент. Например, во французском языке буква «e» может быть дополнена диакритическими знаками, такими как «é», «è», «ê» и «ë», каждый из которых вносит свое уникальное звучание.

Приведем пример: есть строка «Mëtàl Hëàd», и требуется преобразовать ее в «Metal Head».

Подобное преобразование может понадобиться в различных приложениях, например, при создании поисковых систем, обработки текста и так далее. Сделать это можно с использованием стандартной библиотеки Python — unicodedata.

Использование модуля unicodedata

Модуль unicodedata обеспечивает доступ к базе данных Юникода (Unicode Character Database), которая определяет свойства символов для всех символов Юникода.

Вначале, строка конвертируется в нормализованную форму, где каждый символ и его диакритический знак представлены отдельно. Далее, удаляются все символы, которые относятся к типу «diacritic».

import unicodedata

def remove_accents(input_str):
    nfkd_form = unicodedata.normalize('NFKD', input_str)
    return u"".join()

print(remove_accents("Mëtàl Hëàd"))  # Вывод: "Metal Head"

В этом примере функция normalize модуля unicodedata преобразует строку в нормализованную форму ‘NFKD’. Затем генератор создает новую строку, состоящую только из символов, которые не являются диакритическими.

Таким образом, с помощью стандартной библиотеки Python можно легко удалить диакритические знаки из строки.

Проверь как ты усвоил материалы статьи
Пройди тест и узнай насколько ты лучше других читателей

Добавить комментарий