adt/full-name-analyser

从全名中获取名字、姓氏、名前和名后的头衔、性别和称呼的解析器。

v1.0.1 2022-11-22 07:15 UTC

This package is auto-updated.

Last update: 2024-09-13 10:28:35 UTC


README

  • 解析指定的字符串,提取名字、姓氏和名前名后的头衔,不会受到多个名字/姓氏/头衔同时出现、名字和姓氏顺序颠倒或输入无重音名字的影响。
  • 尝试检测性别,除了包含约25,000个来自https://www.behindthename.com/的网名(补充了来自https://www.kalendar-online.cz/的较少见的捷克名字和来自实践的其它名字,最后更新于2022年11月22日)外,还考虑了姓氏和性别中性的名字(例如Alex、Nikola等)。
  • 生成称呼,考虑了输入的头衔(例如对于"MUDr. Jan Novák"将生成"doktore")。
  • 主要针对捷克和斯洛伐克名字的正确功能。
  • 尝试检测非人名的输入。
  • 不尝试不必要的魔法(不使用频率统计将无重音字符串转换为有重音字符串,例如在捷克/斯洛伐克)。
  • 100%代码覆盖自动测试

使用方法

$result = (new FullNameAnalyser('cs', 'CZ', \ADT\FullNameAnalyser\FullNameAnalyser::VOCATIVE_FORM_INFORMAL))->anylyse('prof. Ing. Tomáš Kudělka, Ph.D.');

$result->getTitleBefore(); // vrátí "prof. Ing."
$result->getFirstName(); // vrátí "Tomáš"
$result->getLastName(); // vrátí "Kudělka"
$result->getTitleAfter(); // vrátí "Ph.D."
$result->getGender(); // vrátí "male" (alternativně "female")
$result->getVocative(); // vrátí "Tomáši" (alternativně "profesore")

允许的语言:cssk

允许的国家:CZSK

允许的称呼形式:VOCATIVE_FORM_INFORMALVOCATIVE_FORM_FORMAL

如果您知道性别,可以将它作为第二个参数传递给analyse方法。

致谢