Грамота.Ру
ГРАМОТА СЛОВАРИ СПРАВКА НАВИГАТОР КЛАСС ИГРА Версия для мобильных устройств
Конференции Новости Журнал Конкурсы Олимпиады Форум Поиск О портале


Вече
 форумы  |  новая тема  |  начало  |  к началу  |  поиск  |  войти   назад  |  вперед 
 Помогите написать программу для склонения падежей
Автор: ApplePro 
Дата:   24-10-07 19:05

Привет всем,

Я уже задавал вопрос в форуме на счет правил склонения по падежам русского языка, мне посоветовали как лучше сделать и дали несколько ссылок.

Ситуация вкратце. У меня есть переводы географических имен только в именительном падеже и нужно автоматически перевести максимальное количество имен на в остальные падежи.

Информации о числе и роде, естественно нет, могу ориентироваться ТОЛЬКО по окончанию именительного падежа.

Пожалуйста помогите дополнить/изменить этот алгоритм:

если окончание "ия", то изменяем так:
Ип -ия
Рп -ии
Дп -ии
Вп -ию
Тп -ией
Пп -ии
если окончание "ий", то изменяем так:
Ип -ий
Рп -ия
Дп -ию
Вп -ий
Тп -ием
Пп -ии
если окончание "ие", то изменяем так:
Ип -ие
Рп -их
Дп -им
Вп -ие
Тп -ими
Пп -их
если окончание "а", то изменяем так:
Ип -а
Рп -и
Дп -е
Вп -у
Тп -ой
Пп -е
если окончание "я", то изменяем так:
Ип -я
Рп -и
Дп -и
Вп -ю
Тп -ей
Пп -е
если окончание "о, е", то не изменяем

если любое другое окончание, тодобавляем на конце:
Ип -
Рп -а
Дп -у
Вп -
Тп -ем
Пп -е


Зараннее спасибо за помощь.

Ответить на это сообщение
 
 Re: Помогите написать программу для склонения падежей
Автор: *volopo 
Дата:   24-10-07 20:09

>если любое другое окончание, тодобавляем на конце

Лихоборы?
Тольятти?
Пермь?
Новый Орлеан?

Ответить на это сообщение
 
 Re: Помогите написать программу для склонения падежей
Автор: *volopo 
Дата:   24-10-07 20:18

Красный Строитель?
Донское?
Трегуляй?
Червоный Донец?

Ответить на это сообщение
 
 Re: Помогите написать программу для склонения падежей
Автор: Пар 
Дата:   24-10-07 20:43

если окончание "ие", то изменяем так:
Ип -ие
Рп -их (?) ИЯ
Дп -им (?) ЕМ
Вп -ие
Тп -ими (?) ИЮ
Пп -их (?) ИИ
если окончание "а", то изменяем так:
Ип -а
Рп -и (?) ЖеневЫ
Дп -е
Вп -у
Тп -ой
Пп -е
если окончание "я", то изменяем так:
Ип -я
Рп -и
Дп -и (?) Е
Вп -ю
Тп -ей
Пп -е

Ответить на это сообщение
 
 Re: Помогите написать программу для склонения падежей
Автор: ApplePro 
Дата:   24-10-07 20:45

Все названия автоматически не просклонять, согласен. Для этого напишу скрипт, который позволит пользователям корректировать название по принципу Википедии. Цель - перевести автоматом правильно максимальное количество географических имен.

Если какие-то из ваших примеров можно подвести под определенное правило, напишите пожалуйста что это за правило.

Ответить на это сообщение
 
 Re: Помогите написать программу для склонения падежей
Автор: Пар 
Дата:   24-10-07 20:58

если окончание "ий"... - а тут могут быть СИЙ, СКИЙ и тогда надо смотреть (например ...СКОГО).

Ответить на это сообщение
 
 Re: Помогите написать программу для склонения падежей
Автор: ApplePro 
Дата:   24-10-07 21:00

> если окончание "ие", то изменяем так:
> Ип -ие
> Рп -их (?) ИЯ
> Дп -им (?) ЕМ
> Вп -ие
> Тп -ими (?) ИЮ
> Пп -их (?) ИИ

Вот примеры из моей базы:
Ангелинские
Алексеевские
Бергамакские
Барсуковские

Т.е. большинство имен во мн. ч.

Есть и ед.ч., но таких мало:
Австрало-антартическое поднятие
Пробуждение


> если окончание "а", то изменяем так:
> Ип -а
> Рп -и (?) ЖеневЫ
> Дп -е
> Вп -у
> Тп -ой
> Пп -е

А можно как-то по правилам определить -ы или -и будет на конце?


> если окончание "я", то изменяем так:
> Ип -я
> Рп -и
> Дп -и (?) Е
> Вп -ю
> Тп -ей
> Пп -е

Спасибо. Кстати, а будет ли отдельное правило для -ая? В базе очень много имен на -ия (у меня уже есть правило) и -ая.

Ответить на это сообщение
 
 Ты лети, моя программа...
Автор: Gapоn 
Дата:   24-10-07 21:01

С окончанием "А" будут проблемы, если не учесть предпоследнюю букву...

Антигуа, Самоа - не Кострома и не Тула Вам!

Ответить на это сообщение
 
 Re: Помогите написать программу для склонения падежей
Автор: ApplePro 
Дата:   24-10-07 21:02

-сий в базе не нашел, а вот -ский полно. Спасибо, напишу отдельное правило для -ский.

Ответить на это сообщение
 
 Re: Ты лети, моя программа...
Автор: ApplePro 
Дата:   24-10-07 21:03

Учитывать - без проблем. Подскажите пожалуйста правильно, по которому учитывать.

Ответить на это сообщение
 
 Re: Помогите написать программу для склонения падежей
Автор: Пар 
Дата:   24-10-07 21:06

Вам нужно изучать склонения, то есть изменения имён существительных по падежам. В общественности три склонения, типа:
1гр (1 склонение) -сущ. муж. и жен. родов на -а, -я (мама, папа, дочка, мочка, юноша и т.д.)
2 гр. (2 скл.) - муж. род с нулевым окончанием (сын, мяч, отец, спектакль) и ср. род (-о, -е небо. окно и т.д.)
3 гр. (3 скл.) - жен. род ( в конце мягкий знак): мышь, дочь, ночь.

