Lingua::RU::Inflect - Склоняет русские имена
Версия 0.06
Lingua::RU::Inflect — модуль perl, предоставляющий ряд функций для русского языка: склонение имён (а также некоторых нарицательных существительных и прилагательных) и определение пола по имени.
Добавленные в версии 0.02 функции выбора правильной формы предлога с беглой гласной в зависимости от следующего за ним слова перенесены в Lingua::RU::Preposition.
Пример использования:
use Lingua::RU::Inflect; my @name = qw/Петрова Любовь Степановна/; my $gender = detect_gender_by_given_name(@name); # $gender == FEMININE my @genitive = inflect_given_name(GENITIVE, @name); # $genitive == qw/Петровой Любови Степановны/;
Пример однострочной программы:
perl -Ilib -Mcommon::sense -MLingua::RU::Inflect=:all \ -E 'say join " ", inflect_given_name(GENITIVE, qw/Перец Лев Ильич/)' # Перца Льва Ильича
В следующих версиях планируется склонять любые существительные, любые слова, что угодно...
Функции detect_gender_by_given_name и detect_gender_by_given_name экспортируются по умолчанию.
detect_gender_by_given_name
Кроме того, можно экспортировать константы с именами падежей:
use Lingua::RU::Inflect qw/:cases/;
Или функции и константы пола/рода:
use Lingua::RU::Inflect qw/:subs :genders/;
Или всё имеющееся: функции, псевдонимы, константы падежей и пола:
use Lingua::RU::Inflect qw/:all/; # или use Lingua::RU::Inflect qw/:cases :genders :subs/;
Пытается определить пол по имени. Принимает до трёх аргументов: фамилию, имя, отчество.
Возвращает MASCULINE либо FEMININE при успешном определении мужского либо женского пола соответственно или undef при невозможности однозначного определения.
MASCULINE
FEMININE
undef
При совпадении с каким-либо правилом оставшиеся правила игнорируются.
Отчество, если указано, позволяет однозначно определить пол: женские отчества заканчиваются на «на», мужские — на «ич» и «ыч».
Большинство русских женских имён оканчивается гласными «а» и «я». Большинство русских мужских имён оканчивается согласной.
Существуют исключения из обоих правил, женские имена (например, русское имя Любовь, библейские имена Руфь, Рахиль, иностранные имена) могут заканчиваться согласной буквой; мужские имена могут заканчиваться на «а» и «я», особенно это относится к уменьшительно-ласкательным формам имён: Алёша (Алексей), Коля (Николай) и т. д. По некоторым уменьшительно-ласкательным формам имён нельзя установить пол ввиду неоднозначности: так, имя Саша соответствует как мужскому имени Александр, так и женскому Александра; Женя — мужскому Евгений и женскому Евгения. Подобные исключения обрабатываются.
При получении неопределённого результата функция пытается определить его на следующем шаге.
Большинство русских фамилий образовано от притяжательных слов (включая имена). Женские варианты таких фамилий заканчиваются на «а». Некоторые фамиллии образованы от прилагательных. Женские варианты таких фамилий заканчиваются на «я».
Склоняет фамилию, имя, отчество. Принимает до 5 аргументов — пол, падеж, фамилия, имя, отчество (фамилия, имя, отчество должны быть в именительном падеже).
Возвращает список — фамилию, имя, отчество в заданном падеже.
Определяет пол по имени и склоняет это имя.
Принимает до 5 аргументов — падеж, фамилия, имя, отчество (фамилия, имя, отчество должны быть в именительном падеже).
Падеж может быть представлен константой, доступны имена: NOMINATIVE, GENITIVE, DATIVE, ACCUSATIVE, INSTRUMENTAL, PREPOSITIONAL для именительного, родительного, дательного, винительного, творительного и предложного падежей соответственно.
NOMINATIVE
GENITIVE
DATIVE
ACCUSATIVE
INSTRUMENTAL
PREPOSITIONAL
Функции для выбора предлогов перенесены в Lingua::RU::Preposition.
Пожалуйста, присылайте сообщения о найденных неполадках и желаемых возможностях на bug-lingua-ru-inflect at rt.cpan.org, или через веб-интерфейс на http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Lingua-RU-Inflect. Меня известят, и вы будете автоматически оповещены при устранении найденных вами неполадок.
bug-lingua-ru-inflect at rt.cpan.org
Вы можете найти документацию к этому модулю с помошью команды perldoc.
perldoc Lingua::RU::Inflect
Кроме того, вы можете найти информацию в других местах:
RT: CPAN's request tracker
http://rt.cpan.org/NoAuth/Bugs.html?Dist=Lingua-RU-Inflect
AnnoCPAN: Аннотированная документация CPAN
http://annocpan.org/dist/Lingua-RU-Inflect
Рейтинги CPAN
http://cpanratings.perl.org/d/Lingua-RU-Inflect
Поиск по CPAN
http://search.cpan.org/dist/Lingua-RU-Inflect/
Публичный репозиторий на github
https://github.com/shoorick/lingua-ru-inflect
http://www.imena.org/declension.html и http://new.gramota.ru/spravka/letters/71-rubric-482 — правила склонения.
https://www.behindthename.com/ — справочник имён (по-английски).
Александр Сапожников http://shoorick.ru/ <shoorick@cpan.org>
Эта библиотека является свободным программным обеспечением, вы можете распространять и модифицировать её на тех же условиях, что и Perl.
To install Lingua::RU::Inflect, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Lingua::RU::Inflect
CPAN shell
perl -MCPAN -e shell install Lingua::RU::Inflect
For more information on module installation, please visit the detailed CPAN module installation guide.