склонение имен и фамилий php
Склонение имён на PHP
Частенько возникает необходимость склонять имена на PHP. Согласитесь, что фраза «Добавить в друзья Илья» звучит намного хуже, чем «Добавить в друзья Илью«. Поэтому склонение имён по падежам в PHP требуется достаточно часто, и в этой статье я расскажу, как это можно реализовать у себя на сайте.
Сразу скажу, что идеального варианта, увы, нет. Первый вариант весьма очевидный: найти базу имён, которые будут во всех падежах, и добавить к себе эту таблицу. Затем по имени в именительном падеже искать соответствующий падеж по базе. Минусы тут очевидны: огромная база, всех имён не охватите, лишняя нагрузка на сервер.
Скачав эту библиотеку и поместив на свой сайт, её можно использовать вот так:
Как видите, использовать библиотеку очень просто. С другой стороны, мой главный совет будет следующий: по-возможности вообще избегайте необходимости склонять слова. Всё равно будут иногда вводить люди то, что склоняться никак не может, и попытки склонения будут выглядеть нелепо. Ведь необязательно писать «Добавить в друзья Илью«, можно же ведь написано просто «Добавить в друзья» на странице Ильи.
Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!
Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.
Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления
Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.
Порекомендуйте эту статью друзьям:
Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):
Комментарии ( 1 ):
Выдаёт пустой массив, то есть, как пустой, входная строка в нём не отображается. Сначала он на путь ругался, одно звено добавил, теперь с ним порядок. Версия библиотеки 0.4. Что ещё можно сделать?
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.
Copyright © 2010-2021 Русаков Михаил Юрьевич. Все права защищены.
Склонение ФИО — NameCaseLib PHP Framework
Сегодня я расскажу о небольшом, но очень полезном фреймворке — NameCaseLib.
Я думаю, многие сталкивались с ситуацией, когда было необходимо просклонять Фамилию, Имя и Отчество человека по падежам. Данный фреймворк поможет нам избавиться от многочисленных «велосипедов».
Установка
Для работы NameCaseLib нам понадобится PHP5 и библиотека php_mbstring, для работы с текстом в формате UTF-8.
Отлично, теперь осталось подключить сам фреймворк, для этого скачаем необходимые файлы.
NameCaseLib поддерживает два языка: русский и украинский. Файл NCL.NameCase.ru.php содержит русские правила склонения, NCL.NameCase.ua.php, соответственно, украинские. В папке NCL расположено само «ядро» фреймворка, то есть, набор основных функций.
Соответственно, таким же образом, мы можем склонять и украинские ФИО, подключив украинские правила склонения.
Но, давайте все-таки разберем, какие параметры содержит в себе метод q, и как его еще можно использовать?
Данный метод имеет 3 параметра, 2 из них — можно не указывать. Первый параметр — ФИО человека, второй — падеж (Список констант приведу ниже; в случае, если не указан падеж (NULL), то метод возвращает все падежи), и третий — пол человека. (Константы, также, приведены ниже; если не указать пол (NULL), метод определит его сам)
Константы
Для указания пола используются константы:
Для указания падежей русского языка:
Для указания падежей украинского языка:
Примечания
Определение части ФИО
С помощью метода getFullNameFormat, мы можем определить часть, или какие части ФИО мы используем.
Но, что же делать, если все-таки фреймворк не может правильно определить, как склонять выбранное вами ФИО?
Для этого в библиотеке предусмотрен метод qFullName, который позволяет указать Фамилию, Имя, Отчество и пол человека в определенной последовательности.
Итоги
NameCaseLib — действительно удобный фреймворк, который включает в себя много полезных функций. На сайте имеется полная документация на русском языке.
Petrovich просклоняет русские имена
Вам часто приходится иметь дело со склонением имён пользователей на русском языке? При рассылке писем, при отображении страниц и упоминаний, при генерации рекламных объявлений? Скорее всего, приходится изворачиваться и писать все сообщения в именительном падеже — Иванов Пётр Сергеевич.
Это не всегда удобно, не всегда красиво, не всегда уместно. Русский язык одарён богатой морфологией, которая несколько затрудняет его автоматическую обработку. Всем известно, что антропонимы, как полагается именам существительным, подчиняются всем правилам словообразования.
Для решения этой проблемы при использовании Ruby существует Petrovich — удобная легковесная библиотека для автомагического склонения русскоязычных имён, фамилий и отчеств.
Использование
Базовый синтаксис достаточно прост для понимания.
Как можно заметить, имеется два параметра, которые описывают поведение анализатора: в конструктор класса Petrovich передаётся пол, вторым параметром метода склонения передаётся падеж.
При помощи метода petrovich указываются методы, представляющие фамилию, имя и отчество. В данном примере указано, что метод my_firstname представляет имя, метод my_lastname представляет фамилию, метод my_middlename представляет отчество. Ничто не мешает подмешать модуль и в обычный класс, всё будет работать так же хорошо. В целевой класс будут добавлены методы с падежами, описанными в таблице.
Некоторые особенности русского правописания учитываются достаточно хорошо.
Оценка аккуратности
Ради приличия, проводилась оценка аккуратности склонения слов. В качестве эталона взят список фамилий и их форм из морфологического словаря АОТ. Аккуратность оценивалась на основе обработки 88 314 примеров по формуле
,
где case — падеж, gender — пол, Vcase,gender — количество верных словоизменений для указанного падежа и рода, Ncase,gender — общее количество примеров для указанного падежа и рода.
На момент написания статьи наблюдается средняя аккуратность 99,6614% на основе обработки 88 314 примеров. Детали приведены ниже в таблице. Эта информация может быть полезна при использовании Petrovich в боевых условиях.
Пол / Падеж | Родительный | Дательный | Винительный | Творительный | Предложный |
---|---|---|---|---|---|
Мужской | 99,7137% | 99,7386% | 99,7635% | 97,9858% | 99,7261% |
Женский | 99,9102% | 99,9401% | 99,9701% | 99,4636% | 99,9401% |
Реквизиты
Репозиторий на GitHub располагается по адресу petrovich/petrovich-ruby. Библиотека распространяется на условиях MIT License. Авторами библиотеки являются Андрей Козлов (Bonch) и Дмитрий Усталов (dustalov).
Чтобы установить Petrovich и использовать его в собственных приложениях, достаточно выполнить gem install petrovich или дописать соответствующую строчку в Gemfile.
Веб-интерфейс
Приятно, что Андрей Ситник (Iskin) из «Злых Марсиан» сделал классный интерфейс, который позволяет играться с Petrovich прямо из браузера.
В настоящий момент интерфейс доступен по адресу http://petrovich.nlpub.ru/.
Портирование
Было бы здорово, если разработчики, работающие с другими языками программирования, портировали бы эту библиотеку на свои языки. Мы рады ответить на любые вопросы по Petrovich. В общем случае, начать портирование можно с нашей базы правил.
Спасибо, что дочитали до конца!
Иллюстрации с Петровичем принадлежат Андрею Бильжо, автору комиксов про Петровича.
Склонение по падежам в php примеры скрипт
Сегодня тема падежи в php. Как вообще php склонение по падежам использовать и есть ли готовые решения!
Вчера искал такое готовое решение!
Всё о склонениях по падежам в php
Что такое склонение по падежам в php!?
Скрипт склонения(namecaselib) по падежам использование.
Как происходит процесс склонение по падежам в php?
Ну и кого будем склонять!? Конечно же меня любимого…
Родительный падеж в PHP как сделать!
Результат склонения слов в родительном падеже через php
Пример склонения слов в родительном падеже через php:
Аминева Марата Римовича
Как сделать дательный падеж в PHP
Поступаем аналогично, как и с родительным, только нам нужно взять следующую ячейку по счету 3, по номеру 2.
Результат склонения слов в дательном падеже через php
Пример склонения слов в дательном падеже через php:
Аминеву Марату Римовичу
Как сделать винительный падеж в PHP
Для того, чтобы использовать винительный падеж в php. Надо использовать тот же скрипт, что и ранее, только изменить номер ячейки массива.
Результат склонения слов в винительном падеже через php
Пример склонения слов в винительном падеже через php:
Аминева Марата Римовича
Как сделать творительный падеж в PHP
Также продолжаем использовать нашу библиотеку и с творительным падежом в php, нам нужно только изменить число, которое отвечает за отображение имени в творительном падеже это цифра 4.
Результат склонения слов в творительном падеже через php
Пример склонения слов в творительном падеже через php:
Аминевым Маратом Римовичем
Как сделать предложный падеж в PHP
Последний по счету, но не по значимости предложный падеж в php, можно сделать абсолютно также, как и предыдущие падежи, только изменим цифру.
Результат склонения слов в предложном падеже через php
Пример склонения слов в предложном падеже через php:
Аминеве Марате Римовиче
Поисковые запросы на тему Падежи в php скрипт пример
родительном падеж в css
Сообщение системы комментирования :
Форма пока доступна только админу. скоро все заработает. надеюсь.
Склонение имен и фамилий php
Склонение падежей русских имён, фамилий и отчеств
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
Склонение падежей русских имён, фамилий и отчеств.
Портированная версия с Ruby на PHP
Для работы требуется PHP >= 5.3
Загрузите файлы в папку с библиотеками на сервере.
если вы хотите использовать petrovich как submodule,
или просто скачайте исходный код со страницы проекта на Github.
В библиотеку входит класс Petrovich и trait Trait_Petrovich
Trait содержит в себе
Названия суффиксов для методов образованы от английских названий соответствующих падежей. Полный список поддерживаемых падежей приведён в таблице ниже.
Суффикс метода | Падеж | Характеризующий вопрос |
---|---|---|
CASE_NOMENATIVE | именительный | Кто? Что? |
CASE_GENITIVE | родительный | Кого? Чего? |
CASE_DATIVE | дательный | Кому? Чему? |
CASE_ACCUSATIVE | винительный | Кого? Что? |
CASE_INSTRUMENTAL | творительный | Кем? Чем? |
CASE_PREPOSITIONAL | предложный | О ком? О чём? |
Метод Petrovich::detectGender возвращает пол, на основе отчества. Возвращаемое значение не зависит от пола, переданного в конструктор. Для полов определены следующие константы
About
Склонение падежей русских имён, фамилий и отчеств