Ответить на это сообщение
 
 Подсказываю
Автор: Gapоn 
Дата:   24-10-07 21:10

Я бы не склонял.

Ответить на это сообщение
 
 Re: Помогите написать программу для склонения падежей
Автор: ApplePro 
Дата:   24-10-07 23:20

Я эти правила изначально писал по правилам склонения русского языка, которые прочитал здесь:
http://learning-russian.gramota.ru/book/litnevskaya.html?part4.htm

Дела в том, что программа, в отличие от человека не сможет определить множественное число или единсвенное, а так же род существительного. Она может работать только с частями слова.

Ответить на это сообщение
 
 Re: Подсказываю
Автор: ApplePro 
Дата:   24-10-07 23:23

Можно конечно вместо "Отзывы туристов о Париже" (погода в Париже, местные особенности Парижа и пр.) написать "Париж. Отзывы туристов", но по-моему тогда сайт будет смотреться криво.

Ответить на это сообщение
 
 Re: Подсказываю
Автор: sad 
Дата:   24-10-07 23:35

Gapon, кажется, Вы тогда землю рыли...
http://www.gramota.ru/forum/read.php?f=1&i=48261&t=48261

Ответить на это сообщение
 
 Re: Помогите написать программу для склонения падежей
Автор: Peter 
Дата:   25-10-07 00:07

(1) Орел
Орела? вместо "Орла" .

(2) АпплеПро сначало посмотрел бы в русскую грамматику. На мой взгляд есть разных случаев склонений 20 (сущ., прилаг., прилаг. на ов/ев/ын/ин ово/ево/ыно/ино , иностран., сложные, на щипящие, на -ц). Из окончания И.п., но это не только последняя буква, можно определить ряд, или возможные рады. (Примеры: на ь Пермь - механически Пермя или Перми, на согласный Петербург - Петербурга, на ний Нижнего но на кий Успенского )

Надо учитывать известные правила орфография: на пример после ч к только -и пишутся,

Я сказал бы, что дать здесь полный разбор всех случаев - это копировать первые главы учебника по русскому языку, т.е. много.....

(3) А встречный, окончательный вопрос: Знать все ряды склонения правильно - это какой класс русской школы ?

Ответить на это сообщение
 
 Помогите уцелеть!
Автор: Gapоn 
Дата:   25-10-07 00:13

sad, спасибо, но я ссылку добровольно не хожу! Особенно в портальную... Чё там интересного может быть?!

Ответить на это сообщение
 
 Re: Помогите написать программу для склонения падежей
Автор: ApplePro 
Дата:   25-10-07 00:18

Peter сказал:
>
> (1) Орел
> Орела? вместо "Орла" .


У посетителей сайта будет возможность за несколько секунд поменять Орела на Орла по принципу Википедии.

> (2) АпплеПро сначало посмотрел бы в русскую грамматику. На
> мой взгляд есть разных случаев склонений 20 (сущ., прилаг.,
> прилаг. на ов/ев/ын/ин ово/ево/ыно/ино , иностран., сложные,
> на щипящие, на -ц). Из окончания И.п., но это не только
> последняя буква, можно определить ряд, или возможные рады.
> (Примеры: на ь Пермь - механически Пермя или Перми, на
> согласный Петербург - Петербурга, на ний Нижнего но на кий
> Успенского )
>
> Надо учитывать известные правила орфография: на пример после
> ч к только -и пишутся,
>
> Я сказал бы, что дать здесь полный разбор всех случаев - это
> копировать первые главы учебника по русскому языку, т.е.
> много.....


Все есть в учебниках, но там все очень рассредоточено. Думаю, что нужно прочитать как минимум все учебники по русскому языку на несколько раз, чтобы составить идеальные правила, что, согласитесь, не реально.

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

Поэтому и прошу здесь помощи в составлении хотя бы мало-мальски приличного набора правил. Очень надеюсь на вашу помощь.

Ответить на это сообщение
 
 Re: Помогите уцелеть!
Автор: sad 
Дата:   25-10-07 00:36

Gapon, интересно _там_ как раз то, что ничего интересного _здесь_ нет и быть не может :) Просто в прошлый раз, насколько я понял, Вы отсутствовали и убедиться в этом уже тогда не могли.

PS А если не хочется в ссылку - можно ходить по линку :)

Ответить на это сообщение
 
 Re: Помогите написать программу для склонения падежей
Автор: Peter 
Дата:   25-10-07 02:59

Апплепро, Я вам уже дал "Шелякин" и Langenscheidt в недавнем ветке. Там самые лучшие таблицы, самое конкретное описание.
В Шелякине я сам не сразу нашел все правила - особенно про -ев/-ын и прочие было трудно. А это славный учебник. Немецкие учебники (по РЯ, разумеется) значительно хуже.

Может быть собирать все модели.... (многие запросто из МО)

Сущ. первая (на -а)
Купавна
Ивантеевка
Москва
Австралия
Азия
Поляна
Лобня
Запрудня
Пятница


Сущ. вторая (на согласный, на -о)
Подолск
Екатеринбург
Звенигород
Киев ?
Тюмень
Тамань
Рошаль
Цхинвал
Октябрь
Кремль
Село
Водохранилище



Сущ. третья (на ь)
Пермь
Тверь
Казань


Сущ. множ.
Мытищи
Електроугли
Снегири
Люберцы
Озёра
Озёры
Сочи
Кимры


Прилаг. обычные
Московский
Железнодорожный
Раменское
Лесной
Нижний
Южный
Ожерелье
Медвежий
Серебрянные
Савинская
Красная
Лесная


Прилаг. на -ово и т.д.
Царицын
Царицыно
Королёв
Реутов
Киев ?
Щелково
Дорожаево
Шереметьево
(женского не нашел, но всё-таки)

Иностранные, не склоняемые
Сочи
Цхинвали
ВДНХ



Сложные (модели по тому, как склонять их части)
Санкт-Петербург
Сергиев Посад
Нижний Новгород
Орехово-Зуево
Медвежьи Озера
поселок 7-о участка



