kr-digital / names-detector
从给定字符串中检测姓名和性别
2.1.0
2020-05-08 16:40 UTC
Requires
- php: >=7.1.0
- ext-json: *
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.16.3
- phpunit/phpunit: ^7.5.20
- roave/security-advisories: dev-master
This package is auto-updated.
Last update: 2024-08-30 01:38:11 UTC
README
该库能够根据json/php格式的字典来确定用户的名字、姓氏和性别,并基于任意字符串生成对用户的称呼。
快速开始
composer require kr-digital/names-detector
<?php $namesDetector = new \KRDigital\NamesDetector\NamesDetector(); $firstNameEntry = $namesDetector->extractFirstName('Иванов Иван Иванович'); // $entry->getValue() = 'Иван', $entry->getGender()->getValue() = 'm' $middleNameEntry = $namesDetector->extractMiddleName('Иванов Иван Иванович'); // $middleNameEntry->getValue() = 'Иванович', $middleNameEntry->getGender()->getValue() = 'm' $title = $namesDetector->createTitle('Мария Петровна Смирнова'); // $title = 'Уважаемая Мария Петровна'
使用自定义字典
JSON格式的有效字典格式
{ "first_names": [ [ "Андрей", "m" ], [ "Надежда", "f" ] ], "middle_names": [ [ "Александрович", "m" ], [ "Александровна", "f" ] ] }
PHP格式
<?php return [ 'first_names' => [ [ 'Андрей', 'm', ], [ 'Надежда', 'f', ], ], 'middle_names' => [ [ 'Александрович', 'm', ], [ 'Александровна', 'f', ], ], ];
使用自己的字典
<?php $customDictionaryPath = '/var/www/app/data/en_dictionary.json'; // поддерживаемые форматы: php, json $config = new \KRDigital\NamesDetector\Config\Config($customDictionaryPath); $namesDetector = new \KRDigital\NamesDetector\NamesDetector($config); // <...>
自定义称呼
<?php $namesDetector = new \KRDigital\NamesDetector\NamesDetector(); $prefix = new \KRDigital\NamesDetector\Entry\Prefix\Prefix('Дорогой', 'Дорогая'); $namesDetector->createTitle('Иванов Иван Иванович', $prefix); // 'Дорогой Иван Иванович'