russian-name-detector

Определение пола человека по русскому имени, фамилии или отчеству.

Usage no npm install needed!

<script type="module">
  import russianNameDetector from 'https://cdn.skypack.dev/russian-name-detector';
</script>

README

Russian-Name-Detector Logo

YouTube IlyaDevman

Быстро определяем фамилию, имя, отчество и пол по строке.
🔮 Даже к гадалке ходить не нужно.

Добро пожаловать в 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);
})()