Python Unicode文字列からアクセントを削除(正規化)する最良の方法は何ですか?質問する

Python Unicode文字列からアクセントを削除(正規化)する最良の方法は何ですか?質問する

Python に Unicode 文字列があり、すべてのアクセント (分音記号) を削除したいと考えています。

私はウェブ上でこれを(Java で)行うエレガントな方法を見つけました:

  1. Unicode 文字列を長い正規化形式に変換します(文字と発音区別記号を別の文字で使用します)
  2. Unicode タイプが「diacritic」であるすべての文字を削除します。

pyICU などのライブラリをインストールする必要がありますか、それとも Python 標準ライブラリだけで可能ですか? Python 3 の場合はどうですか?

重要な注意: アクセント付き文字からアクセントなし文字への明示的なマッピングを含むコードは避けてください。

ベストアンサー1

ユニコードは、これに対する正解です。これは、任意の Unicode 文字列を、可能な限り近い ASCII テキスト表現に変換します。

例:

>>> from unidecode import unidecode
>>> unidecode('kožušček')
'kozuscek'
>>> unidecode('北亰')
'Bei Jing '
>>> unidecode('François')
'Francois'

おすすめ記事