名前の自動生成
前にどこかのブログの記事で読んだ記憶があるんですが、名前の自動生成にチャレンジしてみました。
とりあえず男の名前と女の名前、および地名です。
まず男性。

女性。

地名。

いまいちな感じもするけど、まぁこんなもんかな。
やり方は以下の通り。
実際の名前データを名前辞典から引っ張ってくる
↓
一文字ずつ、その文字がどの文字の後ろにあるかを解析してデータベース入力
↓
つながりが多かった文字の組み合わせのみを抽出(「ア→ル」、「ア→ー」など)
↓
一文字ずつ名前を組んでいく
さっき抽出した組み合わせの中からランダムに次の文字を決定
やり方はかなり雑でしたが、「ニコライ」「クリス」「ニューブリック」みたいな自然な文字の流れをある程度は組むことができそうです。
今回は二文字のつながりのみ考慮しましたが、本気でやるんだったら三文字の流れの考慮とか、確率とかを使うことになるんでしょうねぇ。めちゃくちゃ面倒くさそうだったので手は出しませんでしたが。
ちなみに解析したのは男性と女性の名前が英語、ドイツ語、フランス語の名前をそれぞれ2000ほど、地名は各国の都市の名前を500ほどでした。
生成された名前を眺めているとなんとなく名残が分かりますね。
「リヒ」のつながりはドイツ語だし「ーヌ」のつながりはフランス語だし。
もっと素材があれば「ギリシャっぽい名前」とかいろいろなことができそうです。
しかしカタカナの名前はどうつなげてもある程度は自然に聞こえるからいいですね。日本人の名前の自動生成は難易度がとても高そうです。
とりあえず男の名前と女の名前、および地名です。
まず男性。

女性。

地名。

いまいちな感じもするけど、まぁこんなもんかな。
やり方は以下の通り。
実際の名前データを名前辞典から引っ張ってくる
↓
一文字ずつ、その文字がどの文字の後ろにあるかを解析してデータベース入力
↓
つながりが多かった文字の組み合わせのみを抽出(「ア→ル」、「ア→ー」など)
↓
一文字ずつ名前を組んでいく
さっき抽出した組み合わせの中からランダムに次の文字を決定
やり方はかなり雑でしたが、「ニコライ」「クリス」「ニューブリック」みたいな自然な文字の流れをある程度は組むことができそうです。
今回は二文字のつながりのみ考慮しましたが、本気でやるんだったら三文字の流れの考慮とか、確率とかを使うことになるんでしょうねぇ。めちゃくちゃ面倒くさそうだったので手は出しませんでしたが。
ちなみに解析したのは男性と女性の名前が英語、ドイツ語、フランス語の名前をそれぞれ2000ほど、地名は各国の都市の名前を500ほどでした。
生成された名前を眺めているとなんとなく名残が分かりますね。
「リヒ」のつながりはドイツ語だし「ーヌ」のつながりはフランス語だし。
もっと素材があれば「ギリシャっぽい名前」とかいろいろなことができそうです。
しかしカタカナの名前はどうつなげてもある程度は自然に聞こえるからいいですね。日本人の名前の自動生成は難易度がとても高そうです。
- 関連記事
スポンサーサイト