python漢字をカタカナにすることができる「pykakasi」を使う

pykakasiの機能

  • 漢字をひらがなにする
  • 漢字をカタカナにする
  • 漢字をローマ字にする
  • 逆にひらがなから漢字にすることはできないらしい

pykakasiを導入する

pykakasiはpythonのライブラリ。いろいろ導入方法はあると思われるが Anaconda プロンプトを立ち上げて以下のコマンドを実行する

pip install pykakasi

これで導入完了。

pykakasiのひな型コード

# -*- coding: utf-8 -*-
from pykakasi import kakasi

text = "青島俊作"
kakasi = kakasi()
kakasi.setMode('J', 'K')
conv = kakasi.getConverter()

print(conv.do(text))  # アオシマシュンサク

Qiitaにも情報はあがっているが以下の点だけ把握しておけばよいらしい。

オプション説明
Kカタカナ
Hひらがな
J漢字
aローマ字
Eわからん

これらのオプションはsetMode()で指定すればよいようだ。

pykakasiを応用してみる

たとえば以下のようなテキストファイルがあったとする

中居正広 福島県
草田 北海道
香取慎吾 鳥取県
木村拓哉 熊本県
稲垣吾郎 東京都

このスマップの名前の部分だけカタカナにする

# pykakasiモジュールの読み込みとセットアップ
from pykakasi import kakasi
kakasi = kakasi()
kakasi.setMode('J', 'K')
conv = kakasi.getConverter()

# クッション
input("エンターキーで実行します: ")

# 書き込み用配列作成
contents = []

# 1行ずつファイルの読み込み
with open('users2.csv', 'r') as f:
    for line in f:
        line = line.replace(" ", ",")
        line = line.split(",")
        line[0] = conv.do(line[0])
        line = ','.join(line)
        contents.append(line)

# 1行ずつ書き込み
with open('users2.csv', 'w') as f:
    for content in contents:
        f.write(str(content))
        
# クッション
input("変換しました。エンターキーで終了します: ")

結果としては以下のようになった。
pykakasi_conv_screenshot.png

稲垣吾郎だけが「イナガキワレロウ」になってしまっているので、完璧とまではいかないようだ。

可もなく不可もなくという結果になってしまった感はあるけど、とりあえずよしとする。


Warning: Undefined array key "thumbnail_url" in /home/users/1/boy.jp-rolpop/web/skc/wp-content/themes/godios/inc/schema-org.php on line 49

Warning: Undefined array key "thumbnail_url" in /home/users/1/boy.jp-rolpop/web/skc/wp-content/themes/godios/inc/schema-org.php on line 78