Gender Guesser
当前版本: 0.10.0, 最后更新: 2014年10月8日
Wudi <wudi@wudilabs.org>, Wudi Labs

名称

Gender Guesser - 性别猜测

概要

include_once 'genderguesser.php';

$name = '王杰';

$GenderGuesser = new GenderGuesser();
$GenderGuesser->loadLexicon('charlex_gender_full.lex');

$male_prob = $GenderGuesser->getMaleProbability($name);

echo "$name: ";
if ($male_prob === false) {
    echo '错误';
} elseif ($male_prob >= 0.5) {
    echo '男, 概率: ' . sprintf('%2.2f', $male_prob * 100) . '%';
} else {
    echo '女, 概率: ' . sprintf('%2.2f', (1.0 - $male_prob) * 100) . '%';
}

简介

本 Class 可以根据姓名猜测性别。目前可处理两个字、三个字和四个字的姓名。

一般来说,人们的名字和性别都有关系。例如名字中带有“杰”“志”“宏”等字的一般为男性,带有“琬”“佩”“琳”等字的一般为女性。本 Class 就是根据这个规律来猜测性别的。当然也有一些比较中性的字,例如“文”“安”“清”等,通过这样的字来猜测性别就比较困难了。

注意

数据统一使用 UTF-8 编码。

方法

__construct ( [ mixed options [, string lexicon_path ] ] )

构造函数。若给定了可选参数 options 和 lexicon_path,该参数会被用于初始化选项和加载词典。

bool setOptions ( mixed options )

设置选项。options 可以为数组或者字符串。若使用字符串,各选项用空格分隔。

若要设置某选项为关闭,在代表该选项的字符前加减号“-”。可设置的选项如下:

s - name 参数包含姓氏。

bool loadLexicon ( string path )

加载一个词典。成功返回 true,失败返回 false。

string getLexiconComment ( )

获取所加载词典的注释信息。

float getMaleProbability ( string name )

获取给定姓名为男性姓名的概率。

概率大于 0.5 表示猜测结果为男性,小于 0.5 表示猜测结果为女性,恰好为 0.5 表示在字典中找不到所查询的字或猜测结果为中性。

历史

v0.10.0 (2014-10-08)

v0.05.0 (2012-03-18)

v0.02.0 (2005-11-12)

作者

2005-2014, Wudi <wudi@wudilabs.org>, Wudi Labs