はじめに
本記事ではラテン文字などに存在するアクセント記号付きの文字を英語アルファベットに変換する方法についてまとめます。
ここで言うアクセント記号つき文字とはçやèを例とする、英語アルファベットに発音用記号がついているものを指します。
データ分析における前処理などでこれらの文字をクレンジングするシーンにおいて使用できる 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', '㌕'))
# キログラム
おわりに
ラテン文字などに存在するアクセント記号付きの文字を英語アルファベットに変換する方法についてまとめました。
この記事がどなたかの参考になれば幸いです。
コメント