12.10.2004, 17:21 | #1 |
Участник
|
Склонение ФИО по падежам
Бухгалтерия требовала склонение ФИО в доверенностях и накладных.
Пришлось написать кодеюнит для этого дела. Если кому нужен... Работает почти во всех случаях (у меня не получилось с Сулейман-Амрах-Оглы только архив 6 kb. (номер кодеюнита 52721, триггеры лучше добавить в Localization Management) Спасибо тоже не будет лишним... Заодно потестируете...
__________________
Удачи! |
|
12.10.2004, 17:38 | #2 |
Гость
|
Polar, спасибо!
Была у меня идея тоже подобное написать , но зарубил за недостатком времени. |
|
12.10.2004, 17:50 | #3 |
Участник
|
если какие косяки... сообщайте обязательно
__________________
Удачи! |
|
12.10.2004, 21:47 | #4 |
Участник
|
Спасибо, Polar.
|
|
14.10.2004, 16:01 | #5 |
Участник
|
Респект!
|
|
14.10.2004, 16:14 | #6 |
Участник
|
В дополнение для определения пола по имени предлагаю таблицу
|
|
19.10.2004, 15:56 | #7 |
Участник
|
есть несколько вопросов:
1.вин. падеж - Дацковских (Серых) Максим Викторович - вроде неправильно склоняет 2.Альбедиль вроде тоже неправильно а так конечно крутой код. спасибо. |
|
19.10.2004, 18:50 | #8 |
Участник
|
Вообще -то задача была только для дательного падежа , доверенности выдавать.
Просто алгоритм подвернулся для всех падежей, ну вот чтобы два раза не бегать и сделал. Там еще и с творительным не все в порядке. Например фамилия Камин (Тв. П. кем? Каминым) а он склоняет как слово "камином" вроде все правильно, да не правильно. Там функция PadegC для слов которая надо будет переделать под фамилии конкретно. P.S. А вообще для того и открытый код. Чтобы его доделывали. Разве все не так в Navision или Axapta ?
__________________
Удачи! |
|
20.10.2004, 14:43 | #9 |
Участник
|
Цитата:
Изначально опубликовано Polar
Вообще -то задача была только для дательного падежа , доверенности выдавать. Просто алгоритм подвернулся для всех падежей, ну вот чтобы два раза не бегать и сделал. Там еще и с творительным не все в порядке. Например фамилия Камин (Тв. П. кем? Каминым) а он склоняет как слово "камином" вроде все правильно, да не правильно. Там функция PadegC для слов которая надо будет переделать под фамилии конкретно. P.S. А вообще для того и открытый код. Чтобы его доделывали. Разве все не так в Navision или Axapta ? согласен с этим, уже переделал. спасибо ещё раз за код. |
|
20.10.2004, 14:46 | #10 |
Участник
|
Цитата:
Изначально опубликовано Uni_DeMoN
согласен с этим, уже переделал. спасибо ещё раз за код. А поделиться? Заранее благодарю
__________________
Удачи! |
|
21.10.2004, 12:49 | #11 |
Участник
|
Цитата:
Изначально опубликовано Polar
Ну и.... А поделиться? Заранее благодарю |
|
21.10.2004, 13:13 | #12 |
Участник
|
Цитата:
Изначально опубликовано johndoe
Предлагаю еще один небольшой тест для кода Polar'а и Uni_DeMoN'а функции PadegC: предположим, что фамилия заканчивается на "-ко" и принадлежит женщине. Нужный падеж - родительный (остальные пока не важно). Если сработает - thanks a million - выкладывайте. а фамилии на -ко не склоняются вроде в русском языке? P.S. придумал тоже - женщин склонять в родительный, да еще и на "-ко"
__________________
Удачи! |
|
21.10.2004, 14:40 | #13 |
экс-модератор
|
Цитата:
Изначально опубликовано Polar
Например фамилия Камин (Тв. П. кем? Каминым) а он склоняет как слово "камином" вроде все правильно, да не правильно. жалко что кода вашего я не вижу, навижына у меня нету, а ни ноутпадом, ни аксаптой ваш коудъюнит не открыть а то-б, м.б., дал более практические рекомендации, да и вообще посмотреть интересно. не вышлите по адресу m.smirnov(a)tz.ru ? |
|
21.10.2004, 15:20 | #14 |
Шаман форума
|
немножко предметной области
|
|
21.10.2004, 16:57 | #15 |
Участник
|
Цитата:
Изначально опубликовано maxsmirnov
в славянских языках для существительных определена категория одушевленности/неодушевленности, и она влияет на склонение. жалко что кода вашего я не вижу, навижына у меня нету, а ни ноутпадом, ни аксаптой ваш коудъюнит не открыть а то-б, м.б., дал более практические рекомендации, да и вообще посмотреть интересно. не вышлите по адресу m.smirnov(a)tz.ru ? А может вообще общими силами довести алгоритм до нормального состояния? Я в принципе могу и на аксапту его перенести в свободное от работы время.
__________________
Удачи! |
|
21.10.2004, 17:25 | #16 |
Участник
|
Цитата:
Изначально опубликовано Polar
так это как раз и работает. Только надо использовать функцию padeg. а фамилии на -ко не склоняются вроде в русском языке? P.S. придумал тоже - женщин склонять в родительный, да еще и на "-ко" Но: а если я отчества не знаю? или фамилии? Собрать из отдельных слов не удается (пока?), вот и пришлось padegC "припахать"... |
|
21.10.2004, 17:31 | #17 |
Участник
|
Цитата:
Изначально опубликовано maxsmirnov
в славянских языках для существительных определена категория одушевленности/неодушевленности, и она влияет на склонение. Тут дело не в одушевленности, а в принадлежности фамилии, условно говоря, к числу "русских" (в отличие от иностранных). Тогда человек по фамилии, напр., Скалкин (рус.) и Слаткин (амер.) будут склоняться по-разному (тв. с [Иваном] Скалкиным, но: с [Джоном] Слаткином) |
|
25.10.2004, 09:58 | #18 |
Участник
|
Цитата:
Изначально опубликовано Polar
Ну и.... А поделиться? Заранее благодарю сорри за поздний ответ, раньше не мог... итак по порядку: 1). я не сказал что именно я переделал - каюсь: сначала я начал было подгонять для дат. падежа, но тут почему-то быстро вспомнил своего препода в универе, грозного дяденьку Мазного (создавшего кстати язык фортран для БЕСМ). Когда то он нас окончательно запарил с ЛОИ (лингвистические основы информатики) и мы вынуждены были писать переводчик на основе тезауруса и предикатных функций. Надо сказать, что переводчик получился на славу - гонял туда-сюда (с англ. на русск. и обратно) всё,чё ему скажешь. 2)1- это к слову так получилось а собственно что я хочу сазать - POLAR - твой код и алгоритмы - это конечно что-то!!! Respect. Ты хотел творит. падеж и ты его в принципе сделал, хотя...и тут тоже найдётся свой нюанс, но если ты и многие люди хотят большего, это уже другая история, тут одним проганьем не решить проблемы... Это подход творческий, и увлечься здесь крайне легко, забыв, конечную преследуемую цель... и соответственно результат будет уже не тот. Я просто хочу сказать, что запрограммировать можно всё, но учесть все нюансы в таких серьёзных вещах, не сможет, наверное, никто. Придёт например, Саша Лоэ, и скажет а пачему меня так обозвали Так вот, я предлагаю лучше перейти немного на другой уровень, точнее на тот, с которым я лично уже сталкивался на практике, а именно: самообучающуюся систему на основе тезауруса. И здесь уже приложить весь свой бесспорный талант. Это, на мой взгляд, единственный выход избежать неопределённости Вот то что пришло сразу на ум: берётся электронный справочник ФИО (можно хоть по всему миру - главное чтобы кодировки нужные нашлись - вот было бы прикольно) разбивается и закачивается датапортом по таблицам. 3 таблицы, по 5 полей в каждой (можно конечно и увеличить). Имя, Фамилия, Отчество. Им.п., род. п., дат. п., вин. п., твор. п., предл. п.. Кодюнит делает выборку по этим таблицам в целях поиска уникальной записи (если не находит слово, выдаётся диалог. окно с занесением туда по падежам). В принципе так и переводчик мона накалякать, было бы желание. |
|
25.10.2004, 11:43 | #19 |
Участник
|
2 Uni_DeMoN
вообще то лучше сделать таблицу исключений , которые не поддаются общим правилам склонения. (таблица со всеми фамилиями - ты размер ее представь). И походу возникновения , заносить новые данные.
__________________
Удачи! |
|
25.10.2004, 13:34 | #20 |
Участник
|
Цитата:
Изначально опубликовано Polar
2 Uni_DeMoN вообще то лучше сделать таблицу исключений , которые не поддаются общим правилам склонения. (таблица со всеми фамилиями - ты размер ее представь). И походу возникновения , заносить новые данные. как будет система определить, исключение это или нет? если хотите сделать универсальную систему, придётся постоянно код дописывать до следующей грабли. зы а размеры таблиц по моему вполне доступные для работы хотя конечно надо попробовать как это на навижине получится... в нетипизированном файле через дельфи запись хваталась на ура и мигнуть не успеешь... |
|