Coder Social home page Coder Social logo

tooleks / shevchenko-js Goto Github PK

View Code? Open in Web Editor NEW
73.0 2.0 3.0 48.69 MB

JavaScript library for declension of Ukrainian anthroponyms

Home Page: https://shevchenko-js.tooleks.com/

License: MIT License

JavaScript 5.03% TypeScript 57.82% Vue 37.09% SCSS 0.06%
ukrainian ukrainian-language declension anthroponym-declension family-name-declension first-name-declension given-name-declension patronymic-declension patronymic-name-declension personal-name-declension

shevchenko-js's Introduction

shevchenko.js

JavaScript library for declension of Ukrainian anthroponyms

Links

User Guide

Installation

npm

To install the library using npm package manager, use the following command:

npm install --save shevchenko

Import

The library comes in three formats: CommonJS module, ECMAScript module, and a minified UMD bundle. You can select the format that best suits your needs.

CommonJS

To import the library as a CommonJS module, use the following code:

const shevchenko = require('shevchenko');

ECMAScript

To import the library as an ECMAScript module, use the following code:

import * as shevchenko from 'shevchenko';

UMD

To import the library as a UMD bundle, include the following script tag in your HTML code:

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

Use Cases

Personal names declension

This example shows how to use the library to decline Ukrainian anthroponyms. The example code takes an input object that includes grammatical gender, given name, patronymic name, and family name of a person. Then, it passes the input object to the shevchenko.inVocative() method, which returns the declined version of the input anthroponym in vocative case. Finally, it logs the output object to the console.

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));

Automatic grammatical gender detection

This example shows how to use the library to automatically detect the grammatical gender of a Ukrainian anthroponym. The example code takes an input object that includes given name, patronymic name, and family name of a person. Then, it passes the input object to the shevchenko.detectGender() method, which returns the detected gender of the input anthroponym. If the method fails to detect the grammatical gender, it throws an error. Finally, it logs the declined version of the input object in vocative case to the console.

const shevchenko = require('shevchenko');

async function main() {
  const anthroponym = {
    givenName: 'Лариса',
    patronymicName: 'Петрівна',
    familyName: 'Косач-Квітка'
  };

  const gender = await shevchenko.detectGender(anthroponym); // "feminine"
  if (gender == null) {
    throw new Error('Failed to detect grammatical gender.');
  }

  const input = { ...anthroponym, gender };

  const output = await shevchenko.inVocative(input);

  console.log(output); // { givenName: "Ларисо", patronymicName: "Петрівно", familyName: "Косач-Квітко" }
}

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

Usage via HTTP

The library can be integrated into your project via HTTP API. Please refer to https://github.com/tooleks/shevchenko-http repository for more examples.

shevchenko-js's People

Contributors

annapogorelova avatar dependabot[bot] avatar tooleks avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

shevchenko-js's Issues

Auto gender

Hi.
On the demo website there is an option to autoselect gender.
Is it possible to add this function to the package?

Cannot import library: getting 404

When trying to execute npm install --save shevchenko.js

I am getting the response:

npm ERR! code E404
npm ERR! 404 Not Found - GET https://registry.npmjs.org/shevchenko.js - Not found
npm ERR! 404
npm ERR! 404  'shevchenko.js@*' is not in this registry.
npm ERR! 404
npm ERR! 404 Note that you can also install from a
npm ERR! 404 tarball, folder, http url, or git url.

Trying to proceed to the URL with the library in the npm registry I am getting 404 Not Found response:

image

Відмінювання прізвищ, які співпадають із загальним іменником

Привіт) Думаю, тут англійською писати нема сенсу. Перш за все - класна ліба, зберегла мені купу часу, дякую! Побачив лише одну проблему: тут наполягають на тому, що "прізвища з закінченнями іменників II відміни відмінюються за зразками відмінювання відповідних іменників ІІ відміни", тобто родовий для "вітер", буде "вітру", хоча Дністер - Дністра. Тобто, виглядає так, що цього рядка самого по собі недостатньо. Як варіант, можливо, має сенс додати словник із відмінами для кейсів, коли прізвище повністю співпадає з загальним іменником. Я б не сказав, що це таки issue, можна і закрити, якщо там потрібно додавати/міняти тону коду.

Using script as a macros for Libreoffice/MS Office

Hi! Would you be so kind to help to explain, how I may re-use this script for a macros/extension in LibreOffice and MS Office? Eg, with the purpose to conjugate nouns in different grammatical cases? Thanks!

