Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 有好的姓氏数据库吗?_Database_Testing_Test Data - Fatal编程技术网

Database 有好的姓氏数据库吗?

Database 有好的姓氏数据库吗?,database,testing,test-data,Database,Testing,Test Data,我希望生成一些数据库测试数据,特别是包含人名的表列。为了更好地说明基于名称的搜索的索引工作情况,我希望尽可能接近真实世界的名称及其真实频率分布,例如,许多不同的名称,其频率分布在某些幂律分布上 理想情况下,我正在寻找一个免费可用的数据文件,每个文件名后跟一个单一的频率值(或等效的概率) 基于盎格鲁-撒克逊人的名字就可以了,尽管来自其他文化的名字也很有用。牛津大学在其公共FTP站点上提供了压缩的.gz文件中的单词列表。我找到了一些符合要求的美国人口普查数据。唯一需要注意的是,它只列出至少出现100

我希望生成一些数据库测试数据,特别是包含人名的表列。为了更好地说明基于名称的搜索的索引工作情况,我希望尽可能接近真实世界的名称及其真实频率分布,例如,许多不同的名称,其频率分布在某些幂律分布上

理想情况下,我正在寻找一个免费可用的数据文件,每个文件名后跟一个单一的频率值(或等效的概率)


基于盎格鲁-撒克逊人的名字就可以了,尽管来自其他文化的名字也很有用。

牛津大学在其公共FTP站点上提供了压缩的.gz文件中的单词列表。

我找到了一些符合要求的美国人口普查数据。唯一需要注意的是,它只列出至少出现100次的名称

通过这篇博客发现,它也显示了幂律分布曲线

除此之外,您还可以使用轮盘赌轮选择从列表中采样,例如(未测试)

struct name条目
{
公共字符串\u名称;
公共国际频率;
}
int _frequencyTotal;//预先计算这个。
公共字符串SampleName(NameEntry[]nameEntryArr,随机rng)
{
//掷轮盘赌球。
int throwValue=rng.NextDouble()*frequencyTotal;
int累加器=0.0;

对于(inti=0;i您还可以查看jFairy项目。它是用Java编写的,会生成假数据(例如名称)


谷歌的第一个热门话题:@PengOne我不认为你可以下载他们的数据集,但是,它的名字来源不是频率。@Rup:我没怎么看它,所以为什么它是一个评论而不是答案。我想它可能是一个开始寻找的地方。谢谢。那里没有频率数据,但我可以从一个给定的列表中用适当的分布进行采样n以提供更真实的测试数据。尽管事后看来,在累积频率列表上使用二进制搜索方法更有效。或者对于固定数量的样本,您可以使用随机通用抽样()此答案中的链接不再有效。1990年名称数据可用:
struct NameEntry
{
    public string _name;
    public int _frequency;
}

int _frequencyTotal; // Precalculate this.


public string SampleName(NameEntry[] nameEntryArr, Random rng)
{
    // Throw the roulette ball.
    int throwValue = rng.NextDouble() * frequencyTotal;
    int accumulator = 0.0;

    for(int i=0; i<nameEntryArr.Length; i++)
    {
        accumulator += nameEntryArr[i]._frequency;
        if(throwValue <= accumulator) {
            return nameEntryArr[i]._name;
        }
    }

    // If we get here then we have an array of zero fequencies.
    throw new ApplicationException("Invalid operation. No non-zero frequencies to select.");
}
Fairy fairy = Fairy.create(); 
Person person = fairy.person();
System.out.println(person.firstName());           // Chloe
System.out.println(person.lastName());            // Barker
System.out.println(person.fullName());            // Chloe Barker