Python
Faker

Fakerのダミーデータの漢字名とカナ名を一致させる

Fakerを使ってダミー個人情報を作ろうとすると、それぞれの項目がランダムで生成されるので、

from faker import Factory

fac = Factory.create('ja_JP')
print(fac.first_name())
print(fac.first_kana_name())

康弘
リカ

となり、漢字名と、カナ名が一致しない。

なので、形態素解析ライブラリのjanomeを使って、漢字の読みをカナ名として使用する。

from faker import Factory
from janome.tokenizer import Tokenizer

fac = Factory.create('ja_JP')
first_name = fac.first_name()
print(first_name)
tk = Tokenizer()
tokens = tk.tokenize(first_name)
for token in tokens:
    print(token.reading, end="")

これで、

篤司
アツシ

となるので良かったと思ったら、

陽子
ヨウシ

のように、間違ってはないけどちょっと惜しいケースや

裕太
ヒロシフトシ

のように、裕がヒロシで、太がフトシと判断されるケースが出てしまう

下記の事例にあるように、人名辞書を用意して読み込ませれば、もうちょっとまともな結果が出るかと思うけど、
フリガナを自動入力する

ダミーデータなので、そこまで精度は求めていないしなぁということで、とりあえずここまで。

あとは、下記の様なダミー情報データを生成するサービスからデータをダウンロードして、それをランダムで抽出するという手も。
https://hogehoge.tk/personal/

import pandas as pd
import random

df = pd.read_csv('personal_infomation.csv') # https://hogehoge.tk/personal/ からダウンロードしたcsvを読み込み
no = random.randint(0, len(df)-1) # ランダムで行番号を取得
name = df.iloc[no, 1] # 2列目 氏名
kana_name = df.iloc[no, 2] # 3列目 氏名(カタカナ)
print(name)
print(kana_name)

戸塚和香
トツカワカ