音読み、訓読み、重箱読み、湯桶読みの熟語判別ツール

タグ: , , ,

ツール

調べたい熟語(2文字)を下のフォームに入力してください。

調べたい熟語の読み方が間違っていた場合(人名として別の読み方で判断される可能性があります)その場合は、読み方をカタカナで入力してください。


以下は入力しなくても実行可能ですが、実行し、読み方が間違っていれば、記入ください


Python

# encoding: utf-8
import neologdn 
import MeCab 
import sys
import io
import urllib.request
import json

#文字の処理
def nimozi():
    global zyukugo,bb,kun
    #辞書の読み仮名の出力回数分for文を回す
    for i in range(len(mae)):
        if zyukugo.startswith(mae[i]):
            #熟語の音読み(同じ読み方の部分を消す。)
            zyukugo=zyukugo.replace(mae[i],"",1)
            bb=1
            #音読みです。
            kun=kun+"音"
            break
    if bb!=1:
        for i in range(len(num_list)):
            if zyukugo.startswith(num_list[i]):
            #辞書と同じ読み方が見つかれば 訓読みの場合
            #訓読みの処理の記録
            #訓読み
                bb=1
                kun=kun+"訓"
            #熟語の音読み(同じ読み方の部分を消す。)
                zyukugo=zyukugo.replace(num_list[i],"",1)
                #出力
                break          
            
def check():
    global zyukugo,bb
    aaa = str(chr(ord(zyukugo[0])-1))
    zyukugo = zyukugo.replace(zyukugo[0],aaa,1)
    bb=0
    nimozi()        
        
kun=""
maeb=""
args = sys.argv
nitteihennkou =args[1]
yomikata=args[2]

if yomikata!="":
    zyukugo=yomikata
else:
    nitteihennkou1=nitteihennkou 
    nitteihennkou_1=neologdn.normalize(nitteihennkou1) 
    a = MeCab.Tagger('-d /usr/local/lib/mecab/dic/mecab-ipadic-neologd')
    zyukugo = a.parse(nitteihennkou_1).split(',')[7]
print("この熟語の読み方が"+zyukugo+"の場合")
#読み方の出力
bb=0
#MJ文字情報API 音読み#

for i in range(len(nitteihennkou)):
    asa = hex(ord(nitteihennkou[i]))
#IPA#
    req = urllib.request.Request("https://mojikiban.ipa.go.jp/mji/q?UCS="+asa)
    with urllib.request.urlopen(req) as res:
        body = json.load(res)
        #音読み訓読みの出力
        mae = body['results'][0]['読み']['音読み']
        mae1 = body['results'][0]['読み']['訓読み']
        num_list = [] 
        
        for b in range(len(mae1)):
            for a in range(len(mae1[b])):
                maeb =maeb+chr(ord(mae1[b][a])+96)
            num_list.append(maeb)
            maeb=""
        nimozi()
        bb=0

else:
    if zyukugo!="":
        check()
        if zyukugo!="":
            print(kun)
            print(zyukugo+"が判別できませんでした。")
            print("辞書に載っていない熟語または特殊な読み方のようです。")
if kun=="音訓":
    print("この熟語は重箱読みです。")
elif kun=="訓音":
    print("この熟語は湯桶読みです。")
elif kun=="訓訓":
    print("この熟語は前も後ろもどちらも訓読みです。")
elif kun=="音音":
    print("この熟語は前も後ろもどちらも音読みです。")

熟語 音読み 訓読み 見分け方

音読み、訓読み、重箱読み、湯桶読みの熟語を判別します。

音読みは、どちらも音読みで書かれたもの、訓読みはどちらも訓読みで書かれたもの、重箱読みは、最初の文字(上の文字)が音読み、2文字目(下の文字)が訓読み、湯桶読みは最初の文字が訓読み、2文字目が音読みという意味です。

音読みは中国から来た言葉だそうです。

訓読みは日本(日本語)の読み方ですよね。

あと、普通は辞書で調べることが大事ですよ。(このサイトはツールの紹介むけ、プログラミングの方なので許してください)

Copyright (c) 2020
Released under the MIT license
https://opensource.org/licenses/mit-license.php

このtoolを通報される方はこちら




コメントを残す