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 编码。
构造函数。若给定了可选参数 options 和 lexicon_path,该参数会被用于初始化选项和加载词典。
设置选项。options 可以为数组或者字符串。若使用字符串,各选项用空格分隔。
若要设置某选项为关闭,在代表该选项的字符前加减号“-”。可设置的选项如下:
s - name 参数包含姓氏。
加载一个词典。成功返回 true,失败返回 false。
获取所加载词典的注释信息。
获取给定姓名为男性姓名的概率。
概率大于 0.5 表示猜测结果为男性,小于 0.5 表示猜测结果为女性,恰好为 0.5 表示在字典中找不到所查询的字或猜测结果为中性。
2005-2014, Wudi <wudi@wudilabs.org>, Wudi Labs