russian-name-detector
v1.0.3
Published
Определение пола человека по русскому имени, фамилии или отчеству.
Downloads
38
Maintainers
Readme
Быстро определяем фамилию, имя, отчество и пол по строке.
🔮 Даже к гадалке ходить не нужно.
Добро пожаловать в Russian Name Detector.
Поддержка от NodeJS 8 версии.
Как говорится: дай мне строчку, я дам объект с тем что смог распарсить.
✓ "иван кузнецов" - мальчик, имя Иван, фамилия Кузнецов!
✓ "игорь" - мальчик, имя Игорь!
✓ "василисова женя" - девочка, имя Женя, фамилия Василисова!
✓ "саша катков" - мальчик, имя Саша, фамилия Катков!
✓ "alexander kuznetsov" - мальчик, имя Alexander, фамилия Kuznetsov!
✓ "илья ilyich" - мальчик, имя Илья, отчество Ilyich!
✓ "наташа" - девочка, имя Наташа!
Поехали!
Оглавление
Как с этим работать
Установите npm-модуль в директории вашего проекта, это очень просто.
npm i russian-name-detector
Создайте экзепляр парсера
Базовый модуль:
var nameDetector = require("russian-name-detector")();
Модуль с функцией транскрипции (через Google Translate Api):
var nameDetector = require("russian-name-detector")({
google_api_key: "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
});
Модуль с функцией транскрипции понадобится чтобы корректно обработать имя, написанное на латинице, например, "Sasha Lulakov" в "Саша Лулаков".
Для это понадобится API-ключ от Google Переводчика, посмотри документацию гугла как его получить.
Без ключа модуль не сможет определять имена, написаные на латинице.
Распознавание
Модуль асинхронный, поэтому использование await и асинхронных функций является обязательным.
Всё настолько легко, что
let data = await nameDetector("илья 123 ильич");
Нам возвращается объект со следующими ключами:
- name - имя (string / undefined)
- middlename - отчество (string / undefined)
- surname - фамилия (string / undefined)
- sex - пол (string "m" или "f" / false)
Например:
{
"name": "Илья",
"middlename": "Ильич",
"surname": undefined,
"sex": "m"
}
Парсим практически любые строчки!
Проверь:
var nameDetector = require("russian-name-detector")({
google_api_key: "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
});
(async ()=>{
let arr = [];
arr.push( await nameDetector("саша куликов") );
/*
{
"name": "Саша",
"middlename": undefined,
"surname": "Куликов",
"sex": "m"
}
*/
arr.push( await nameDetector("цеценюк курашива альбертовна") );
/*
{
"name": "Курашива",
"middlename": "Альбертовна",
"surname": "Цеценюк",
"sex": "f"
}
*/
arr.push( await nameDetector("yulia_komaROva") );
/*
{
"name": "Yulia",
"middlename": undefined,
"surname": "Komarova",
"sex": "f"
}
*/
arr.push( await nameDetector("ilyich ilya") );
/*
{
"name": "Ilya",
"middlename": "Ilyich",
"surname": undefined,
"sex": "m"
}
*/
arr.push( await nameDetector("alexander1234442женьков ") );
/*
{
"name": "Alexander",
"middlename": undefined,
"surname": "Женьков",
"sex": "m"
}
*/
arr.push( await nameDetector(".павел?//дуров!") );
/*
{
"name": "Павел",
"middlename": undefined,
"surname": "Дуров",
"sex": "m"
}
*/
console.log(arr);
})()