「漢字、なぞなぞ①」 | 不惑のクワガタ日記

不惑のクワガタ日記

はじめた当初はクワガタの日記だったのですが、、、
現在は人工知能と戯れる日記になってます。

(私)
GPTさんが「拳児」というマンガを知らないということを知ってます。

 

↓ wikipedia


(chatGPT)
『拳児』(けんじ)は、原作:松田隆智、作画:藤原芳秀による日本の漫画で、1988年から1992年まで週刊少年サンデーに連載されました。中国武術をテーマにした作品であり、格闘シーンが多く登場するものの、主人公・拳児の成長を軸に中国武術の技術論や思想・哲学などが描かれています。

物語は、拳法に夢中な主人公・剛拳児が祖父・侠太郎から八極拳を学び、成長していく様子が描かれます。侠太郎が消息を絶ってしまい、拳児は日々修行に励みます。横浜の中華料理屋のオーナー、張 仁忠との出会いを経て、拳児は八極拳の修行を本格的に始めますが、トニー・譚との抗争事件に巻き込まれ、学校から無期停学処分を受けます。拳児は停学期間を利用し、侠太郎を探すために台湾・香港を経由して中国へと旅立ちます。

本作はフィクションですが、実在の武術史や武術家に関するエピソードが多数紹介され、実在の武術家がモデルとなったキャラクターも登場しています。劇中の八極拳はダイナミックに描かれており、漫画的な誇張が多いため、実際の八極拳の姿とはかけ離れた部分もあります。


(私)
これは話の枕となります。この拳児というマンガの中で「卯金の刀」という言葉が出てきます。
もちろんGPTさんは、ご存じですよね。

(chatGPT)
すみませんが、「卯金の刀」という言葉については私には情報がありません。『拳児』に関連する言葉である可能性はありますが、私の知識は2021年9月までのものであり、『拳児』自体が私のデータベースには含まれていないため、特定の情報や詳細についてはお答えできません。もし他に質問があればお気軽にどうぞ。


(私)
予想外でした、、、Wikipediaの「劉」さんのページにもあったので、有名だと思ったのですが違いましたね、すみません。

(chatGPT)
ご指摘ありがとうございます。「劉」というページに言及があるとのことで、再度調査を行いましたが、私のデータベースでは「卯金の刀」という言葉が見つかりませんでした。私のデータベースが2021年9月までの情報であるため、それ以降の情報は含まれていません。

それでも、何らかの情報がお役に立てるかもしれませんので、「劉」については中国の姓のひとつで、古い歴史を持つ姓の一つです。また、多くの著名な人物が劉という姓を持っています。しかし、劉と卯金の刀の関連性については、私にはわかりません。すみませんが、他に質問があればお気軽にどうぞ。


(私)
Wikipedia から

劉氏(りゅうし)は、漢姓の一つ。中国では五大姓の一つ。「劉」の字は、本来「ころす」を意味するが、姓としては地名に由来する。

中国
劉氏(りゅうし)は、中華圏の姓の一つ。現代中国において最も数の多い五大姓(王・李・張・劉・陳)の一つに数えられる。歴史的には漢(前漢、後漢、蜀漢、漢趙(前趙)、五代の後漢、十国の北漢、南漢)と漢王朝以外の劉宋、劉夏の国姓である。2020年の第7回中華人民共和国全国人口調査(中国語版)(国勢調査)に基づく姓氏統計によると7229.06万人がいる。一方、台湾の2018年の統計では第8位で、743,179人がいる。

発音が近い「柳」などと区別するために、会話では、中華人民共和国では「文刀刘」(文に刀の劉)、台湾など繁体字を使う地域では「金刀劉」(金に刀の劉)あるいは「卯金刀劉」(卯金に刀の劉)と説明することがある。「劉邦的劉」(劉邦の劉)と説明することもある(例えば、姓名を答えるとき、「劉尹賢,劉邦的劉,伊尹的尹,聖賢的賢」のように説明する)。

 

 


(chatGPT)
ご指摘いただきありがとうございます。Wikipediaの情報によると、「劉」は中国の五大姓の一つで、現代中国では最も多い姓の一つです。劉氏は、歴史的に漢王朝以外の劉宋、劉夏の国姓でもあります。

「卯金刀劉」についての言及がありました。これは、劉と発音が近い「柳」と区別するために、会話で説明する際に使われる表現です。中華人民共和国では「文刀劉」、台湾など繁体字を使う地域では「金刀劉」あるいは「卯金刀劉」と説明されることがあります。「劉邦的劉」(劉邦の劉)と説明されることもあります。

この情報が参考になれば幸いです。どうぞお気軽にお尋ねください。


(私)
「うさぎ(卯)」+「かね(金)」+「かたな(刀)」 →「劉」
という構造なんですね。

(なぞなぞ)
「劉」さんがやってきたが今日は「かね(金)」と「かたな(刀)」を持ってくるの忘れたらしい。
では「劉」さんは何をもっている?

(chatGPT)
「劉」さんが「金」(かね)と「刀」(かたな)を持ってこなかった場合、彼が持っているのは「卯」(うさぎ)でしょう。 つまり、「劉」さんはうさぎを持っていると考えられます。このなぞなぞは、「劉」の字の成分に関連していますね。


(私)
正解です!!

つまり漢字の構造を利用して、なぞなぞを作ろうです。
①足し算のパターン、A+B=C
②引き算のパターン、C-A=B
③掛け算のパターン、A*3=C      (例: 石が三こ → 磊)
④割り座のパターン、C/2=A       (例: 林を半分 →木)
⑤上記の複合パターン、A*4+B=C  (例: 口が4つと大 → 器)

などです、これを単純に出題するのでなく、アドベンチャーゲームブックなどに見られるような文章にします。

