Перевести слово в родительный падеж

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Osteon
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 122
Зарегистрирован: 17.01.2013 (Чт) 5:53

Перевести слово в родительный падеж

Сообщение Osteon » 13.01.2016 (Ср) 10:05

Здравствуйте, уважаемые! С наступившими вас!

Существует ли кирпичик/брик по переводу слова из именительного в родительный падеж?

На печать выводится справка, в которой есть строка "Выдана тому-то". Есть Иванов Иван Иванович, а справка "Выдана Иванову Ивану Ивановичу". Создавать базу данных или как-то иначе нереально, иначе там будут несметные тыщи фамилий и имен, и все равно всех не внесешь.

Или такая функция неподвластна программированию?

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Перевести слово в родительный падеж

Сообщение Хакер » 13.01.2016 (Ср) 10:21

Ну конечно же за предыдущие 16 лет существования форума никому в голову не приходило это спросить, поэтому поиском пользовать не надо.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Osteon
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 122
Зарегистрирован: 17.01.2013 (Чт) 5:53

Re: Перевести слово в родительный падеж

Сообщение Osteon » 13.01.2016 (Ср) 12:43

Спасибо, уважаемый! :-D
За предыдущие 16 лет поднята только одна тема, и то на уровне обсуждения? :pale: А я про готовый кирпичик спрашивал... Не судьба? :(

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 13.01.2016 (Ср) 14:09

Когда-то видел библиотеку готовую, но даже не помню, на каком языке.

Osteon
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 122
Зарегистрирован: 17.01.2013 (Чт) 5:53

Re: Перевести слово в родительный падеж

Сообщение Osteon » 14.01.2016 (Чт) 12:09

Значит, не судьба... Попробую порыть инет, если что найду - отпишусь.

Osteon
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 122
Зарегистрирован: 17.01.2013 (Чт) 5:53

Re: Перевести слово в родительный падеж

Сообщение Osteon » 14.01.2016 (Чт) 13:08

В общем-то, найти можно:
http://www.miyconst.com/Blog/View/1029/%D1%81%D0%BA%D0%BB%D0%BE%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5-%D1%80%D1%83%D1%81%D1%81%D0%BA%D0%B8%D1%85-%D0%B8%D0%BC%D0%B5%D0%BD-%D0%B8-%D1%84%D0%B0%D0%BC%D0%B8%D0%BB%D0%B8%D0%B9-%D0%BD%D0%B0-javascript-c
http://excelvba.ru/code/DativeCase

Это только навскидку. Но конкретно для VB6 пока не нашел. Если кому сильно нужно - можно подкорректировать имеющиеся*.cs и*.js

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Перевести слово в родительный падеж

Сообщение Хакер » 14.01.2016 (Чт) 14:41

У нас есть стеммер, который умеет отрезать окончания от основ:
viewtopic.php?f=74&t=36399

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

Заранее хочу сказать, что те 3 склонения, которые народ изучает в школе — это полнейший шлак для гуманитариев. Нужно использовать систему склонений, предложенную Зализняком, ибо она гораздо лучше поддаётся алгоритмизации.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 14.01.2016 (Чт) 19:26

Я видел именно для имён и фамилий. Там были специфические правила, что склонять, а что нет, причём в зависимости от пола человека, окончания и списков исключений. Имеет смысл попытаться именно это найти. А то я подозреваю, что такое быстро сделать ну никак не получится.

KiloGraf
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 142
Зарегистрирован: 21.10.2004 (Чт) 7:37
Откуда: берутся такие глупые вопросы?

Re: Перевести слово в родительный падеж

Сообщение KiloGraf » 17.01.2016 (Вс) 1:22

Вообще-то я любитель "изобретать велосипед", по причине того, что я не любитель сторонних компонентов в своих проектах, в частности это большинстве относится к динамическим библиотекам (DLL).

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

Живёт это чудо здесь. Там же описание, примеры и доп. материалы.

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

Изображение

Пример можно взять здесь. В архиве лежит проект, сама библиотека и подключаемый файлик словаря исключений.
Nonsense in BASIC. © 1982 ...

Osteon
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 122
Зарегистрирован: 17.01.2013 (Чт) 5:53

Re: Перевести слово в родительный падеж

Сообщение Osteon » 18.01.2016 (Пн) 16:08

Обалдеть!!!
Даже не ожидал, что программно это реализуется, мягко говоря, "не одной строкой". :o
Спасибо, ребята! Отдельно спасибо KiloGraf. :)
В общем-то, сейчас садись и изучай... Это я себе... :shock:

PS Так, отвлеченно - у KiloGraf подстатусно фраза - "откуда берутся такие глупые вопросы". Не желая никого задеть, всегда был и буду пребывать в уверенности, что самый глупый вопрос - это не заданный вопрос. Если он не праздный, естессно.

KiloGraf
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 142
Зарегистрирован: 21.10.2004 (Чт) 7:37
Откуда: берутся такие глупые вопросы?

Re: Перевести слово в родительный падеж

Сообщение KiloGraf » 18.01.2016 (Пн) 17:21

Osteon писал(а):Даже не ожидал, что программно это реализуется, мягко говоря, "не одной строкой"

Хакер уже давал ссылки на материалы... при чтении которых, даже по диагонали, этого можно было бы ожидать ))

Osteon писал(а):Спасибо, ребята! Отдельно спасибо KiloGraf

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

Osteon писал(а):PS Так, отвлеченно - у KiloGraf подстатусно фраза - "откуда берутся такие глупые вопросы". Не желая никого задеть, всегда был и буду пребывать в уверенности, что самый глупый вопрос - это не заданный вопрос. Если он не праздный, естессно.

Про фразу...
...она была написана очень давно, на одном локальном форуме нашего городского инет провайдера. А так, как форум был строго локальным, то значение "Откуда:" теряло весь смысл, и даже звучало глупо.
С тех пор, то самое значение используется мной совсем не по назначению ))
Nonsense in BASIC. © 1982 ...

Osteon
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 122
Зарегистрирован: 17.01.2013 (Чт) 5:53

Re: Перевести слово в родительный падеж

Сообщение Osteon » 21.01.2016 (Чт) 11:08

KiloGraf писал(а):Хакер уже давал ссылки на материалы... при чтении которых, даже по диагонали, этого можно было бы ожидать ))

Это мое "не ожидание" было еще до прочтения материалов, ссылку на которые любезно предоставил Хакер. Прочтение, и последующее ознакомление с другими дало лишь уверенность в моем "не ожидании"... :wink:

А за "отдельное спасибо" - так именно тебе, не умаляя работы "тех ребят". Ведь именно ты "слепил" примерчик, на основании которого и пойдут дальнейшие действия. Так что "отдельного спасибо" я не снимаю! :D

KiloGraf
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 142
Зарегистрирован: 21.10.2004 (Чт) 7:37
Откуда: берутся такие глупые вопросы?

Re: Перевести слово в родительный падеж

Сообщение KiloGraf » 21.01.2016 (Чт) 14:17

Ну хорошо )

Кстати, забыл сказать, что изначально я собрал всё с DLL'кой, в которой помимо нативных функций ещё был и COM-сервер. Но так, как я в примере привел только нативное подключение, то следует и библиотеку тоже без OLE использовать. Ведь у них существенная разница в размере. Обе DLL'ки авторы опубликовали (в самом низу статьи).
Я тоже в примере заменил на чисто нативную, так называемую Small-версию, и заново собрал архив.
Nonsense in BASIC. © 1982 ...


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 86

    TopList