Would that be possible to use shevchenko.js to apply declensions to country and city names?

I have a database of country and city names in ukrainian, but declension cases are missing there. I would like to add those declension cases to it, i.e.:

  {
    "code": "SV",
    "name": "Сальвадор",
    "currency": "USD",
    "name_translations": { "en": "El Salvador" },
    "cases": {
      "давальний": "Сальвадору",
      "місцевий": "Сальвадорі",
      "родовий": "Сальвадора",
      "орудний": "Сальвадором",
      "знахідний": "у Сальвадор"
    }
  },

But I can't seems to make this library work with only givenName. Gender detection functionality fails and return null. Would that be possible to add declension cases for locations in this library?

Some bad last names in last_names.json file (data folder)

I found some bad chars in last_names.json file (data folder).
I made corrections:

  • replaced some bad chars by correct one (see code below)
    lastName = lastName.Replace("’", "'");
    lastName = lastName.Replace("l", "і");
    lastName = lastName.Replace("3", "з");
    lastName = lastName.Replace(",", "'");
  • removes duplicates (ільченко, ісаєнко, лук'яненко, дем'яненко, григор'єва, григор'єв, дем'янчук, лук'янова, хом'як, затишняк, баб'як)
  • do not include words with other bad chars (1099 'ы', 1101 'э', 1098 'ъ').
    I got 99'902 correct last names. The original file has 99'922 last names.
    I attached file with fixed last names.
    fixed_last_names.zip

Failed to parse sorce map

Description: Got an error while run application: Failed to parse source map from ... file: Error: ENOENT: no such file or directory.

Environment: React 18, typescript, create-react-app

Incorrect generation within the Vinnytsia Council case

Expect:

1. Називний:	Вінницька Міська Рада
2. Родовий:	Вінницької Міської Ради
3. Давальний:	Вінницькій Міській Раді
4. Знахідний:	Вінницьку Міську Раду
5. Орудний:	Вінницькою Міською Радою
6. Місцевий:	у Вінницькій Міській Раді
7. Кличний:	О Вінницька Міська Радо!

Got:

1. Називний:  	Вінницька Міська Рада
2. Родовий:   	Вінницької Міськи Рада
3. Давальний: 	Вінницькій Місьці Рада
4. Знахідний: 	Вінницьку Міську Рада
5. Орудний:   	Вінницькою Міською Рада
6. Місцевий:  	Вінницькій Місьці Рада
7. Кличний:	Вінницька Місько Рада

Optimize npm package size

Since the fix for #158 was introduced, the npm package size has increased. Find a way to optimize the resulting package size without breaking the original fix.

Before:

