Pythonでラテン文字等に見られるアクセント記号を削除する

IT

はじめに

本記事ではラテン文字などに存在するアクセント記号付きの文字を英語アルファベットに変換する方法についてまとめます。
ここで言うアクセント記号つき文字とはçやèを例とする、英語アルファベットに発音用記号がついているものを指します。
データ分析における前処理などでこれらの文字をクレンジングするシーンにおいて使用できる Python のプログラムを紹介します。

サンプルコード

以下サンプルコードです。Python の標準ライブラリである unicodedataを使用します。

import unicodedata


def normalize_unicode(words: str) -> str:
    unicode_words = ""
    for character in unicodedata.normalize("NFD", words):
        if unicodedata.category(character) != "Mn":
            unicode_words += character
    return unicode_words

print(normalize_unicode('le Québec'))
# le Quebec

print(normalize_unicode('Ça va?'))
# Ca va?

ちなみに unicodedata を使用して半角文字や組文字も変換することも可能です。
unicodedata.normalizeの第一引数にNFKCを指定します。

print(unicodedata.normalize('NFKC', 'アイウエオ'))
# アイウエオ

print(unicodedata.normalize('NFKC', '㌕'))
# キログラム

おわりに

ラテン文字などに存在するアクセント記号付きの文字を英語アルファベットに変換する方法についてまとめました。
この記事がどなたかの参考になれば幸いです。

参考

コメント