==========
Сам знаю, что в приведенных выже моделях повторения и ошибки.

Ответить на это сообщение
 
 Re: Помогите написать программу для склонения падежей
Автор: Пар 
Дата:   25-10-07 07:16

Автор: Peter (---.dclient.hispeed.ch)
Дата: 25-10-07 00:07
> (2)...

+1 Молодец!
________________________________

ApplePro. База большая? По-моему, её лучше всю просмотреть и все окончания просклонять самостоятельно. Если есть помощники, то разбить базу между ними.
Хотелось бы попросить, если есть текстовый вариант базы, можете скинуть на е-майл?

Ответить на это сообщение
 
 Re: Помогите написать программу для склонения падежей
Автор: ApplePro 
Дата:   25-10-07 09:41

Спасибо. Проверю ссылки в той ветке. Если там действительно все правила в одной таблице, то это как раз то, что нужно.

Ответить на это сообщение
 
 Re: Помогите написать программу для склонения падежей
Автор: ApplePro 
Дата:   25-10-07 09:42

2 миллиона. На русский язык переведено 90000 географических имен. Вручную одному не реально. Поэтому и делаю по принципу Википедии, чтобы пользователи смогли корректировать или даже переводить...

Ответить на это сообщение
 
 Re: Помогите написать программу для склонения падежей
Автор: Пар 
Дата:   25-10-07 09:51

2 миллиона - это ого-го!
Однако, по-моему, тут могут дать советы только навскидку. Это надо вникать и рассматривать много слов... Всё же придётся привлекать помощников...

Ответить на это сообщение
 
 Re: Помогите написать программу для склонения падежей
Автор: ApplePro 
Дата:   25-10-07 09:53

Пар сказал:
>
> 2 миллиона - это ого-го!
> Однако, по-моему, тут могут дать советы только навскидку. Это
> надо вникать и рассматривать много слов... Всё же придётся
> привлекать помощников...

Пусть навскидку, главное правильно перевести автоматически максимальное количество имен.

Ответить на это сообщение
 
 Re: Помогите написать программу для склонения падежей
Автор: Peter 
Дата:   25-10-07 11:13

Надо добавить
сущ. 2-а
Альтай
Каналстрой

иностранные
Хельсинки

==========
Апплепро, на мой взгляд вопрос не в том, как изменить названия, но в том какие категории существуют - и в какую категорию падает данное название. Падежи - всего третий жаг в вашем работе. Орфография после ш к ц - это будет четвёртый step (--> и уменьшивает число категорий)

Ответить на это сообщение
 
 Re: Помогите написать программу для склонения падежей
Автор: ApplePro 
Дата:   25-10-07 17:26

Если я правильно понял про категории, то по-моему это не подойдет, т.к. программа не может определить какой род у существительного и какое число.

Ответить на это сообщение
 
 Re: Помогите написать программу для склонения падежей
Автор: Peter 
Дата:   26-10-07 01:54

>>Если я правильно понял про категории, то по-моему это не подойдет, т.к. программа не может определить какой род у существительного и какое число.

Не всегда. Во многих случаех категория однозначна, в некоторых двухзначна. В том числе -ой,-а (кроме -ка), -ь, -и (кроме -ьи), -ий (кроме -кий). В этих двухзначных будут ошибки, а из исправлении Вики возможно определить категория поближе. Из "в Каналстром" -> "В Каналстрое" получаешь, что у Каналстроя склонение на -ой сущ. а не прилаг...

Ответить на это сообщение
 
 Re: Помогите написать программу для склонения падежей
Автор: Эль 
Дата:   26-10-07 11:55

Надо давать машине уже в данных не только им.п., но и род.п. Уча латынь, зубрят для каждого слова номинатив и генетив; и русских словарях, хоть Ожегова, даются как минимум эти две формы. Т.е.: сущ. на -ь в и.п. , на -и в р.п. - дает тип склонения, который считается третьим, и т.п.

Ответить на это сообщение
 
 Re: Помогите написать программу для склонения падежей
Автор: ApplePro 
Дата:   26-10-07 12:19

> Не всегда. Во многих случаех категория однозначна, в
> некоторых двухзначна. В том числе -ой,-а (кроме -ка), -ь, -и
> (кроме -ьи), -ий (кроме -кий). В этих двухзначных будут
> ошибки, а из исправлении Вики возможно определить категория
> поближе. Из "в Каналстром" -> "В Каналстрое" получаешь, что у
> Каналстроя склонение на -ой сущ. а не прилаг...

Значит я не совсем понял про какие категории вы говорите.

Ответить на это сообщение
 
 Re: Помогите написать программу для склонения падежей
Автор: ApplePro 
Дата:   26-10-07 12:20

Для этого нужно вручную добавить РП к 90000 географическим именам.

Ответить на это сообщение
 
 Re: Помогите написать программу для склонения падежей
Автор: ApplePro 
Дата:   26-10-07 12:33

Peter, а где я могу найти в интернете таблицу правил, о которой вы говорили выше?

Ответить на это сообщение
 
 Re: Помогите написать программу для склонения падежей
Автор: Peter 
Дата:   26-10-07 14:10

каждая строка - одна категория, один *) образец склонения

примеры однозначные:
Алексеевка
Красная
Лобня

((*)иногда есть повторения....).


А Вы - во-первых русский, во-вторых программист ? (Извините вопрос)


(Эль понял мою схему. А русский язык именно как латинский)

Ответить на это сообщение
 
 Re: Помогите написать программу для склонения падежей
Автор: ApplePro 
Дата:   27-10-07 11:27

Да, я русский программист. :)

Ответить на это сообщение
 
 Re: Помогите написать программу для склонения падежей
Автор: Кот Мартовский 
Дата:   27-10-07 13:12

Peter, простите, но у Вас не просто ошибки, а полное их собрание.

