Ваш мастер по ремонту. Отделочные работы, наружные, подготовительные

У Вас в браузере заблокирован JavaScript. Разрешите JavaScript для работы сайта!

API склонения слов, получения рода(мужской, женский), падежа, склонения и других характеристик слова

API склонения слов

Параметры:
inflect - слово или список слов через прообел. Следующие параметры доступны, только если передано одно слово.
partofspeech
Дескриптор Пример Описание
C мама существительное
П красный прилагательное
КР_ПРИЛ красива краткое прилагательное
ИНФИНИТИВ идти инфинитив
Г идет глагол в личной форме
ДЕЕПРИЧАСТИЕ идя деепричастие
ПРИЧАСТИЕ идущий причастие
КР_ПРИЧАСТИЕ построена краткое причастие
ЧИСЛ восемь числительное (количественное)
ЧИСЛ-П восьмой порядковое числительное
МС он местоимение-существительное
МС-ПРЕДК нечего местоимение-предикатив
МС-П всякий местоименное прилагательное
Н круто наречие
ПРЕДК интересно предикатив
ПРЕДЛ под предлог
СОЮЗ и союз
МЕЖД ой междометие
ЧАСТ же, бы частица
ВВОДН конечно вводное слово
ФРАЗ бухты-барахты, зги фразеологизм
grammems – . Задаются через ","(запятую). Для исключения перед граммемой укажите "-"(минус)
Граммема Описание
Род
мр мужской род
жр женский род
ср средний род
мр-жр общий род (сирота, пьяница)
Число
ед единственное число
мн множественное число
Падеж
им именительный
рд родительный
дт дательный
вн винительный
тв творительный
пр предложный
зв звательный (отче, боже)
2 второй родительный или второй предложный падежи
Время
нст настоящее время
буд будущее время
прш прошедшее время
Лицо
первое лицо
второе лицо
третье лицо
Одушевленность
од одушевленное
но неодушевленное
Вид
св совершенный вид
нс несовершенный вид
Переходность
нп переходный
пе непереходный
Залог
дст действительный залог
стр страдательный залог
Другое
0 неизменяемое
безл безличный глагол
пвл повелительное наклонение (императив)
притяж притяжательное (не используется)
прев превосходная степень (для прилагательных)
сравн сравнительная степень (для прилагательных)
кач качественное прилагательное
Семантические признаки
имя имя (Иван, Михаил)
фам фамилия (Иванов, Сидоров)
отч отчество (Иванович, Михайлович)
лок топоним (Москва, Лена, Эверест)
аббр аббревиатура (КПСС, РОНО)
орг организация
вопр вопросительное наречие
указат указательное наречие
жарг жаргонизм
разг разговорный
арх архаизм
опч опечатка
поэт поэтическое
проф профессионализм
info – вывести каждую форму в виде массива с дополнительной информацией

Http://сайт/service/api.php?inflect=магадан&json

{"0":"МАГАДАН","1":"МАГАДАНА","2":"МАГАДАНУ","3":"МАГАДАНОМ","4":"МАГАДАНЕ","5":"МАГАДАНЫ", "6":"МАГАДАНОВ","7":"МАГАДАНАМ","8":"МАГАДАНАМИ","9":"МАГАДАНАХ","limit":38}

Http://сайт/service/api.php?inflect=магадан












Http://сайт/service/api.php?inflect=ростов-на-дону&xml

<0>РОСТОВ-НА-ДОНУ <1>РОСТОВА-НА-ДОНУ <2>РОСТОВУ-НА-ДОНУ <3>РОСТОВОМ-НА-ДОНУ <4>РОСТОВЕ-НА-ДОНУ 46

Чтобы получить от слова «свадебный» все неодушевленные прилагательные в множественном числе вызовите:

