技術は使ってなんぼ

自分が得たものを誰かの役に立てたい

【Python】文字の変換も簡単にできる便利なライブラリ【mojimoji, pykakasi】


こんにちは。

今日は仕事で使っていて、便利なライブラリを見つけたのでご紹介します。

ご紹介するライブラリは2つ。mojimojipykakasiです!

どちらもかわいらしい名前ですよね。

この2つのライブラリの機能はざっくりこんな感じ。
1.mojimoji:全角→半角、半角→全角に変換する
2.pykakasi:漢字→ひらがな、カタカナ、ローマ字等に変換する

では実際に使い方を紹介していきます。

mojimoji

mojimojiのGithubはこちら。
github.com

インストール方法から使い方まで、Readmeに書いてありますが、紹介します。

インストール方法
$ pip install mojimoji
使い方

mojimojiのメソッドは2つしかありません。

ストリートファイターのガイルみたいですね。

ソニックブームサマーソルトキックしかない、みたいな(伝わる人いるかな・・)

zen_to_hanとhan_to_zenという、名前の通り全角→半角、半角→全角という使い方です。

わかりやすくて使いやすそうですね。

実際のソースコードはこんな感じ。

import mojimoji
print(mojimoji.zen_to_han(u'アイウabc012'))

この出力結果は「アイウabc012」となります。文字も数字どちらもいけます。

引数のオプションで、変換するものを指定することができるようです。

kana=False:かなの変換を無効
digit=False:数字の変換を無効
ascii=False:英字の変換を無効

デフォルトは全てTrueになってるので、全て変換します。

この辺は設定次第でトリッキーな変換もできますね。

pykakasi

pykakasiのGithubはこちら・・ん?「Give up GitHub」??
github.com
sfconservancy.org

2022年6月29日って、日は新しいですね。

これはこれでちょっと気になりますが、本題に戻りましょう。

インストール方法
$ pip install pykakasi
使い方

pykakasiのクラスオブジェクトのインスタンス化が必要です。

convメソッドで漢字をひらがなやカタカナローマ字等に変換できます。

import pykakasi

kks = pykakasi.kakasi()

print(kks.convert("東京"))

出力結果は、以下のような辞書型になります。

[{'orig': '東京', 'hira': 'とうきょう', 'kana': 'トウキョウ', 'hepburn': 'toukyou', 'kunrei': 'toukyou', 'passport': 'tokyou'}]

どれか一つを取り出す場合、例えばカタカナを取り出したい時は、kks.conv("東京")[0]["kana"]となります。

mojimoji×pykakasi

それではこれらを使うと実際にどんな使い方が考えられるでしょうか?

例えばこんなことしたいときってありませんか?

「漢字の名前のふりがなを半角カナにしたい」(←実際の私の事例)

でもひとつひとつ手作業でやるなんて面倒ですよね・・。

なんとか自動化したい。

できます!

import pykakasi
import mojimoji

kks = pykakasi.kakasi()

print(mojimoji.zen_to_han(kks.convert("田中")[0]['kana']))

この出力結果は「タナカ」になります。

いかがでしたか?

今回はmojimojiとpykakasiのライブラリについて紹介してみました。

実際の業務でもこういった文字の変換作業等は発生するかと思います。

手作業でやるのは大変だし、自作で関数を作ろうと思うとなかなか大変だったりします。

そんな時、mojimojiやpykakasiを使って自動化ツールを作ってみてはいかがでしょうか?

難しくて作れない!自分の職場に上手く導入・適応できない!

もしもそんなお悩みのお方はお気軽にご相談ください。(宣伝)

最後までお読みいただきありがとうございました。

今日出てきた「GitHub」についてわかりやすい書籍はこちら。

Gitは、ITエンジニアなら誰でも使えるようになるべき必須のスキルです。

プログラミングを習得したら、次はこれを覚えるっていうぐらい重要なので、良かったら読んでみてください。