Без претензий на полноту.
Тамань, Тюмень - женского рода, по вашей терминологии - 3-й модели
Населённого пункта Рошаль я не знаю, он может быть как мужского, так и женского рода.
Цхинвал встьречается только в произведениях, современная форма - Цхинвали, несклоняемая.
Снегири, Мытищи и Люберцы - разные типы склонений.
В районе Снегирей, Мытищ, Люберец.
Сочи - м.р. как множественное - максимум допустимый вариант, практически не используемый.
Озёры - неправильная форма. Если она и зафиксирована где-то, то вполне может иметь и специфические формы косвенных падежей, особенно родительного (озёров?).
Ожерелье - существительное, имеет свои тип склонения. Как Полесье.
Вообще непонятно, с чего Вы его в прилагательные записали.
Также Царицын, Королёв и т д.. Это не прилагательные. Различия проявляются в форме творительного падежа. Царициным указом, но городом Царицыном, Королёвом.

Составных названий даже не касаюсь.

Русский програмист ApplePro,
создание полного свода правил вслепую - дело неблагодарное. И совсем неудачно выглядит попытка переложить эту работу на тех, кто знает о её бесполезности. По мне так честнее было бы взять эти два миллиона вхождений в порядке обратного словаря и разбить на двадцать-тиридцать классов. А потом добавлять эти классы по мере обнаружения особенностей. В конце концов останется несколько десятков (сот? тысяч?) названий, которые ни в какие классы не лезут, их объявить исключениями.
Без таких исключений всё равно не обойтись. Никакой формальный алгоритм не распознает отличия реки Великая от посёлка Миха Цхакая.

Двух падежей, кстати, в общем случае тоже мало. Нужен как минимум ещё творительный (упоминавшиеся Царицын, Королёв). Возможно, и винительный, топонимы, вроде, окказионально могут быть грамматически одушевлены. Лесной Отшельник, скажем. Или Отец Гор. Чем не топонимы? Поехал в Отец Гор? Не поймут-с.

Ответить на это сообщение
 
 Re: Помогите написать программу для склонения падежей
Автор: Белое Безмозглое 
Дата:   27-10-07 18:51

Бога ради, простите, что встреваю.
ApplePro, коли Вы программист, так у ж наверняка знакомы с теорией трансляции и формальной классификацией языков и грамматик. Вы что же, надеетесь привести грамматику типа 0 к 2-3? Если у Вас получится, останется только поздравить. Пока что такие методы неизвестны. По крайней мере, мне. Впрочем, вполне возможно, что я отстаю от жизни. Тогда будьте так любезны, возьмите на буксир.
Не ищите в моих словах сарказма - его там нет.

Ответить на это сообщение
 
 Re: Помогите написать программу для склонения падежей
Автор: ApplePro 
Дата:   27-10-07 19:55

Кот Мартовский сказал:

> И совсем неудачно выглядит попытка переложить эту работу на
> тех, кто знает о её бесполезности.

Вы видимо не слышали о Википедии и о принципах Web 2.0. Я занимаюсь программированием и сайтами уже несколько лет и мне постоянно помогают люди в том, в чем я не разбираюсь, я в свою очередь помогаю тем, кто не разбирается в программировании.

Добрее надо быть. ;)

> По мне так честнее было бы
> взять эти два миллиона вхождений в порядке обратного словаря
> и разбить на двадцать-тиридцать классов.

Объясните пожалуйста на пальцах, хотя бы кратко. Что за классы, о которых вы и Peter говорите? На чем они основываются (по каким признакам разбивать)?

Ответить на это сообщение
 
 Re: Помогите написать программу для склонения падежей
Автор: ApplePro 
Дата:   27-10-07 19:55

Нет, с такой теорией я не знаком.

Ответить на это сообщение
 
 Re: Помогите написать программу для склонения падежей
Автор: Peter 
Дата:   27-10-07 20:07

Программисту, буду делать домажнее задание, но позже.
Коту Мартовскому, большое спасибо за пометки, оправдаюсь (СВ) позже, где нужно.

Peter.

Ответить на это сообщение
 
 Re: Помогите написать программу для склонения падежей
Автор: Кот Мартовский 
Дата:   27-10-07 20:25

ApplePro сказал:
>Вы видимо не слышали о Википедии...
Авторитетно. Век бы о ней не слышать.
А квадратуру круга там тоже могут решить?

>Я занимаюсь программированием и сайтами уже несколько лет и мне постоянно помогают люди в том, в чем я не разбираюсь, я в свою очередь помогаю тем, кто не разбирается в программировании.
Не слишком ли опрометчивое заявление для человека, который не подозревает о существовании теории трансляции и не понимет, что такое класс? Класс, милсдарь, это как раз те пальцы, которые указывают, какая ветка Вашего алгоритма будет активизирована для конкретного слова.

Ответить на это сообщение
 
 Re: Помогите написать программу для склонения падежей
Автор: ApplePro 
Дата:   27-10-07 21:47

Кот Мартовский сказал:

> >Вы видимо не слышали о Википедии...
> Авторитетно. Век бы о ней не слышать.

А что плохого в Википедии и в принципе Веб 2.0?

> >Я занимаюсь программированием и сайтами уже несколько лет и
> мне постоянно помогают люди в том, в чем я не разбираюсь, я в
> свою очередь помогаю тем, кто не разбирается в
> программировании.
> Не слишком ли опрометчивое заявление для человека, который не
> подозревает о существовании теории трансляции и не понимет,
> что такое класс? Класс, милсдарь, это как раз те пальцы,
> которые указывают, какая ветка Вашего алгоритма будет
> активизирована для конкретного слова.

Вы в курсе, что языков программирования вообще десятки и в каждом используются свои термины. А еще, кроме русского есть еще языки. Я учил языки программирования на английском. Кто знает, может я знаю об этой теории, но названия такого ни разу не слышал. Я вас прошу в объяснить на пальцах, вы вместо этого грубить начинаете.

Да, и что такое классы я знаю. Я спросил не что такое классы а о системе, о которой также говорил Peter.

Ответить на это сообщение
 
 Re: Помогите написать программу для склонения падежей
Автор: Peter 
Дата:   27-10-07 23:50

<офтопик>
слово "класс" от латинского classis, -is, f. 1. флот, 2. слой грáждан. Используется сквозь многих мыслей интеллигенции (в науке, в государстве, ...), в любом человеческом языке. И в некоторых вычислытельных.
</офтопик>

