shevchenko.js

JavaScript бібліотека з відкритим кодом для відмінювання українських антропонімів

ДемонстраціяПриклад використання

Демонстрація відмінювання українських прізвищ, імен по батькові

Автоматичне визначення граматичного роду відбувається за ім'ям по батькові.
Знайшли помилку?
Граматичний відмінокРезультат відмінювання
Називний (хто?)Шевченко Тарас Григорович
Родовий (кого?)Шевченка Тараса Григоровича
Давальний (кому?)Шевченку Тарасу Григоровичу
Знахідний (кого?)Шевченка Тараса Григоровича
Орудний (ким?)Шевченком Тарасом Григоровичем
Місцевий (при кому?)Шевченкові Тарасові Григоровичу
КличнийШевченку Тарасе Григоровичу

Принцип роботи

Бібліотека містить понад вісімдесят граматичних правил для відмінювання прізвищ, імен по батькові. Належне правило обирається за граматичним відмінком, родом, закінченням слова, частиною мови, сферою застосування та пріоритетом.

При відмінюванні жіночих прізвищ із закінченнями на -а, -я та чоловічих прізвищ із закінченнями на -ой, -ій, -ий, -их для класифікації прізвищ іменникового та прикметникового походження використовується модель машинного навчання, навчена на більш як сорока тисячах прізвищ. Тому прізвища іменникового та прикметникового походжень відмінюються як іменники та прикметники відповідно: Диня (називний) → Дині (родовий), Синя (називний) → Синьої (родовий), Рий (називний) → Рия (родовий), Бурий (називний) → Бурого (родовий).

При відмінюванні відбуваються зміни голосних та приголосних звуків згідно з правилами української мови: Сивокінь (називний) → Сивоконя (родовий), Гичка (називний) → Гичці (давальний).

Складні імена та прізвища, утворені поєднанням двох самостійних частин відмінюються за правилами відмінювання кожної складової частини: Анна-Марія (називний) → Анни-Марії (родовий), Нечуй-Левицький (називний) → Нечуя-Левицького (родовий). Але коли перша частина прізвища — односкладове слово, то відмінюється, як правило, лише друга частина: Драй-Хмара (називний) → Драй-Хмари (родовий).

Встановлення

npm

npm install --save shevchenko

Node.js

const shevchenko = require("shevchenko");

Браузер

<‍script type="text/javascript" src="https://unpkg.com/shevchenko"><‍/script>

Приклад використання

const shevchenko = require('shevchenko');

async function main() {
  const input = {
    gender: 'masculine',
    givenName: 'Тарас',
    patronymicName: 'Григорович',
    familyName: 'Шевченко'
  };

  const output = await shevchenko.inVocative(input);

  console.log(output); // { givenName: "Тарасе", patronymicName: "Григоровичу", familyName: "Шевченку" }
}

main().catch((error) => console.error(error));