Https://сайт/service/api.php?inflect=свадебный&json&partofspeech=П&grammems=НО,МН&info
Получите:
{"0":{"word":"СВАДЕБНЫМ","partofspeech":"П","grammems":["ДТ","КАЧ","МН","НО","ОД"]}, "1":{"word":"СВАДЕБНЫЕ","partofspeech":"П","grammems":["ИМ","КАЧ","МН","НО","ОД"]}, "2":{"word":"СВАДЕБНЫЕ","partofspeech":"П","grammems":["ВН","КАЧ","МН","НО"]}, "3":{"word":"СВАДЕБНЫХ","partofspeech":"П","grammems":["КАЧ","МН","НО","ОД","РД"]}, "4":{"word":"СВАДЕБНЫХ","partofspeech":"П","grammems":["КАЧ","МН","НО","ОД","ПР"]}, "5":{"word":"СВАДЕБНЫМИ","partofspeech":"П","grammems":["КАЧ","МН","НО","ОД","ТВ"]} ,"limit":19} Без параметра info:
http://сайт/service/api.php?inflect=свадебный&json&partofspeech=П&grammems=НО,МН
{"0":"СВАДЕБНЫМ","1":"СВАДЕБНЫЕ","2":"СВАДЕБНЫЕ","3":"СВАДЕБНЫХ", "4":"СВАДЕБНЫХ","5":"СВАДЕБНЫМИ","limit":19}

API получения рода слова, имени: мужской, женский

API получения пола: мужской, женский по имени. С помощью данного API по имени пользователя Вы сможете получить его пол. Это исключит необходимость заполнения дополнительного поря при регистрации.

Частенько возникает необходимость склонять имена на PHP . Согласитесь, что фраза "Добавить в друзья Илья " звучит намного хуже, чем "Добавить в друзья Илью ". Поэтому склонение имён по падежам в PHP требуется достаточно часто, и в этой статье я расскажу, как это можно реализовать у себя на сайте.

Сразу скажу, что идеального варианта, увы, нет. Первый вариант весьма очевидный: найти базу имён, которые будут во всех падежах, и добавить к себе эту таблицу. Затем по имени в именительном падеже искать соответствующий падеж по базе. Минусы тут очевидны: огромная база, всех имён не охватите, лишняя нагрузка на сервер .

Второй вариант - написать свой класс склонений имён на PHP , либо воспользоваться уже готовым. Поскольку правила в русском языке достаточно сложные, плюс есть масса исключений, поэтому и библиотека потребуется очень большая, да и даже она далеко не 100% спасение. Наиболее популярная из всех библиотек, занимающихся склонением имён на PHP , является NameCaseLib .

Скачав эту библиотеку и поместив на свой сайт, её можно использовать вот так:

Require_once "NCL.NameCase.ru.php"; // Подключаем русскую библиотеку
$case = new NCLNameCaseRu(); // Создаём объект класса NCLNameCaseRu
$array = $case->q("Русаков Михаил Юрьевич"); // Получаем массив из 6-ти элементов соответствующих 6-ти падежам, в которых окажется входная строка
print_r($array); // Выводим массив
?>

Как видите, использовать библиотеку очень просто. С другой стороны, мой главный совет будет следующий: по-возможности вообще избегайте необходимости склонять слова . Всё равно будут иногда вводить люди то, что склоняться никак не может, и попытки склонения будут выглядеть нелепо. Ведь необязательно писать "Добавить в друзья Илью ", можно же ведь написано просто "Добавить в друзья " на странице Ильи.

Здравствуй, Хабрахабр!

Сегодня я расскажу о небольшом, но очень полезном фреймворке - NameCaseLib.

Я думаю, многие сталкивались с ситуацией, когда было необходимо просклонять Фамилию, Имя и Отчество человека по падежам. Данный фреймворк поможет нам избавиться от многочисленных «велосипедов».

Установка

Для работы NameCaseLib нам понадобится PHP5 и библиотека php_mbstring, для работы с текстом в формате UTF-8.

Отлично, теперь осталось подключить сам фреймворк, для этого скачаем необходимые файлы.

NameCaseLib поддерживает два языка: русский и украинский. Файл NCL.NameCase.ru.php содержит русские правила склонения, NCL.NameCase.ua.php, соответственно, украинские. В папке NCL расположено само «ядро» фреймворка, то есть, набор основных функций.

Итак, давайте создадим файл в формате.php, и проверим работоспособность данного фреймворка.

q("Максимов Александр Васильевич"); # Выводим получившийся массив. (Примечание: возвращает простой индексируемый массив) var_dump($array); ?>

Соответственно, таким же образом, мы можем склонять и украинские ФИО, подключив украинские правила склонения.

Но, давайте все-таки разберем, какие параметры содержит в себе метод q , и как его еще можно использовать?