npm notice 
npm notice 📦  [email protected]
npm notice === Tarball Contents === 
npm notice 1.1kB   LICENSE                                                                       
npm notice 874B    README.md                                                                     
npm notice 2.0MB   dist/cjs/shevchenko.js                                                        
npm notice 180.3kB dist/cjs/shevchenko.js.map                                                    
npm notice 2.0MB   dist/es/shevchenko.js                                                         
npm notice 169.1kB dist/es/shevchenko.js.map                                                     
npm notice 761B    dist/types/anthroponym-inflection/anthroponym-inflector.d.ts                  
npm notice 638B    dist/types/anthroponym-inflection/anthroponym-inflector.d.ts.map              
npm notice 457B    dist/types/anthroponym-inflection/append-command-runner.d.ts                  
npm notice 404B    dist/types/anthroponym-inflection/append-command-runner.d.ts.map              
npm notice 357B    dist/types/anthroponym-inflection/command-runner-factory.d.ts                 
npm notice 337B    dist/types/anthroponym-inflection/command-runner-factory.d.ts.map             
npm notice 471B    dist/types/anthroponym-inflection/first-name-inflector.d.ts                   
npm notice 500B    dist/types/anthroponym-inflection/first-name-inflector.d.ts.map               
npm notice 333B    dist/types/anthroponym-inflection/index.d.ts                                  
npm notice 354B    dist/types/anthroponym-inflection/index.d.ts.map                              
npm notice 131B    dist/types/anthroponym-inflection/inflector-command-runner.d.ts               
npm notice 244B    dist/types/anthroponym-inflection/inflector-command-runner.d.ts.map           
npm notice 1.2kB   dist/types/anthroponym-inflection/inflector.types.d.ts                        
npm notice 1.2kB   dist/types/anthroponym-inflection/inflector.types.d.ts.map                    
npm notice 655B    dist/types/anthroponym-inflection/last-name-inflector.d.ts                    
npm notice 626B    dist/types/anthroponym-inflection/last-name-inflector.d.ts.map                
npm notice 473B    dist/types/anthroponym-inflection/middle-name-inflector.d.ts                  
npm notice 501B    dist/types/anthroponym-inflection/middle-name-inflector.d.ts.map              
npm notice 522B    dist/types/anthroponym-inflection/name-inflector.d.ts                         
npm notice 448B    dist/types/anthroponym-inflection/name-inflector.d.ts.map                     
npm notice 462B    dist/types/anthroponym-inflection/replace-command-runner.d.ts                 
npm notice 406B    dist/types/anthroponym-inflection/replace-command-runner.d.ts.map             
npm notice 447B    dist/types/anthroponym-inflection/rule-inflector.d.ts                         
npm notice 427B    dist/types/anthroponym-inflection/rule-inflector.d.ts.map                     
npm notice 195B    dist/types/bootstrap.d.ts                                                     
npm notice 228B    dist/types/bootstrap.d.ts.map                                                 
npm notice 216B    dist/types/core/anthroponym.interface.d.ts                                    
npm notice 331B    dist/types/core/anthroponym.interface.d.ts.map                                
npm notice 113B    dist/types/core/gender.enum.d.ts                                              
npm notice 179B    dist/types/core/gender.enum.d.ts.map                                          
npm notice 283B    dist/types/core/grammatical-case.enum.d.ts                                    
npm notice 280B    dist/types/core/grammatical-case.enum.d.ts.map                                
npm notice 240B    dist/types/core/index.d.ts                                                    
npm notice 283B    dist/types/core/index.d.ts.map                                                
npm notice 219B    dist/types/core/validator.d.ts                                                
npm notice 192B    dist/types/core/validator.d.ts.map                                            
npm notice 100B    dist/types/internal.d.ts                                                      
npm notice 154B    dist/types/internal.d.ts.map                                                  
npm notice 366B    dist/types/part-of-speech-recognition/index.d.ts                              
npm notice 356B    dist/types/part-of-speech-recognition/index.d.ts.map                          
npm notice 184B    dist/types/part-of-speech-recognition/neural-network-config.d.ts              
npm notice 204B    dist/types/part-of-speech-recognition/neural-network-config.d.ts.map          
npm notice 199B    dist/types/part-of-speech-recognition/neural-network-training-data.d.ts       
npm notice 300B    dist/types/part-of-speech-recognition/neural-network-training-data.d.ts.map   
npm notice 886B    dist/types/part-of-speech-recognition/neural-network.d.ts                     
npm notice 534B    dist/types/part-of-speech-recognition/neural-network.d.ts.map                 
npm notice 289B    dist/types/part-of-speech-recognition/part-of-speech-decoder.d.ts             
npm notice 296B    dist/types/part-of-speech-recognition/part-of-speech-decoder.d.ts.map         
npm notice 352B    dist/types/part-of-speech-recognition/part-of-speech-encoder.d.ts             
npm notice 356B    dist/types/part-of-speech-recognition/part-of-speech-encoder.d.ts.map         
npm notice 849B    dist/types/part-of-speech-recognition/part-of-speech-recognition-rule.d.ts    
npm notice 705B    dist/types/part-of-speech-recognition/part-of-speech-recognition-rule.d.ts.map
npm notice 600B    dist/types/part-of-speech-recognition/part-of-speech-recognizer.d.ts          
npm notice 479B    dist/types/part-of-speech-recognition/part-of-speech-recognizer.d.ts.map      
npm notice 133B    dist/types/part-of-speech-recognition/part-of-speech.enum.d.ts                
npm notice 217B    dist/types/part-of-speech-recognition/part-of-speech.enum.d.ts.map            
npm notice 244B    dist/types/part-of-speech-recognition/word-encoder.d.ts                       
npm notice 288B    dist/types/part-of-speech-recognition/word-encoder.d.ts.map                   
npm notice 219B    dist/types/part-of-speech-recognition/word-transformer.d.ts                   
npm notice 232B    dist/types/part-of-speech-recognition/word-transformer.d.ts.map               
npm notice 1.1kB   dist/types/shevchenko.d.ts                                                    
npm notice 692B    dist/types/shevchenko.d.ts.map                                                
npm notice 225B    dist/types/utils/lang.utils.d.ts                                              
npm notice 222B    dist/types/utils/lang.utils.d.ts.map                                          
npm notice 179B    dist/types/utils/regexp.utils.d.ts                                            
npm notice 203B    dist/types/utils/regexp.utils.d.ts.map                                        
npm notice 537B    dist/types/utils/string.utils.d.ts                                            
npm notice 383B    dist/types/utils/string.utils.d.ts.map                                        
npm notice 1.4MB   dist/umd/shevchenko.min.js                                                    
npm notice 192.3kB dist/umd/shevchenko.min.js.map                                                
npm notice 2.4kB   package.json                                                                  
npm notice === Tarball Details === 
npm notice name:          shevchenko                              
npm notice version:       2.1.0                                   
npm notice filename:      shevchenko-2.1.0.tgz                    
npm notice package size:  997.2 kB                                
npm notice unpacked size: 6.0 MB                                  
npm notice shasum:        7701bac8e28a63bd3456b3dc08e62ee5578ac77d
npm notice integrity:     sha512-1yQo3TnvY0TI0[...]fJ9Hab0CCm4Ug==
npm notice total files:   77                                      
npm notice 
+ [email protected]

