Skip to content

Kolll2/petrovich4j

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

91 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Petrovich petrovich4j

petrovich4j is a Java library which inflects Russian names to given grammatical case. It supports first names, last names and patronymic names inflections.

petrovich4j - это Java библиотека для склонения по пажежам русских имен, фамилий и отчеств. Библиотека не имеет дополнительных зависимостей и имеет размер около 12кб.

Build Status Maven Central Javadoc

Building

mvn -DskipTests=true clean package install

Maven

<dependency>
  <groupId>com.github.petrovich4j</groupId>
  <artifactId>petrovich4j</artifactId>
  <version>1.1.3</version>
</dependency>

Usage

Petrovich p = new Petrovich();
p.say("Александр", NameType.FirstName, Gender.Male, Case.Genitive) ➟ "Александра"
p.say("Сергеевич", NameType.PatronymicName, Gender.Male, Case.Dative) ➟ "Сергеевичу"
p.say("Пушкин", NameType.LastName, Gender.Male, Case.Prepositional) ➟  "Пушкине"

p.gender("Петрович", Gender.Both) ➟  Gender.Male
p.gender("Ивановна", Gender.Both) ➟  Gender.Female

Конфигурация

Все используемые правила перечисленны в классе Library и занимают порядка 100 строк кода. Меняйте их при необходимости прямо в коде или используйте конструктор класса Petrovich, который в качестве параметра принимает набор внешних правил.

Точность

Подробно о точности от оригинальных разработчиков: petrovich-ruby.

Если коротко: благодаря тому, что в библиотеке используется знание о роде имени (мужское или женское) и его типе (имя, фамилия, отчество) результат оказывается более точным, чем выдаваемый сервисом Yandex Inflect.

Кроме этого, Yandex Inflect имеет проблемы с буквой 'ё' и, в ряде случаев, проглатывает букву 'н' в суффиксе женских имен в родительском роде.

История

Оригинальный алгоритм был разработан на языке Ruby Андреем Козловым и Дмитрием Усталовым: petrovich-ruby.

На Java алгоритм был портирован Ринатом Мулюковым: petrovich-java.

Java версия petrovich4j убирает все зависимости от сторонних библиотек, добавляет несколько сотен тестов и исправляет ряд найденных ошибок.

Итого: размер библиотеки со всеми зависимостями составляет 12 килобайт, из которых 90% занимают правила.

License

This project available under MIT license

About

Russian names grammatical cases in Java

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Java 100.0%