Categories: Python

【Python】日本語のテキストをひらがな、カナ、ローマ字に変換する

この記事では、Python で漢字を含めた日本語のテキストをひらがな、カナ、ローマ字に変換する方法を紹介します。

変換するには pykakasiライブラリを使うと簡単に実現することができます。

pykakasi - GitHub

pykakasiのインストール

pykakasi は、外部ライブラリなので pip を使ってインストールします。

pip install pykakasi

pip のインストール

pykakasiの使い方

pykakasiライブラリ は、以下の手順で使用します。

  • STEP1
    インポート
    まずは、インポートします。
    import pykakasi
  • STEP2
    インスタンス化
    kakasiクラス のインスタンスを生成します。
    import pykakasi
    
    kks = pykakasi.kakasi()
  • STEP3
    変換

    kakasiクラス のインスタンスから convert()メソッド を呼び出し、引数に変換したい日本語のテキストを渡す。

    import pykakasi
    
    kks = pykakasi.kakasi()
    result = kks.convert(なんらかのテキスト)

    結果はリストとして返されます。

  • STEP4
    取得

    convert()メソッド によって返されたリストの中には、単語単位でひらがな、カナ、ローマ字に変換された結果が辞書として格納されています。

    なので、for文などを使って結果を取得します。

    for item in result:
        print(f'原文: {item["orig"]}, ひらがな: {item["hira"]}, カナ: {item["kana"]}, ローマ字: {item["hepburn"]}')

では、試しに簡単な文章を変換してみます。

import pykakasi

# 適当な日本語のテキスト
text = 'パソコンの使いすぎで目が痛い'

# インスタンス化
kks = pykakasi.kakasi()

# 変換
result = kks.convert(text)

for item in result:
    print(f'原文: {item["orig"]}, ひらがな: {item["hira"]}, カナ: {item["kana"]}, ローマ字: {item["hepburn"]}')

実行結果

原文: パソコン, ひらがな: ぱそこん, カナ: パソコン, ローマ字: pasokon
原文: の, ひらがな: の, カナ: ノ, ローマ字: no
原文: 使い, ひらがな: つかい, カナ: ツカイ, ローマ字: tsukai
原文: すぎで, ひらがな: すぎで, カナ: スギデ, ローマ字: sugide
原文: 目, ひらがな: め, カナ: メ, ローマ字: me
原文: が, ひらがな: が, カナ: ガ, ローマ字: ga
原文: 痛い, ひらがな: いたい, カナ: イタイ, ローマ字: itai

文として取得する

変換結果を文として取得したい場合、文字列の joinメソッド と 内包表記を使うと簡単です。

print(''.join([item['hira'] for item in result]))
print(''.join([item['kana'] for item in result]))
print(''.join([item['hepburn'] for item in result]))

実行結果

ぱそこんのつかいすぎでめがいたい
パソコンノツカイスギデメガイタイ
pasokonnotsukaisugidemegaitai

ローマ字の場合は、空白を入れておくと見やすくなる。

print(' '.join([item['hepburn'] for item in result]))

実行結果

pasokon no tsukai sugide me ga itai
ゆうまる

独学でプログラミングを勉強しているおじさん。いろんな言語を勉強したが浅く広くなためあまり仕事につながらない。また忘れっぽいため自分のブログを備忘録としても使っている。産まれてこのかたずっとネコを飼ってる生粋のネコ派。最近お腹が出てきて筋トレに奮闘中!

Recent Posts

【Dart】コンストラクタのデフォルト引数について

Dartのコンストラクタのデフォルト引数…

2週間 ago

【Unity】有料アセットを無料で手に入れる方法

この記事では、Unityの有料アセットを…

5か月 ago

【Python】任意の秒数だけ処理を一時停止する方法【sleep()関数】

この記事では、Pythonで任意の秒数だ…

1年 ago

【Python】Wordの文書の新規作成と読み書き

この記事では、Pythonを使ってWor…

1年 ago

【Python】メタクラスって結局なんなの?

この記事では、Pythonのメタクラスに…

1年 ago