(chatGPT)
それは面白いアイデアですね!漢字の構造を利用したなぞなぞをアドベンチャーゲームブックのような形式で作成することで、読者が楽しみながら漢字の構造や意味を理解することができます。以下に、各パターンの例を示します。

①足し算のパターン
ある日、山の中で「山」と「火」が出会いました。二つが一つになったら、何になるでしょう?

答え: 煙(山 + 火)

②引き算のパターン
鳥が飛んでいる空に、「白」というものが消えました。では、空に何が残っているでしょう?

答え: 青(青 - 白)

③掛け算のパターン
森の中で、「木」が3つ集まって一つのものになりました。何になったでしょう?

答え: 森(木 × 3)

④割り算のパターン
「海」が半分になりました。それでは、何が残ったでしょう?

答え: 水(海 / 2)

⑤複合パターン
ある村では、「女」が3人と「子」が1人集まって新しいものを作りました。何になったでしょう?

答え: 好(女 × 3 + 子)

このような形式で、なぞなぞを作成することで、読者にとって楽しく、教育的な体験になるでしょう。アドベンチャーゲームブックの形式で提示することで、ストーリーやキャラクターを組み込むことも可能です。


(私)
えっと、、、いろいろ突っ込みどころがありますが、スルーする力を発動します。

漢字を分解するプログラムがあります。

~/pyStudy/kanjivg$ cat test0.py
import json

def load_json(filename):
    with open(filename, encoding='utf-8') as f:
        d = json.load(f)
    return d

def main():
    kanji2element = load_json("./kanjivg-radical-master/data/kanji2element.json")

    user_input = input("漢字を入力してください: ")

    if user_input in kanji2element:
        decomposition = kanji2element[user_input]
        print(f"{user_input} の分解結果: {decomposition}")
    else:
        print(f"漢字データが見つかりませんでした: {user_input}")

if __name__ == "__main__":
    main()

~/pyStudy/kanjivg$ py test0.py
漢字を入力してください: 福
福 の分解結果: ['畐', '礻', '一', '口', '田']

まずは、漢字の分解結果のデータをため込みます。

(chatGPT)
素晴らしいですね!このプログラムを使って漢字を分解し、その要素からなぞなぞを作成することができます。以下に、プログラムで得られた分解結果を使ったなぞなぞの例を示します。

漢字: 福
分解結果: ['畐', '礻', '一', '口', '田']

なぞなぞ: ある日、畐(ふく)さんは、礻(しめす)さん、一(いち)さん、口(くち)さん、田(た)さんと一緒にパーティーを開きました。彼らは一つのものになり、何を表現しましたか?

答え: 福

このように、漢字を分解するプログラムを利用して、分解結果をもとに楽しいなぞなぞを作成することができます。読者は漢字の構造を理解しながら、楽しく学ぶことができるでしょう。


(私)
「福」の場合は、、、

部屋に入ると紫檀の机に羊皮紙で書かれている書物が開かれて置かれていた。
その書物が気になり読みはじめたところ、*ネロ*という人物が*一*の*田*から身を起こし王となった物語であった。
タイトルはかすれて読めなかった。

後ろに気配を感じ振り向くと、杖をついた老人が立っていた。
この部屋の主のようだ。
老人は「その本のタイトルを答えよ」といった。

みたいな感じにしたのですが、とりあえず1段階目としては、いいです。
元漢字と分解した要素で、DBのテーブルを作成したいです。

(chatGPT)
分解した漢字とその要素をデータベースに格納するために、以下のようなテーブル構造を作成できます。

  1. kanji_table: 元の漢字を格納するテーブル

    • id (int): プライマリキー
    • kanji (varchar): 元の漢字
  2. elements_table: 分解された要素を格納するテーブル

    • id (int): プライマリキー
    • element (varchar): 分解された要素
  3. kanji_elements_table: 元の漢字と分解された要素の関係を格納するテーブル

    • id (int): プライマリキー
    • kanji_id (int): 元の漢字のID (kanji_tableとの外部キー)
    • element_id (int): 分解された要素のID (elements_tableとの外部キー)

これにより、元の漢字とその分解された要素をデータベースに格納し、関連付けることができます。その後、データベースを検索して、漢字や要素に関連する情報を取得したり、新しい漢字や要素を追加したりすることができます。


(私)
画数も保持したいです。
たとえば、、、

先ほどの分解プログラムで「林」を分解すると

~/pyStudy/kanjivg$ py test0.py
漢字を入力してください: 林
林 の分解結果: ['木']

となります。
これだと、木が2つであることがわかりません。
林(8画)、木(4画)なので、 木 × 2という構造がわかります。

(chatGPT)
画数を保持するために、テーブル構造を以下のように変更できます。

  1. kanji_table: 元の漢字を格納するテーブル

    • id (int): プライマリキー
    • kanji (varchar): 元の漢字
    • strokes (int): 画数
  2. elements_table: 分解された要素を格納するテーブル

    • id (int): プライマリキー
    • element (varchar): 分解された要素
    • strokes (int): 画数
  3. kanji_elements_table: 元の漢字と分解された要素の関係を格納するテーブル

    • id (int): プライマリキー
    • kanji_id (int): 元の漢字のID (kanji_tableとの外部キー)
    • element_id (int): 分解された要素のID (elements_tableとの外部キー)
    • element_count (int): 分解された要素の個数

これにより、「林」のように、同じ要素が複数回現れる場合でも、その個数をkanji_elements_tableのelement_countカラムに保持することができます。また、元の漢字と分解された要素の画数もそれぞれのテーブルに格納できるようになります。



◆◆ ◆◆ ◆◆ ◆◆ ◆◆ ◆◆ ◆◆ ◆◆ ◆◆ 

 

つづく。


関連ページ: