0
0

More than 3 years have passed since last update.

漢字の文章のふりがなの簡易チェック

Last updated at Posted at 2020-12-22

学習用データでやらかした

学習用データの漢字の文章と,そのふりがなを人力で用意した.ただちょくちょくふりがなが間違っている.または写し間違えている.たまに原文も日本語がおかしく,てにをはが間違ってる.そんなときにふりがなに直すときに善意で直してしまったようだ.

原文:ドレスが塗りたてのペンキがついてるよ。
かな:ドレスがぬりたてのペンキについてるよ。
「が」が「に」に直ってる.

正しいんだけどこれはこれで問題.なのでこれを見つける

コード

当然だが漢字の文の中のひらがなはふりがなの方にも存在する.なので漢字に存在するひらがなをそれぞれカウントし,ひらがなのときにそれが減ってたらミスとする.

HIRAGANA: List[str] = [chr(i) for i in range(12353, 12436)]
KATAKANA: List[str] = [chr(i) for i in range(12449, 12532 + 1)]
def check(kanji: str, hurigana: str) -> bool:
    flag = True
    for i in range(len(HIRAGANA)):
        # 漢字での出現回数
        kanji_appear: int = 0
        kanji_appear += kanji.count(HIRAGANA[i])
        kanji_appear += kanji.count(KATAKANA[i])
        # ひらがなでの出現回数
        hirangana_appear: int = 0
        hirangana_appear += hurigana.count(HIRAGANA[i])
        hirangana_appear += hurigana.count(KATAKANA[i])
        if kanji_appear > hirangana_appear:
            print(HIRAGANA[i], kanji_appear, hirangana_appear)
            flag = False
    for l in ['、', '。']:
        # 漢字での出現回数
        kanji_appear: int = kanji.count(l)
        # ひらがなでの出現回数
        hirangana_appear: int = hurigana.count(l)
        if not kanji_appear is hirangana_appear:
            print(l, kanji_appear, hirangana_appear)
            flag = False
    if not flag:
        return False
    return True

もちろん漢字のふりがな自体のミスは考えられる
けどだいぶマシになるんじゃないかな?

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0