学習用データでやらかした
学習用データの漢字の文章と,そのふりがなを人力で用意した.ただちょくちょくふりがなが間違っている.または写し間違えている.たまに原文も日本語がおかしく,てにをはが間違ってる.そんなときにふりがなに直すときに善意で直してしまったようだ.
例
原文:ドレスが塗りたてのペンキがついてるよ。
かな:ドレスがぬりたてのペンキについてるよ。
「が」が「に」に直ってる.
正しいんだけどこれはこれで問題.なのでこれを見つける
コード
当然だが漢字の文の中のひらがなはふりがなの方にも存在する.なので漢字に存在するひらがなをそれぞれカウントし,ひらがなのときにそれが減ってたらミスとする.
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
もちろん漢字のふりがな自体のミスは考えられる
けどだいぶマシになるんじゃないかな?