Ответить на это сообщение
 
 Re: Помогите написать программу для склонения падежей
Автор: Peter 
Дата:   28-10-07 02:38

Тамань, Тюмень - как Тверь. (ВЫ ПРАВЫ, СПАСИБО)

Рошаль - как Кремль. Город на востоке МО, После 1917 г. переименован в Рошаль в честь участника октябрьского переворота С.Г. Рошаля (1896-1917). Город с 1940 г.

Цхинвал - как Екатеринбург, и Цхинвали нескл. , обе формы в Интернете.

Снегири, Снегирей - мн.ч. мужское, мягкое (ВЫ ПРАВЫ, СПАСИБО)

Мытищи, Люберцы, Мытищ, Люберец - мн.ч. женские (ВЫ ПРАВЫ, СПАСИБО) . Но Мытищей можно тоже найти. Как и Люберцов, Люберцев, Люберц. Ошибка (если..) только в Р.п.


Сочи, Сочей - мн.ч. мужское на шип. и Сочи несклон.. Обе формы из Интернета

Озёры - город на юге МО, на Оке-реке, райцентр, близко к Кашире и Ожерелью . На мой взгляд мн.ч. мужское твердое - "недвижимость Озеров" .

Ожерелье - сред. сущ. (ВЫ ПРАВЫ, СПАСИБО)

Царицын, Королёв и т.д. - в русском языке склонение мужское сущ., если название места. (ВЫ ПРАВЫ, СПАСИБО) Но в сути оны прилаг. притяжательные именные, поэтому я их числил в прилаг. . Они имеют три склонения в зависимости от использования. Допольнительно, в средней форме их географическое склонение спорно. На мой взгляд стоит их компютерно особлять от обычных сущ. тоже в мужской форме. (Букатевич, §26, с. 170 про "тенденции" в развитии этих прилагательных).

=======

Еще Заозерье ? Заозерий в сред. форме или сущ. ? (Деревя 7 км на севере от Павловского Посада) (ВОПРОС)


=======
Получается, что те на -и и -ы не возможно точно определить скриптом, но ошибка в большинстве в Р.п. . Те на -ь в большинстве идут как Тверь. В этих группах ручная забота нужна. Сущ. на -а почти исключительно идут как Дубна, а не мн.ч. сред.. Остальные легкы с меньше ошибками..

Ответить на это сообщение
 
 Re: Помогите написать программу для склонения падежей
Автор: Белое Безмозглое 
Дата:   28-10-07 10:46

>Я учил языки программирования на английском. Кто знает, может я знаю об этой теории, но названия такого ни разу не слышал.<

Наверняка знаете. "Теория трансляции" - это, собственно не какая-то научная концепция, а принятое традиционное название дисциплины, изучающей принципы обработки и передачи информации в информационых системах. Потому на пальцах в двух словах изложить никак не получится. Тут курс лекций придется начитывать.

Ответить на это сообщение
 
 Re: Помогите написать программу для склонения падежей
Автор: Кот Мартовский 
Дата:   28-10-07 12:21

Peter,

Рошаль. Происхождение названия не даёт ответа на вопрос о грамматическом роде. Рошаля или Рошали? Посмотрел в интернете, даже на сайте города - оба варианта встречаются. Надо сверяться в словаре топонимов, у меня его нет.

Цхинвал. Повторяю, эта форма старая, ныне неофициальная. Официально - Цхинвали. Проблема была в том, что Вы, как я понял, смешали две эти формы, считая Цхинвали каким-то падежом от Цхинвал. Это не так.

Мытищи. Мытищей - неправильно. Найти можно всё, что угодно, это не аргумент.

Сочи. Сочей - форма сниженная, даже пародийная. В миниатюре Аркадия Райкина (выдающийся артист эстрады прошлого века) встречается в речи безграмотных персонажей. Возможно из-за этого и попала в интернет.

Озёры. Проблема не в твердости-мягкости, а в форме родительного падежа. Озёров или Озёр? Если не Озёрей.

Царицын и т.д. Не понял Вашего замечания. Я говорил о том, что их склонение отличается от склонений прилагательных. Разница проявляется в творительном падеже. То, что они изначально представляли собой краткие вормы притяжательных прилагательных сомнений не вызывает, но с тех пор их парадигма изменилась. С другой стороны в некоторых случаях адъенктивная форма сохранилась - Канин Нос (мыс) - тв. Каниным Носом.
Но, как уже сказал, городом Царицыном.

Заозерье. Не знаю, Заозерье или Заозёрье. Реальны обе формы. Но склонение в обоих случаях одинаково.
Заозерье-Заозерья-Заозерью-Заозерье-Заозерьем-о Заозерье.
Аналогично Ожерелье, Полесье, поместье и т.д.
Это существительное, единственное число, средний род. В принципе склоняется как "море". Вас, видимо, путает мягкий знак. Множественное от таких топонимов выглядит очень искусственным образованием и не кодифицируется. Особенно в косвенных падежах. Допустимо ещё в разговорной речи сказать "на карте обнаружено две Москвы", но фраза "не может быть нет двух Москв" просто фантастична. Настоятельно советую вообще не пытаться образовывать такие формы.

Ручная работа нужна во всех группах. Относительно безопасны только топонимы, оканчивающиеся на тыёрдый согласный (кроме шипящих, Й, Ц и К). На дяже в них может проявиться беглость гласных. Какойнибудь санаторий "Здоровый Сон", давший название близдежащему населённому пункту. И как его склонять?

Программирование скриптов не обсуждаю, т.к. считаю бесперспективным в силу неформализуемости. Только словарь.

Ответить на это сообщение
 
 Re: Помогите написать программу для склонения падежей
Автор: Кот Мартовский 
Дата:   28-10-07 12:43

ApplePro,

Я вот вам тоже о системе.
Чтобы расставить все точки над i, я проблемой машинного перевода занимался, чтоб не соврать, лет этак тридцать назад. И уже тогда знали, что не надо ломиться в открытую дверь. Неформализуемое - неформализуемо. А самое главное, требуемый словарь делается за пару дней. При условии, конечно, что Вы действительно русский и программист. Как - я Вам сказал. А Вы тут второй месяц пургу гоните. Петеру простительно, он иностранец, в падежах путается, а Вы-то неужели не в состоянии самостоятельно разбить всё множество на классы?

