分離したカタカナの濁点を結合して1文字にする方法

分離したカタカナの濁点を結合して1文字にする方法

「カ゛」のように、カタカナの濁点だけで1文字になっているテキストを、結合して「ガ」に変換する方法です。

import re
import unicodedata

def convert_dakuten(chars):
    if not type(chars) == str:
        pass
    else:
        chars = re.sub(r'\u309B','\u3099',chars)
        chars = re.sub(r'\u309C','\u309A',chars)
        return unicodedata.normalize('NFC',chars)


print(convert_dakuten('カ゛'))

# ガ

カ゛」はUnicodeで表記すると、\u30AB\u309Bとなります。
一方、「ガ」は\u30ACまたは\u30AB\u3099の2通りで表すことができます。
\u30ACは「合成済み文字」、\u30AB\u3099は「結合文字列」と言います。)

つまり、文字の後に\u3099をつけるとつけると濁点になるので、
1文字の濁点「゛」部分を\u3099に置換することで「ガ」にすることができます。

さらに、unicodedeta.normalizeNFCを指定することで、合成済み文字に変換することができます。

同様に、半濁点は\u309C\u309Aに変換します。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です