After:

npm notice 
npm notice 📦  [email protected]
npm notice === Tarball Contents === 
npm notice 1.1kB   LICENSE                                                                       
npm notice 874B    README.md                                                                     
npm notice 2.0MB   dist/cjs/shevchenko.js                                                        
npm notice 180.3kB dist/cjs/shevchenko.js.map                                                    
npm notice 2.0MB   dist/es/shevchenko.js                                                         
npm notice 169.1kB dist/es/shevchenko.js.map                                                     
npm notice 761B    dist/types/anthroponym-inflection/anthroponym-inflector.d.ts                  
npm notice 638B    dist/types/anthroponym-inflection/anthroponym-inflector.d.ts.map              
npm notice 457B    dist/types/anthroponym-inflection/append-command-runner.d.ts                  
npm notice 404B    dist/types/anthroponym-inflection/append-command-runner.d.ts.map              
npm notice 357B    dist/types/anthroponym-inflection/command-runner-factory.d.ts                 
npm notice 337B    dist/types/anthroponym-inflection/command-runner-factory.d.ts.map             
npm notice 471B    dist/types/anthroponym-inflection/first-name-inflector.d.ts                   
npm notice 500B    dist/types/anthroponym-inflection/first-name-inflector.d.ts.map               
npm notice 333B    dist/types/anthroponym-inflection/index.d.ts                                  
npm notice 354B    dist/types/anthroponym-inflection/index.d.ts.map                              
npm notice 131B    dist/types/anthroponym-inflection/inflector-command-runner.d.ts               
npm notice 244B    dist/types/anthroponym-inflection/inflector-command-runner.d.ts.map           
npm notice 1.2kB   dist/types/anthroponym-inflection/inflector.types.d.ts                        
npm notice 1.2kB   dist/types/anthroponym-inflection/inflector.types.d.ts.map                    
npm notice 655B    dist/types/anthroponym-inflection/last-name-inflector.d.ts                    
npm notice 626B    dist/types/anthroponym-inflection/last-name-inflector.d.ts.map                
npm notice 473B    dist/types/anthroponym-inflection/middle-name-inflector.d.ts                  
npm notice 501B    dist/types/anthroponym-inflection/middle-name-inflector.d.ts.map              
npm notice 522B    dist/types/anthroponym-inflection/name-inflector.d.ts                         
npm notice 448B    dist/types/anthroponym-inflection/name-inflector.d.ts.map                     
npm notice 462B    dist/types/anthroponym-inflection/replace-command-runner.d.ts                 
npm notice 406B    dist/types/anthroponym-inflection/replace-command-runner.d.ts.map             
npm notice 447B    dist/types/anthroponym-inflection/rule-inflector.d.ts                         
npm notice 427B    dist/types/anthroponym-inflection/rule-inflector.d.ts.map                     
npm notice 195B    dist/types/bootstrap.d.ts                                                     
npm notice 228B    dist/types/bootstrap.d.ts.map                                                 
npm notice 216B    dist/types/core/anthroponym.interface.d.ts                                    
npm notice 331B    dist/types/core/anthroponym.interface.d.ts.map                                
npm notice 113B    dist/types/core/gender.enum.d.ts                                              
npm notice 179B    dist/types/core/gender.enum.d.ts.map                                          
npm notice 283B    dist/types/core/grammatical-case.enum.d.ts                                    
npm notice 280B    dist/types/core/grammatical-case.enum.d.ts.map                                
npm notice 240B    dist/types/core/index.d.ts                                                    
npm notice 283B    dist/types/core/index.d.ts.map                                                
npm notice 219B    dist/types/core/validator.d.ts                                                
npm notice 192B    dist/types/core/validator.d.ts.map                                            
npm notice 100B    dist/types/internal.d.ts                                                      
npm notice 154B    dist/types/internal.d.ts.map                                                  
npm notice 366B    dist/types/part-of-speech-recognition/index.d.ts                              
npm notice 356B    dist/types/part-of-speech-recognition/index.d.ts.map                          
npm notice 184B    dist/types/part-of-speech-recognition/neural-network-config.d.ts              
npm notice 204B    dist/types/part-of-speech-recognition/neural-network-config.d.ts.map          
npm notice 199B    dist/types/part-of-speech-recognition/neural-network-training-data.d.ts       
npm notice 300B    dist/types/part-of-speech-recognition/neural-network-training-data.d.ts.map   
npm notice 886B    dist/types/part-of-speech-recognition/neural-network.d.ts                     
npm notice 534B    dist/types/part-of-speech-recognition/neural-network.d.ts.map                 
npm notice 289B    dist/types/part-of-speech-recognition/part-of-speech-decoder.d.ts             
npm notice 296B    dist/types/part-of-speech-recognition/part-of-speech-decoder.d.ts.map         
npm notice 352B    dist/types/part-of-speech-recognition/part-of-speech-encoder.d.ts             
npm notice 356B    dist/types/part-of-speech-recognition/part-of-speech-encoder.d.ts.map         
npm notice 849B    dist/types/part-of-speech-recognition/part-of-speech-recognition-rule.d.ts    
npm notice 705B    dist/types/part-of-speech-recognition/part-of-speech-recognition-rule.d.ts.map
npm notice 600B    dist/types/part-of-speech-recognition/part-of-speech-recognizer.d.ts          
npm notice 479B    dist/types/part-of-speech-recognition/part-of-speech-recognizer.d.ts.map      
npm notice 133B    dist/types/part-of-speech-recognition/part-of-speech.enum.d.ts                
npm notice 217B    dist/types/part-of-speech-recognition/part-of-speech.enum.d.ts.map            
npm notice 244B    dist/types/part-of-speech-recognition/word-encoder.d.ts                       
npm notice 288B    dist/types/part-of-speech-recognition/word-encoder.d.ts.map                   
npm notice 219B    dist/types/part-of-speech-recognition/word-transformer.d.ts                   
npm notice 232B    dist/types/part-of-speech-recognition/word-transformer.d.ts.map               
npm notice 1.1kB   dist/types/shevchenko.d.ts                                                    
npm notice 692B    dist/types/shevchenko.d.ts.map                                                
npm notice 225B    dist/types/utils/lang.utils.d.ts                                              
npm notice 222B    dist/types/utils/lang.utils.d.ts.map                                          
npm notice 179B    dist/types/utils/regexp.utils.d.ts                                            
npm notice 203B    dist/types/utils/regexp.utils.d.ts.map                                        
npm notice 537B    dist/types/utils/string.utils.d.ts                                            
npm notice 383B    dist/types/utils/string.utils.d.ts.map                                        
npm notice 1.4MB   dist/umd/shevchenko.min.js                                                    
npm notice 192.3kB dist/umd/shevchenko.min.js.map                                                
npm notice 2.4kB   package.json                                                                  
npm notice 1.5kB   src/anthroponym-inflection/anthroponym-inflector.ts                           
npm notice 482B    src/anthroponym-inflection/append-command-runner.ts                           
npm notice 758B    src/anthroponym-inflection/command-runner-factory.ts                          
npm notice 1.2kB   src/anthroponym-inflection/first-name-inflector.ts                            
npm notice 298B    src/anthroponym-inflection/index.ts                                           
npm notice 75B     src/anthroponym-inflection/inflector-command-runner.ts                        
npm notice 1.1kB   src/anthroponym-inflection/inflector.types.ts                                 
npm notice 1.8kB   src/anthroponym-inflection/last-name-inflector.ts                             
npm notice 840B    src/anthroponym-inflection/middle-name-inflector.ts                           
npm notice 690B    src/anthroponym-inflection/name-inflector.ts                                  
npm notice 478B    src/anthroponym-inflection/replace-command-runner.ts                          
npm notice 1.4kB   src/anthroponym-inflection/rule-inflector.ts                                  
npm notice 2.3kB   src/bootstrap.ts                                                              
npm notice 158B    src/core/anthroponym.interface.ts                                             
npm notice 61B     src/core/gender.enum.ts                                                       
npm notice 211B    src/core/grammatical-case.enum.ts                                             
npm notice 205B    src/core/index.ts                                                             
npm notice 1.5kB   src/core/validator.ts                                                         
npm notice 62B     src/internal.ts                                                               
npm notice 331B    src/part-of-speech-recognition/index.ts                                       
npm notice 108B    src/part-of-speech-recognition/neural-network-config.ts                       
npm notice 132B    src/part-of-speech-recognition/neural-network-training-data.ts                
npm notice 2.0kB   src/part-of-speech-recognition/neural-network.ts                              
npm notice 627B    src/part-of-speech-recognition/part-of-speech-decoder.ts                      
npm notice 492B    src/part-of-speech-recognition/part-of-speech-encoder.ts                      
npm notice 1.1kB   src/part-of-speech-recognition/part-of-speech-recognition-rule.ts             
npm notice 871B    src/part-of-speech-recognition/part-of-speech-recognizer.ts                   
npm notice 73B     src/part-of-speech-recognition/part-of-speech.enum.ts                         
npm notice 543B    src/part-of-speech-recognition/word-encoder.ts                                
npm notice 193B    src/part-of-speech-recognition/word-transformer.ts                            
npm notice 133.6kB src/resources/inflector/rules.json                                            
npm notice 157B    src/resources/neural-networks/kosmii/cache.json                               
npm notice 163B    src/resources/neural-networks/kosmii/README.md                                
npm notice 358.4kB src/resources/neural-networks/kosmii/samples.json                             
npm notice 850.4kB src/resources/neural-networks/kosmii/structure.json                           
npm notice 2B      src/resources/neural-networks/pelykh/cache.json                               
npm notice 145B    src/resources/neural-networks/pelykh/README.md                                
npm notice 7.0kB   src/resources/neural-networks/pelykh/samples.json                             
npm notice 850.4kB src/resources/neural-networks/pelykh/structure.json                           
npm notice 15.9kB  src/resources/neural-networks/pohorielova/cache.json                          
npm notice 156B    src/resources/neural-networks/pohorielova/README.md                           
npm notice 1.1MB   src/resources/neural-networks/pohorielova/samples.json                        
npm notice 848.2kB src/resources/neural-networks/pohorielova/structure.json                      
npm notice 2.0kB   src/shevchenko.ts                                                             
npm notice 308B    src/utils/lang.utils.ts                                                       
npm notice 292B    src/utils/regexp.utils.ts                                                     
npm notice 1.5kB   src/utils/string.utils.ts                                                     
npm notice === Tarball Details === 
npm notice name:          shevchenko                              
npm notice version:       2.1.1                                   
npm notice filename:      shevchenko-2.1.1.tgz                    
npm notice package size:  1.5 MB                                  
npm notice unpacked size: 10.1 MB                                 
npm notice shasum:        b0a00a24bf8e371f6dbb7e195c6f54b20e9ab4bc
npm notice integrity:     sha512-xTVzwCXr1HL19[...]Dr5IP3q/YbLPw==
npm notice total files:   124                                     
npm notice 
+ [email protected] 

Додати чергування та спеціальні правила в іменниках II відміни

Дякую за цю бібліотеку!

https://webpen.com.ua/pages/linguistic_norm/first_name_declination.html?
З розділу Зауваження щодо відмінювання прізвищ іменникового типу ІІ відміни:

голосні о, е чергуються в закритому складі з і: Біловіл — Біловола, Сивокінь — Сивоконя, Кіт — Кота, Корінь — Кореня, Перебийніс — Перебийноса.
АЛЕ в деяких прізвищах буква і зберігається й у відкритому складі: Куліш — Куліша (хоч куліш – кулешу), Кисіль — Кисіля (хоч кисіль – киселю), Чміль — Чміля, Чіп — Чіпа.

Наразі демо показує помилки в давальному відмінку для прізвищ Куліш, Кисіль

Називний Давальний зараз Давальний має бути
Куліш Кулішу Кулешу
Кисіль Кисілю Киселю

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.