「は→はな→はなみ→はなみず→はなみずき、というように一文字ずつ足していって言葉が成立するものが他にないか??」という問いに答えるために、プログラムを書いて探してみました。
きっかけになった海さんのXポストまとめはこちら(面白い話題の提供に感謝します)👉 ハナミズキ語(或いは右切り捨て可能言葉)集め|海 - note
make_noun_list
では、語彙リストの excel ファイルから、名詞を抽出して csv ファイルに書き出しておきます。find_hanamizuki
が本体です。5文字の単語を選び、後方(右側)を1文字ずつ減らしながら、全ての単語が辞書にあるかを探します。show_hanamizuki
結果を表示します。
データベース|松下言語学習ラボ から、日本語を読むための語彙データベース(研究用)> 重要度順語彙データベース (Top 60894) 重要度順位 00001-60894 (42MB) をダウンロードしました。
database/VDRJ_Ver1_1_Research_Top60894.xlsx
として保存します。
Python, pandas, openpyxl をインストールします。
動作確認済みのバージョン:
- Python 3.8.12
- pandas 2.0.3
- openpyxl 3.1.2
実行します。
$ python hanamizuki.py
※ 語彙リストが大きいので、 make_noun_list
での読み込みに少し時間がかかります。
実行すると下記の結果が表示されます。
find_hanamizuki: 570語を見つけました
アイショウ
ア (唖)
アイ (愛、アイ鱻eye、藍、哀、隘)
アイシ (哀史)
アイショ (愛書)
アイショウ (相性、愛称、愛妾、愛唱、愛誦、哀傷)
アクセント
ア (唖)
アク (悪、灰汁)
アクセ (アクセ)
アクセン (悪戦、悪銭)
アクセント (アクセント)
...略...
ロウシュツ
ロ (炉、絽、驢)
ロウ (楼、牢、蝋、聾、廊、漏、婁)
ロウシ (労使、浪士、老師、労資、牢死、老死)
ロウシュ (老酒、楼主)
ロウシュツ (漏出)
結果の全ては、result/hanamizuki.kekka_5.txt にあります。
- 語彙リストの選択が難しいです。今回は日本語教育関連の辞書を使ってみましたが、難しい漢語(新聞にはあるかもしれないが、日本語ネイティヴでも知らなさそうな単語)が充実している一方で、「ハナミズキ」のように日本語ネイティヴは大体知ってるであろう花の名前などは手薄な傾向がありました。もし他に良い語彙リストを知っている方がいれば、情報を共有していただけるとありがたいです!
- 上記の例で、
アイ鱻eye
というような表示があります。これは、元の辞書で "アイ" と "eye" の複数の表記があることを表しているかと思うのですが、「鱻」という文字がエンコーディングの問題か何かなのか、調査中です。 - いい語彙リストや「鱻」問題の対処を知っている方、X, Twitter @xiPJ や Issue でお知らせいただけると幸いです。