LoginSignup
7
7

More than 5 years have passed since last update.

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

Last updated at Posted at 2018-04-10

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)


戸塚和香
トツカワカ

7
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
7