Ответить на это сообщение
 
 Re: Помогите написать программу для склонения падежей
Автор: Peter 
Дата:   28-10-07 13:56

Известно, что Дмитров мужское, потому что слово "город" упускается, а Иваново среднее, потому что "село".

Вопрос в том, что упускается у названии множественного числа: Мытищи, Люберцы, Снегири, Электроугли ?

Неважнный вопрос: Что упускается в названии "Кубинка" (например) ?

Спасибо.

===========

Коту, а думаю, что боьшую часть классификации 90'000 названия можно обработать машинально. (пример: беглых -о- -е- в Дмитрове, в Снегирях, в Париже нет. Но поле "begli_o_e" нужно в база названий.)

Ответить на это сообщение
 
 Re: Помогите написать программу для склонения падежей
Автор: *volopo 
Дата:   28-10-07 14:10

>Но поле "begli_o_e" нужно в база названий.)

А также поле v_vo_na - для предлога с предложным падежом.

Ответить на это сообщение
 
 Re: Помогите написать программу для склонения падежей
Автор: Кот Мартовский 
Дата:   28-10-07 14:29

Peter, Кубинка изначально деревня. Характерно -ка в названии.
Но вообще говоря ничего не опускается. Ваша трактовка слишком прямолинейна. Иваново уже спорно. Историческое название (одно из) Иваново-Вознесенск. Русские топонимы беспроблемно принимают любой род безотносительно к родовому слову. И что опускается у Москва? Не деревня же.

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

База названий нужна по всем названиям. Можно, конечно, полагаться только на базу нестандартных фыорм, но она никогда не будет полной. Поэтому такой подход неприемлем. Вы же не будете настаивать чтобы в орфоглафический словарь включались только те слова, в которых часто делаются ошибки?!

Ответить на это сообщение
 
 Re: Помогите написать программу для склонения падежей
Автор: ApplePro 
Дата:   28-10-07 17:45

Кот Мартовский сказал:
> Я вот вам тоже о системе.
> Чтобы расставить все точки над i, я проблемой машинного
> перевода занимался, чтоб не соврать, лет этак тридцать назад.
> И уже тогда знали, что не надо ломиться в открытую дверь.
> Неформализуемое - неформализуемо. А самое главное, требуемый
> словарь делается за пару дней. При условии, конечно, что Вы
> действительно русский и программист. Как - я Вам сказал. А Вы
> тут второй месяц пургу гоните. Петеру простительно, он
> иностранец, в падежах путается, а Вы-то неужели не в
> состоянии самостоятельно разбить всё множество на классы?

Отвечаю на вас вопрос. Я не в состоянии разбить все на классы. По вашему каждый русский знает наизусть все правила русского языка? Я их все не знал, когда в школе учился (по русскому 5 кстати в аттестате).

Я вас не понимаю. Вы то говорите, что нужно разбить на 30 классов (я так понимаю, вы говорите о правилах, подобным тем, что я писал в первом посте), то говорите, что кроме словаря ничего не поможет.

Ответить на это сообщение
 
 Re: Помогите написать программу для склонения падежей
Автор: Кот Мартовский 
Дата:   28-10-07 18:16

ApplePro,
А Вы со своей пятёркой в аттестете, склоняя существительные, нуждаетесь ещё в каких-то правилах?! Вообще-то правила склонения носитель языка должен выдавать на автомате. И если уж возникли сомнения, то лезть в словарь. А критерии отнесения к классам вообще не есть "правила русского языка" в обычном понимании. Правила они в лучшем случае для тех, кому русский - не родной.

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

Я с самого начала сказал, что нужен словарь. "Классы" только для того, чтобы его составить.

Я одного не могу понять, у Вас список названий есть?
Что Вам мешает взять листок бумаги и выписать все варианты окончаний (в смысле - концов слов), сказывающихся на парадигме склонения? Эта работа на два дня пятикласнику. А с компьютером - и того проще. А потом поставить в соответствие каждому элементу его класс. Давно бы уже сделали.

Ответить на это сообщение
 
 Re: Помогите написать программу для склонения падежей
Автор: ApplePro 
Дата:   28-10-07 21:22

> А Вы со своей пятёркой в аттестете, склоняя существительные,
> нуждаетесь ещё в каких-то правилах?! Вообще-то правила
> склонения носитель языка должен выдавать на автомате.

Не встречал ни одного носителя русского языка, который выдал бы ПРАВИЛА склонения. Разве что учитель русского языка. ;)

> Я с самого начала сказал, что нужен словарь. "Классы" только
> для того, чтобы его составить.

Ну дак для этого и нужны правила. Словарь - это то, что я хочу получить в итоге.

> Я одного не могу понять, у Вас список названий есть?

Есть, в именительном падеже.

> Что Вам мешает взять листок бумаги и выписать все варианты
> окончаний (в смысле - концов слов), сказывающихся на
> парадигме склонения? Эта работа на два дня пятикласнику. А с
> компьютером - и того проще. А потом поставить в соответствие
> каждому элементу его класс. Давно бы уже сделали.

На словах все просто. Если вы меня направите на правила русского языка, которые мне понадобятся с минимум "воды", то я буду делать. Я далеко не ленивый, знали бы вы сколько я подобной работы ежедневно выполняю... Но я таких правил не нашел. Я брать учебник(и) и собирать все описания в кучу не реально, если человек не учитель русского языка или не изучает русский язык в данный момент.

Ответить на это сообщение
 
 Re: Помогите написать программу для склонения падежей
Автор: Peter 
Дата:   28-10-07 22:53

Безпожадно считаю "г к х ц" твердыми, "и й ж ч ш щ" мягкими. Префильтер: ки=кы, Постфильтер чя=ча, ие (Д.п.)= ии и т.д..

Названия моделей на _1, _2 из-за особенного конфликта в разборе.

Предлагаю следующие модели

Существительные

Singular

