2018-03-12

Pythonによる画像学習:ひらがなからローマ字に変換する

CSVに存在するAV女優のデータには、AV女優名、AV女優名(ひらがな)、動画URLがあります。Microsoft Azure Face APIを利用するうえで、日本語に対応していなかったので、このひらがなの部分をローマ字に変換します。


pandasで作成したCSVのデータをよみこみ、一つ一つの上を取り出して、ひらがなの部分をローマ字に変換する処理を行い、その結果を再度pandasでCSVにエクスポートすることで、データの前処理を行いました。


ということで今回はそのコードをべた張りしておきます。
ちなみに、だれかがひらがなからローマ字にしてくれるラッパ-を作成してくれていたので、それを利用させてもらいました。ありがたや。


miurahr/pykakasi

pykakasi is re-imprelemtation of kakasi library by Python.
READMEに従って、

$ pip install pupykakasi

をすれば、インストールできると思います。使い方はREADMEにある通り、こんな感じ。
    from pykakasi import kakasi,wakati

    kakasi = kakasi()
    kakasi.setMode("H","a") # default: Hiragana no conversion
    kakasi.setMode("K","a") # default: Katakana no conversion
    kakasi.setMode("J","a") # default: Japanese no conversion
    kakasi.setMode("r","Hepburn") # default: use Hepburn Roman table
    kakasi.setMode("C", True) # add space default: no Separator
    kakasi.setMode("c", False) # capitalize default: no Capitalize
    conv = kakasi.getConverter()
    result = conv.do(text)

    wakati = wakati()
    conv = wakati.getConverter()
    result = conv.do(text)


で、このpykakasiを利用して、ひらがなからローマ字にして、CSVに加えました。

import pykakasi.kakasi as kakasi
import pandas as pd

kakasi = kakasi()
kakasi.setMode("H","a")
conv = kakasi.getConverter()

df1 = pd.read_csv("final.csv", index_col=0)
df = pd.read_csv('default.csv', index_col=0) #女優名・女優の画像URL・DMMの画像URLが列に入っている
romandf = pd.read_csv('roman.csv', index_col=0)

def getRomeNameByHira(hira):
    result = conv.do(hira)
    return result

for index, row in df1.iterrows():
    name = row["name"]
    kana = row["kana"]
    image = row["image"]
    dmmimage = row["dmmimage"]
    roman = getRomeNameByHira(row["kana"])
    print(roman)
    se = pd.Series([name,kana,image,dmmimage,roman],["name", "kana", "image","dmmimage","roman"])
    romandf = romandf.append(se,ignore_index=True)
romandf.to_csv("romaned.csv")

注目の投稿

 PythonのTweepyを利用して、Twitter APIを利用している。 その中で、ハマったポイントをメモしておく。 まず、Searchに関して。 Twitter検索は、クライアントアプリ側では、全期間の検索が可能になっている。 一方で、APIを利用する際は、過去1週間しか...