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("変換しました。エンターキーで終了します: ")
結果としては以下のようになった。
稲垣吾郎だけが「イナガキワレロウ」になってしまっているので、完璧とまではいかないようだ。
可もなく不可もなくという結果になってしまった感はあるけど、とりあえずよしとする。

コメント