S1FH Дубна
S1FS Лобня, Азия, Верея
S2MH Звенигород, Курск
S2MS Кремль, Октябрь, Киржач
S2MS_1 Каналстрой
S2MS_2 Алтай, Музей, -уй
S2NH Село
S2NS Море, Городище
S2NS_1 Ожерелье
S2NS_2 -ие
S3FS Тверь
S4 Токио, Баку


Plural

S1FHP Кимры, Химки, Ловцы, Горки
S1FSP Мытищи, Городищи, Хотейчи
S2MHP Озёры, Пруды
S2MSP Электроугли
S2NHP Озёра, Ворота
S2NFP Моря
S2NFP_1 -ия
S3FSP Снегири
S4P Cочи, Тбилизи, Цхинвали


Прилагательные

Полные, Твердые

A5M Кразный, Жуковский, Молодёжный
A5F Кразная
A5N Раменское
A5E Большой, Лесной, Луговой
A5P Кразные, Ленинские

Полные, Мягкие

A6M Синий, Больший, Нижний
A6F -яя
A6N -ее
A6P -ие

Короткие (значит Старые Именные, Притяжательные)

A7M Покров, Царицын, Королёв, -ин
A7F -ова и т.д.
A7N Хорлово, Царицыно, Пушкино, Глаголево
A7P -овы и т.д.

A8M Медвежий
A8F -ья
A8N -ье
A8P Медвежьи, Княжьи



Конфликты решать следующим образом

-ь: S3FS Тверь
-ой: A5E Большой, Лесной, Луговой
-ы: S1FHP Кимры, Химки, Ловцы, Горки
-и: S1FSP Мытищи, Городищи, Хотейчи, Cочи
-а: S1FH Дубна
-ий: A6M Нижний
-о: S4 Токио (но однозначно A7N Хорлово, Царицыно, Пушкино, Глаголево)
-ье: S2NS_1 Ожерелье

============

Ответить на это сообщение
 
 Re: Помогите написать программу для склонения падежей
Автор: Peter 
Дата:   28-10-07 22:56

Конфликты решать следующим образом

-ия: S1FS Лобня, Азия, Верея

=============

Ответить на это сообщение
 
 Re: Помогите написать программу для склонения падежей
Автор: Peter 
Дата:   28-10-07 23:31

Некоторые исправления. (разделить S1FS. Опечатка в названии модели - S2NFP должны быть S2NSP)

S1FS Лобня, Верея
S1FS_1 Азия

S2NSP Моря
S2NSP_1 -ия


Конфликты решать следующим образом

-ия: S1FS_1 Азия

==========

Ответить на это сообщение
 
 Re: Помогите написать программу для склонения падежей
Автор: Peter 
Дата:   29-10-07 12:58

надо дополнить

A6F -яя, Большая


==========
"Большая" само, про себя, будет в базе слов и идет в A5F. Но таким образом причастия на -щая падают мягко.

Ответить на это сообщение
 
 Re: Помогите написать программу для склонения падежей
Автор: Peter 
Дата:   30-10-07 00:08

Надо дополнить

S4 Токио, Баку, СамОа

Конфликты решать следующим образом

-ие: A5P Красные, Ленинские
-ие: A6P -ие
кроме -ние: S2NS_2 -ие

==============

Ответить на это сообщение
 
 Re: Помогите написать программу для склонения падежей
Автор: ApplePro 
Дата:   31-10-07 11:37

Спасибо, Peter.

Если я правильно понял, то мне нужно переделывать эти правила под под программу следующим образом, например:

S2MH - если окончание на согласную, крому "ч", "щ", "ь", то изменяем так:
Ип -окончание не изменяется
Рп -а
Дп -у
Вп -окончание не изменяется
Тп -ом
Пп -е

Я все правильно понимаю?

Ответить на это сообщение
 
 Re: Помогите написать программу для склонения падежей
Автор: Эль 
Дата:   31-10-07 11:48

Возьмите Грамматический словарь Зализняка, изучите его систему символов, достаточно простую. Заложите ее в вашу машину и дайте каждому слову нужный шифр. Что, действительно, изобретать велосипед, когда Зализняк сто лет как это сделал?

Ответить на это сообщение
 
 те же грабли
Автор: Кот Мартовский 
Дата:   31-10-07 12:00

Эль, согласен на все сто.
Каждому лбу - персональные грабли.

Ответить на это сообщение
 
 Re: Помогите написать программу для склонения падежей
Автор: sad 
Дата:   31-10-07 12:51

Эль, +1.
Каждому изобретателю - по велосипеду!

Ответить на это сообщение
 
 Re: Помогите написать программу для склонения падежей
Автор: Peter 
Дата:   31-10-07 13:21

>>S2MH - если окончание на согласную, крому "ч", "щ", "ь", то изменяем так:

Это кроме ж ч ш щ ь.

Но альгорифм не так прямо, надо разделить по шагам

Префильтр:
Если к г х + и, то "и" переходит в "ы"


Определение модели:
Если окончание на ь, то модель S3FS
Если окончание на согласную, кроме ж ч ш щ ь, то модель S2MH
Если окончание на ж ч ш щ, то модель S2MS

Но если данное название уже имеет определенную, поправленную модель в базе, то использовать такую memorized модель.


Склонение:
Если модель S2MH, то изменяешь так:
Ип -окончание не изменяется
Рп -а
Дп -у
Вп -окончание не изменяется
Тп -ом
Пп -е


Если модель S2MS, то изменяешь так:
в косвенных падежах брось "ь", если есть.
Ип -окончание не изменяется
Рп -я
Дп -ю
Вп -окончание не изменяется
Тп -ем
Пп -е

Если модель S3FS, то изменяешь так:
в косвенных падежах брось "ь"
Ип -окончание не изменяется
Рп -и
Дп -и
Вп -окончание не изменяется
Тп -ью
Пп -и

Постфильтры:
к г х ж ч ш щ + ы я ю, тогда ы я ю переходят в "и а у"
ц + о, о переходит в "е"


Постфильтры можно и делать прямо, где нужны, в моделях. Это может быть легче для програмирования, на пример:

