森津 花梨,青森県,snake1909@example.com 青森 律,長崎県,true1809@example.com 河野 レイ,大阪府,biggest1848@example.com 福地 たくや,長崎県,nvidia2094@example.com 村瀬 ミハル,三重県,caring2085@example.com 乳井 早人,徳島県,resulted1993@example.com 梅本 千景,佐賀県,individually1841@example.com 大田 一輝,香川県,turning2005@example.com 坂上 ユウキ,福島県,bob2085@example.com 有賀 与一,山形県,gage1867@example.com
これを見てどう思いますか?
「個人情報の流出!?」では、ありません。
すべてフェイクです。
この記事では、上記のようなフェイクデータを作成する方法を解説しています。
PythonライブラリのMimesisを使えば、一瞬でデータが出来上がります。
本記事の内容
- Mimesisとは?
- Mimesisのシステム要件
- Mimesisのインストール
- Mimesisの動作確認
上記に沿って解説していきます。
Mimesisとは?
Mimesis公式
https://mimesis.name/
Mimesisとは、フェイクデータ作成のためのPythonライブラリです。
読み方はミメーシスで、意味は模倣となります。
主には、テストデータ作成での利用が想定されています。
特にユーザマスタの作成では、大活躍しそうです。
また、対応ロケール(地域・言語)は全部で34あります。
もちろん、日本にも対応しています。
パフォーマンスが、類似のFakerと比べるとかなり良いようです。
100万のデータ(フルネーム)を作成した場合の比較を載せておきます。
上記結果より、速度だけではなく、質も高いことが読み取れます。
もちろん、一方的な主張を鵜呑みはできませんけどね。
そうだとして、フェイクデータを作成するのにMimesisは使えそうです。
テストデータの作成は、個人的には好きではありません。
ユーザー001 ユーザー002 ユーザー003 ユーザー004 ユーザー005
こんな具合のデータだと、区別がつきません。
区別できる方が、テストはやりやすいです。
かと言って、次のようなデータは恥ずかしい感じになります。
個人の趣味や嗜好がわかるようなモノは避けたいです。
竈門 炭治郎 竈門 禰豆子 我妻 善逸 嘴平 伊之助 冨岡 義勇
その点、Mimesisは機械的に実在していそうなデータを作成します。
区別もできつつ、個人の色が出ないテストデータを作成できるのです。
以上、Mimesisについて説明しました。
Mimesisのシステム要件
現時点(2022年2月)でのMimesisの最新バージョンは、5.3.0となります。
この最新バージョンは、2022年1月26日にリリースされています。
サポートOSに関しては、以下を含むクロスプラットフォーム対応です。
- Windows
- macOS
- Linux
サポート対象となるPythonのバージョンは、以下となっています。
- Python 3.8
- Python 3.9
- Python 3.10
以下は、Python公式開発サイクルです。
バージョン | リリース日 | サポート期限 |
3.6 | 2016年12月23日 | 2021年12月23日 |
3.7 | 2018年6月27日 | 2023年6月27日 |
3.8 | 2019年10月14日 | 2024年10月 |
3.9 | 2020年10月5日 | 2025年10月 |
3.10 | 2021年10月4日 | 2026年10月 |
Python 3.6は、2021年末でサポート終了です。
そのため、Mimesisが対応していないのは納得できます。
しかし、Python 3.7まで対応から外しています。
ここまでサポート状況が厳しいライブラリは、珍しいと言えます。
ここまでをまとめると、Mimesisのシステム要件における注意点は一つです。
Python 3.8以降が必要となります。
以上、Mimesisのシステム要件について説明しました。
次は、Mimesisをインストールします。
Mimesisのインストール
検証は、次のバージョンのPythonで行います。
$ python -V Python 3.10.2
まずは、現状のインストール済みパッケージを確認しておきます。
$ pip list Package Version ---------- ------- pip 22.0.3 setuptools 60.7.1 wheel 0.36.2
次にするべきことは、pipとsetuptoolsの更新です。
pipコマンドを使う場合、常に以下のコマンドを実行しておきましょう。
python -m pip install --upgrade pip setuptools
では、Mimesisのインストールです。
Mimesisのインストールは、以下のコマンドとなります。
pip install mimesis
インストールは、すぐに終わります。
では、どんなパッケージがインストールされたのかを確認しましょう。
$ pip list Package Version ---------- ------- mimesis 5.3.0 pip 22.0.3 setuptools 60.7.1 wheel 0.36.2
インストールされたのは、mimesisだけです。
依存関係がなければ、既存環境への導入は容易と言えます。
ただし、Pythonのバージョンには注意です。
以上、Mimesisのインストールを説明しました。
次は、Mimesisの動作確認を行います。
Mimesisの動作確認
最小レベルの動作確認は、次のコードで可能です。
from mimesis import Person person = Person() print(person.full_name())
上記を実行すると、次のような表示となります。
Hyon Daugherty
実行する度に、表示される名前が異なります。
動作確認だけだと以上でOKです。
これだと親近感も何もありません。
やはり、日本人の名前の方がしっくりきます。
ということで、日本人の名前が表示されるようにします。
from mimesis import Person from mimesis.locales import Locale person = Person(Locale.JA) print(person.full_name())
上記を実行(5回)すると、次のように表示されます。
まこと 茂木 雅子 園 麗華 是枝 まどか 羽田 さゆり 酒匂
姓名の位置が、英語圏のままです。
full_name関数にオプションを追加します。
print(person.full_name(reverse=True))
この状態で実行(5回)した結果は、以下。
鬼島 こじろう 諸見里 国包 日高 史絵 日野 ふじこ 五反田 ヨウコ
日本人の名前表記になりました。
公式ページのマニュアルを見れば、大体やりたいことはできるでしょう。
動作確認に関しては、以上とします。
最後に、冒頭で示した個人情報のフェイクを作成するコードを載せておきます。
from mimesis import Person from mimesis import Address from mimesis.locales import Locale for i in range(10): person = Person(Locale.JA) address = Address(locale=Locale.JA) print(person.full_name(reverse=True), end=",") print(address.region(), end=",") print(person.email(domains=['example.com']))
なお、メールアドレスに関しては、ドメインを制限しています。
制限しないと、本当に存在していそうなメールアドレスが作成されます。
それは、個人情報を晒しているようで気持ちの良いモノではありません。