Данный метод имеет 3 параметра, 2 из них - можно не указывать. Первый параметр - ФИО человека, второй - падеж (Список констант приведу ниже; в случае, если не указан падеж (NULL), то метод возвращает все падежи), и третий - пол человека. (Константы, также, приведены ниже; если не указать пол (NULL), метод определит его сам)

Константы

Для указания пола используются константы:
  • NCL::$MAN – мужской пол
  • NCL::$WOMAN – женский пол

Для указания падежей русского языка:

  • NCL::$IMENITLN - именительный падеж
  • NCL::$RODITLN - родительный падеж
  • NCL::$DATELN - дательный падеж
  • NCL::$VINITELN - винительный падеж
  • NCL::$TVORITELN - творительный падеж
  • NCL::$PREDLOGN - предложный падеж

Для указания падежей украинского языка:

  • NCL::$UaNazyvnyi – називний відмінок
  • NCL::$UaRodovyi – родовий відмінок
  • NCL::$UaDavalnyi – давальний відмінок
  • NCL::$UaZnahidnyi – знахідний відмінок
  • NCL::$UaOrudnyi – орудний відмінок
  • NCL::$UaMiszevyi – місцевий відмінок
  • NCL::$UaKlychnyi – кличний відмінок

Примечания

  1. Порядок расположения ФИО не имеет значения.
  2. Не имеет значение, в каком регистре указаны ФИО, после склонения, метод возвращает сохраненный регистр букв.

Определение части ФИО

С помощью метода getFullNameFormat, мы можем определить часть, или какие части ФИО мы используем.

getFullNameFormat("Максимов Александр Васильевич"); /* Мы получаем формат вида: S F N, где: - S - Фамилия - N - Имя - F - Отчество */ echo $fullName; ?>

Но, что же делать, если все-таки фреймворк не может правильно определить, как склонять выбранное вами ФИО?

Для этого в библиотеке предусмотрен метод qFullName, который позволяет указать Фамилию, Имя, Отчество и пол человека в определенной последовательности.

qFullName("Максимов", "Александр", "Васильевич", NCL::$MAN, NCL::$TVORITELN, "S N F")."\n"; ?>

Итоги

NameCaseLib - действительно удобный фреймворк, который включает в себя много полезных функций. На сайте имеется полная документация на русском языке.

Весьма популярной проблемой, с которой сталкиваются Web-программисты , это склонение слов на PHP . Например, нужно вывести, сколько минут назад была оставлено какое-нибудь сообщение. Можно написать просто число и слово "минут ". Но тогда будет написано весьма странно, например, "1 минут ", "2 минут " и так далее. Фактически, без склонения слов на PHP Вам не обойтись, если, конечно, Вы хотите писать по-русски.

Проблема новичкам покажется очень сложной, но, на самом деле, у склонения слов есть определённая закономерность. Посмотрите сами: "1 минута, 2 минуты, 5 минут, 11 минут, 19 минут, 21 минута, 22 минуты, 25 минут и так далее ". Видите закономерность? 1, 21, 31, 41 - всегда будет "минута ". Если младший разряд больше 1-го и меньше 5 , при этом само число при делении на 100 имеет остаток больше 20 (то есть, например, не число 12 и не 112 ), то будут "минуты ". В остальных случаях "минут ".

function getWord($number, $suffix) {
$keys = array(2, 0, 1, 1, 1, 2);
$mod = $number % 100;
$suffix_key = ($mod > 7 && $mod < 20) ? 2: $keys;
return $suffix[$suffix_key];
}
$array = array("минута", "минуты", "минут"); $n = 21;

echo "$n $word
";
$n = 11;
$word = getWord($n, $array);
echo "$n $word
";
$n = 4;
$word = getWord($n, $array);
echo "$n $word
";
?>

Запустив данный скрипт Вы увидите, что склонение слов на PHP происходит на ура. Могу лишь добавить, что помимо "минут " там может быть "день ", "час ", "человек ", "компьютер " и все другие существительные, которые склоняются в зависимости от числительного .

Если заметили ошибку, выделите фрагмент текста и нажмите Ctrl+Enter
ПОДЕЛИТЬСЯ:
Ваш мастер по ремонту. Отделочные работы, наружные, подготовительные