Если модель S2MS, то изменяешь так:
в косвенных падежах брось "ь", если есть.
Ип -окончание не изменяется
Рп -я / -а
Дп -ю / -у
Вп -окончание не изменяется
Тп -ем
Пп -е


===========

Ответить на это сообщение
 
 Re: Помогите написать программу для склонения падежей
Автор: Peter 
Дата:   31-10-07 13:38

Хочу добавить модели для склонения слова "время". Я уверен, что в России такие поселки.

S3NS знамя
S3NSP знамена


=======

Ответить на это сообщение
 
 Re: Помогите написать программу для склонения падежей
Автор: Саид 
Дата:   31-10-07 13:51

Peter, ещё немного — и Вам останется только закодировать алгоритм на заданном аскером языке! ;)

Ответить на это сообщение
 
 Re: Помогите написать программу для склонения падежей
Автор: Peter 
Дата:   31-10-07 13:56

>>Peter, ещё немного — и Вам останется только закодировать алгоритм на заданном аскером языке! ;)


которого он не выдал до сих пор

Ответить на это сообщение
 
 Re: Помогите написать программу для склонения падежей
Автор: ApplePro 
Дата:   31-10-07 19:07

Эль сказал:
>
> Возьмите Грамматический словарь Зализняка, изучите его
> систему символов, достаточно простую. Заложите ее в вашу
> машину и дайте каждому слову нужный шифр. Что, действительно,
> изобретать велосипед, когда Зализняк сто лет как это сделал?

Спасибо за идею. Нашел в Гугле вот это описание:

--------------------
Грамматический словарь русского языка (словарь Зализняка) — составленный А. А. Зализняком словарь 100 тыс. базовых словоформ русского языка с их полным морфологическим описанием. Основополагающий труд по морфологии, где впервые был предложен системный подход к описанию грамматических парадигм, включающих не только изменение буквенного состава слов, но и ударения.
--------------------

Посмотрел онлайн версию словаря, но не понял как именно можно заложить эту систему в программу. Вы этим занимались? Посоветуйте, с чего начать и как это вообще должно выглядеть?

Ответить на это сообщение
 
 Re: Помогите написать программу для склонения падежей
Автор: ApplePro 
Дата:   31-10-07 19:08

Эль сказал:
>
> Возьмите Грамматический словарь Зализняка, изучите его
> систему символов, достаточно простую. Заложите ее в вашу
> машину и дайте каждому слову нужный шифр. Что, действительно,
> изобретать велосипед, когда Зализняк сто лет как это сделал?

Спасибо за идею. Нашел в Гугле вот это описание:

--------------------
Грамматический словарь русского языка (словарь Зализняка) — составленный А. А. Зализняком словарь 100 тыс. базовых словоформ русского языка с их полным морфологическим описанием. Основополагающий труд по морфологии, где впервые был предложен системный подход к описанию грамматических парадигм, включающих не только изменение буквенного состава слов, но и ударения.
--------------------

Посмотрел онлайн версию словаря, но не понял как именно можно заложить эту систему в программу. Вы этим занимались? Посоветуйте, с чего начать и как это вообще должно выглядеть?

Ответить на это сообщение
 
 Re: Помогите написать программу для склонения падежей
Автор: ApplePro 
Дата:   31-10-07 19:16

Саид сказал:
> Peter, ещё немного — и Вам останется только закодировать
> алгоритм на заданном аскером языке! ;)

Вам действительно на столько неприятно видеть когда один человек помогает другому? :| Я бесчисленное число раз устанавливал софт на линукс сервера и помогал найти ошибки в скриптах для людей, которых первый раз видел на форуме. Что в этом плохого? Почему не помочь, если владеешь знанием и есть немного времени?

Ответить на это сообщение
 
 Re: Помогите написать программу для склонения падежей
Автор: ApplePro 
Дата:   31-10-07 19:19

Peter сказал:
> >>Peter, ещё немного — и Вам останется только закодировать
> алгоритм на заданном аскером языке! ;)
> которого он не выдал до сих пор

PHP.


Спасибо за описание, понял как должен выглядеть алгоритм для ваших схем. Сначала определение модели по окончанию, затем изменение окончаний согласно выбранной модели.

Но не понял когда нужно применять префильтр:

Префильтр:
Если к г х + и, то "и" переходит в "ы"

Ответить на это сообщение
 
 Re: Помогите написать программу для склонения падежей
Автор: Peter 
Дата:   31-10-07 20:17

Вот на пример, возьми "Московский" или "Химки", получаешь "Московскый", "Химкы" (что плохая орфография, но)
из "Московскый", "Химкы" по окончаниям "ый", "ы" определяешь нужную модель A4MH или A1FH .

Ответить на это сообщение
 
 Re: Помогите написать программу для склонения падежей
Автор: Саид 
Дата:   31-10-07 20:17

ApplePro:

> Вам действительно на столько неприятно...

ApplePro, там у меня смайлик стоял. Ничего негативного в Ваш адрес я не подразумевал, лишь выразил восхищение упорством Peter'а. Не сердитель, плз.

Ответить на это сообщение
 
 Re: Помогите написать программу для склонения падежей
Автор: ApplePro 
Дата:   31-10-07 20:38

Саид сказал:
>
> ApplePro:
>
> > Вам действительно на столько неприятно...
>
> ApplePro, там у меня смайлик стоял. Ничего негативного в Ваш
> адрес я не подразумевал, лишь выразил восхищение упорством
> Peter'а. Не сердитель, плз.

Не сержусь. :)

Ответить на это сообщение
 
 Re: Помогите написать программу для склонения падежей
Автор: ApplePro 
Дата:   31-10-07 20:40

Понял, большое спасибо за объяснения. Скоро начну делать программу по вашим описаниям.

Ответить на это сообщение
 
 Re: Помогите написать программу для склонения падежей
Автор: Peter 
Дата:   01-11-07 01:59

словарь Зализняка: У каждого отклонения от стандарта свой индекс. А еще классификация ед.ч. и мн.ч. вместе, что умножАет их количество.

Но надо сказать и признать, что в словаре Зализняка есть образцы, о которых я не думал (на пример "санаторий").

Ответить на это сообщение
 форумы  |  свернуть  |  начало  |  к началу   назад  |  вперед