【Python】日本語からローマ字に変換

こんにちは。あぽろんです。
Pythonでツールを作っていると、日本語からローマ字に変換する機会があったので紹介します。

変換にはpykakasiというライブラリを使います。

✦ インストール方法

ターミナルで以下を実行します。

pip install pykakasi

✦ コード

import pykakasi

kakasi = pykakasi.kakasi()
text = 'サンプル'
data = kakasi.convert(text)
result = ''.join([d.get('kunrei') for d in data])
print(result)

以下の結果が返ってきます。

sanpuru

おしまい。

ロジックを知りたい人は、続きも読んでみてください。

✦ 解説

まず、オブジェクトを生成します。

kakasi = pykakasi.kakasi()

今回は 「サンプル」 というテキストをローマに変換します。

text = 'サンプル'

次に、convert関数を使って日本語からローマ字へ変換したデータを取得します。

data = kakasi.convert(text)

データは以下のように、リストの中に辞書型データが入った形で返されます。

[{'orig': 'サンプル', 'hira': 'さんぷる', 'kana': ' サンプル', 'hepburn': 'sanpuru', 'kunrei': 'sanpuru', 'passport': 'sampuru'}]

変換形式は ヘボン式、訓令式、パスポート(旧ヘボン式) の3つがあるようです。

最後に、リストの中にある辞書型データから、任意のキーの値を取り出します。※今回は訓令式です。

result = ''.join([d.get('kunrei') for d in data])

get関数で辞書型データから任意のキーの値を取り出し、join関数でリストを連結しています。

✦ 余談

pykakasiって変な名前ですよね。かかし要素どこ…?


いいなと思ったら応援しよう!