【Python】漢字を分解するライブラリを使ってみた【部首分解】

公開日: : Python , , , ,

Python で漢字を部首やさらに細かい部分に分解してくれるライブラリがあったので使ってみました。

このライブラリを使うと、ある漢字を与えると、その漢字を自動的に分解して部首(偏・旁・冠)や部分をリスト形式で返してくれます。

kanjivg-radical というライブラリで、以下のURLからダウンロードし、解凍します。

https://github.com/yagays/kanjivg-radical

json 形式のファイル読み込む

kanjivg-radical では json 形式のファイルを読み込むため、以下のような関数を用意します。

kanjivg-radical の特徴

このライブラリでできることは、大きく分けて以下の2つがあります。

  • 漢字を部分(部首など)に分解する
  • 部分(部首など)を含む漢字を抽出する

それぞれいくつか細かい特徴が異なる関数が用意されています。

漢字を部分(部首など)に分解する系

これは、「kanji2xxxx」となっている関数が該当します。

基本的に漢字を1文字与えると分解したものをリストで返します。

それぞれ使い方と結果を示します。

kanji2radical

文字を一回だけ分解します。

結果は以下のようになります。

[‘石’, ‘少’]

kanji2element

文字を再帰的に分解していきます。

結果をみると、kanji2radical と比較して、細かく分解されていることが分かると思います。

[‘石’, ‘丿’, ‘少’, ‘口’, ‘小’]

kanji2radical_left_right

文字を「偏」と「旁」に分解します。「偏」と「旁」に分解できない漢字についてはエラーとなります。

結果は以下のとおり。

[‘石’, ‘少’]

kanji2radical_top_buttom

文字を「冠」と「脚」に分解します。「冠」と「脚」に分解できない漢字についてはエラーとなります。

結果は以下のとおり。

[‘少’, ‘目’]

部分(部首など)を含む漢字を抽出する系

これは、「xxxx2kanji」となっている関数が該当します。

部分を与えると、それが含まれる漢字をリストで返します。

それぞれ、コードと結果のみを以下に示します。

radical2kanji

[‘尠’, ‘沙’, ‘鈔’, ‘抄’, ‘眇’, ‘秒’, ‘省’, ‘劣’, ‘杪’, ‘紗’, ‘雀’, ‘歩’, ‘賓’, ‘炒’, ‘隲’, ‘毟’, ‘妙’, ‘砂’]

element2kanji

[‘尠’, ‘瀕’, ‘沙’, ‘鈔’, ‘濱’, ‘抄’, ‘鯊’, ‘頻’, ‘鬢’, ‘捗’, ‘眇’, ‘秒’, ‘殯’, ‘省’, ‘擯’, ‘莎’, ‘劣’, ‘嬪’, ‘渉’, ‘裟’, ‘杪’, ‘紗’, ‘雀’, ‘渺’, ‘顰’, ‘歩’, ‘賓’, ‘炒’, ‘繽’, ‘陟’, ‘蘋’, ‘緲’, ‘隲’, ‘毟’, ‘妙’, ‘檳’, ‘砂’, ‘娑’]

radical2kanji_left_right

[‘尠’, ‘沙’, ‘鈔’, ‘抄’, ‘眇’, ‘秒’, ‘杪’, ‘紗’, ‘炒’, ‘妙’, ‘砂’]

関連記事

【Linux】 ローカルに Python をインストールする方法。

今回は、Linux サーバに、root 権限なしで、ローカルに Python をインストールした方法

記事を読む

【Pandas】 DataFrame の行を抽出する方法【Python】

今回は、Python の Pandas で、DataFrame 型の行を抽出する方法を紹介します。

記事を読む

【Python】Windows で ライブラリ(NumPy) をインストールする方法。

Windows の Python(2.X系)で NumPy をインストールしようと思ったら、そもそも

記事を読む

【matplotlib】 Python でヒストグラムの横軸と棒(ビン)の数を調整する方法。

Python の matplotlib を使ってヒストグラムを描画し、横軸の目盛りと棒(ビン)がそろ

記事を読む

【Python】Beautiful Soup を使ってスクレイピングする方法。

Beautiful Soup は、シンプルでわかりやすい API でデータを抜き出せる Python

記事を読む

【Google Colaboratory】クラウド上でPythonを使って機械学習を行う。

Python をブラウザ上で実行して、手軽に機械学習ができる環境「Google Colaborato

記事を読む

【Python】pip3 で「cannot import name ‘main’」エラーが出たときの対処法。

Python でライブラリをインストールする際に、pipを使います。 Python2 と Py

記事を読む

【Pandas】 loc・ilocで1行のみ Series ではなく DataFrame で抽出する方法。

Python の Pandas で DataFrame から loc や iloc を使って行を抽出

記事を読む

【Python】 DataFrame の特定の列で出現回数をカウントして降順でソートする方法。

Python で DataFrame 型の特定の列を指定して、対象列の文字列の出現回数をカウントして

記事を読む

【matplotlib】 Python で折れ線グラフを描く方法。

今回は、Python の matplotlib というライブラリを使って簡単に折れ線グラフを描く方法

記事を読む

【matplotlib】 Python でヒストグラムの横軸と棒(ビン)の数を調整する方法。

Python の matplotlib を使ってヒストグラムを描画し、

【デジカメ】 NEX-6 で撮った写真を Wi-Fi で PC に転送する方法【SONY】

今回は、SONY の NEX-6 のデジカメで撮った写真を 無線の W

【SONY NEX-6】オールドレンズをミラーレスカメラに付ける方法【マウントアダプター】

家でずっと眠っていたオールドレンズ(フィルムカメラに装着されて

【WordPress】 カテゴリごとに広告を簡単に切り替える方法【AdRotate】

今回は、WordPress のプラグインを使って、簡単にカテゴリごとに

【ビットコイン】 アドレス生成方法について調べてみた。

仮想通貨の1つであるビットコインを送金するときは、送付側と受け手側のそ

→もっと見る

PAGE TOP ↑