tuqqu/gender-detector

从名字获取性别

v0.5.2 2023-09-04 20:50 UTC

This package is auto-updated.

Last update: 2024-09-08 16:17:14 UTC


README

使用PHP获取与名字最可能关联的性别。

此库使用来自由Jörg Michael创建的gender.c项目的数据(详情)。

安装

使用Composer安装

composer require tuqqu/gender-detector

使用方法

使用方法简单直接

$detector = new GenderDetector\GenderDetector();

$detector->getGender('Thomas');
// Gender::Male

$detector->getGender('Avery');
// Gender::Unisex

完全支持I18N

$detector->getGender('Geirþrúður');
// Gender::Female

您也可以指定一个国家

$detector->getGender('Robin');
// Gender::MostlyMale

$detector->getGender('Robin', 'US');
// Gender::MostlyFemale

$detector->getGender('Robin', 'FR');
// Gender::Male

$detector->getGender('Robin', 'IE');
// Gender::Unisex

国家代码是不区分大小写的ISO 3166-1 alpha-2代码。或者,您可以使用枚举值;值和代码的完整列表可以在这里找到。

所有可能的性别值的完整列表是

enum Gender
{
    case Male;
    case MostlyMale;
    case Female;
    case MostlyFemale;
    case Unisex;
}

对于未知名字,它将返回null

如果您有替代数据文件,可以将它作为第一个参数传递给GenderDetector构造函数。此外,您可以使用addDictionaryFile(string $path)方法添加新的词典文件。

$detector = new GenderDetector('custom_file_path/dict.txt');
$detector->addDictionaryFile('custom_file_path/another_dict.txt');

请注意,每次GenderDetector实例化都会触发文件解析,因此您可能希望避免两次读取相同的文件。

许可证

GenderDetector许可协议为MIT许可证。

数据文件data/nam_dict.txt许可协议为GNU自由文档许可证。