11 декабря, понедельник 03:32
Bankir.Ru

Объявление

Свернуть

Технические работы на сайте

Сегодня, 8 декабря, на сайте будет обновлена система авторизации. Новый функционал позволит объединить регистрацию на форуме с регистрацией в комментариях. После этого обновления надо будет залогиниться по новой на форуме. При возникновении проблем с регистрацией пишите мне на forum@bankir.ru. Для пользователей форума будут внесены некоторые изменения в личный кабинет пользователя. Смена E-mail и пароля переедет в единый личный кабинет.
Показать больше
Показать меньше

Склонение ФИО

Свернуть
X
  • Фильтр
  • Время
  • Показать
Очистить всё
новые сообщения

  • Склонение ФИО

    Всем доброго здравия!

    Хочу поделиться полезными (надеюсь) многим программистам функциями склонения ФИО на русском языке во все падежи.

    Если у кого есть подобные вещи, может, тоже поделитесь?

    Если ошибки найдёте, отпишите на borisf@mail.ru, ладно?

    Борис

  • #2
    Собственно, вот они:

    Комментарий


    • #3
      Все это замечательно, но все же более правильный путь (на мой взгляд) - решить проблему в корне - изменить формы договоров с тем, чтобы ФИО стояли в именительном падеже. Законодательство этого вопроса никак не регулирует. Мы у себя в банке даже кое-чего добились таким способом.

      А то у нас среди клиентов есть китайцы, казахи и др.
      Попробуй тут посклоняй.

      Лечить нужно болезнь, а не симптомы.

      Комментарий


      • #4
        716-ый
        Вы абсолютно правы!

        Но мы-то сторонние поставщики ПО...
        Если клиент хочет - и как ему не угодить?

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

        Тот самый случай, когда проще отдаться, нежели объяснить, что их не хочешь...

        С другой стороны, я с ужасом думаю, что придёт очень уважаемый клиент, господин Ли Чен Ху, и вот аналогичная функция, но с ошибкой, возьмёт да и просклоняет его по правилам русского языка!

        Этак и до международного скандала недалеко... :-)

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

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

        Борис

        Комментарий


        • #5
          Borya
          Посмотрел функции !
          Если есть необходимость могу адоптировать для MSSQL 2000 ===========================================
          C Уважением Александр
          С уважением,
          Александр

          Комментарий


          • #6
            ALLEX и все-все-все

            А как у Вас решена эта вселенская проблема?

            Меня интересует, замахнулся ли кто-нибудь на принципиально иное решение, более формализованное?

            Или все примерно так же ... опытным путём ... при помощи IF/CASE и такой-то матери? :-)

            Есть ли в какой-нибудь системе (своей или покупной) возможность без ковыряния в коде оперативно вносить изменения в правила склонения?

            Борис

            Комментарий


            • #7
              Borya "А как у Вас решена эта вселенская проблема? "
              Отвечаю не как )
              А чтоб SQL не мучать IF/CASE , я думаю проше написать dll с этими функциями.
              Так будет проше и быстрее.
              ===========================
              C Уважением Александр
              С уважением,
              Александр

              Комментарий


              • #8
                Полагаю, ЗАВЕДОМО правильное склонение ЛЮБОГО фио НЕВОЗМОЖНО в принципе, т.к. не существует правильной или неправильной записи фио. Если у кого-то в паспорте стоит "Ивоноф" - значит он Ивоноф.
                Аналогичные попытки были на MS Extension
                http://www.microsoft.com/rus/offext
                напр.:
                http://www.halyava.ru/alen/
                Согласен, что единственное решение=панацея: формы документов, где все фио в именительном падеже.
                Может, доживем...
                Как вариант - любой документ перед выводом на принтер загонять в текстовый редактор - Ли Чен Ху в родительном руками править

                Комментарий


                • #9
                  Borya
                  Меня интересует, замахнулся ли кто-нибудь на принципиально иное решение, более формализованное?
                  ALLEX
                  А чтоб SQL не мучать IF/CASE , я думаю проше написать dll с этими функциями.

                  Именно! Есть готовый инструмет в виде dll.
                  http://delphi.vitpc.com/mastering/poligon/webpadeg.htm
                  Verba volant, scripta manent.

                  Комментарий


                  • #10
                    Вот он сам.
                    Verba volant, scripta manent.

                    Комментарий


                    • #11
                      Да-с, это решение посерьёзней будет! :-)

                      И прекрасно!

                      Боря

                      Комментарий


                      • #12
                        Да, тема эта вечная... Вот ещё одна разработка, весьма универсальная, склоняет не только ФИО, но и должности, названия подразделений и практически любые словосочетания, записанные в свободной форме:

                        http://morpher.ru

                        Один недостаток - платная

                        Комментарий


                        • #13
                          Мы тоже ее юзаем, только качали кажется с дельфикингдом.

                          Комментарий


                          • #14
                            Есть простой выход - хранить склонения ФИО и должностей в БД и в печатных формах использовать необходимое склонение. Собственно, у нас именно так и реализовано.

                            Комментарий


                            • #15
                              dnk Склонение ФИО клиентов вы тоже храните в базе? Их склоняет операционист, когда вводит нового клиента?

                              Комментарий


                              • #16
                                Siberian Girl
                                Да.

                                Комментарий


                                • #17
                                  dnk абсолютно верное решение, обеспечивающее 100% корректность информации при условии ответственности операторов.
                                  Заводить и содержать псевдо-универсальное решение - путь в никуда. Т.е. результаты работы подобной балалайки требует тщательной проверки. а смысл?
                                  Конечно, самый простой вариант - переводить формы в именительный падеж. но, как подсказывает практика, на 100% исполнить сие невозможно.
                                  Вывод - хранить предопределенные значения. Если система хранения позволяет, точнее ее структура БД, можно хранить склонения любого строкового поля, любого объекта. В данном случае, доступ к склонению значения можно организовать при помощи одной ф-ции.
                                  Жить надо так, чтоб тебя помнили сволочи!

                                  Комментарий


                                  • #18
                                    В данном случае, доступ к склонению значения можно организовать при помощи одной ф-ции.
                                    Именно так и сделано у нас. Есть функция "дай ФИО клиента в указанном падеже". Функция сначала ищет запись в массиве склонений в указанном падеже, если не находит, то возвращает основное значение реквизита "ФИО". Аналогично с должностями и доверенностями сотрудников.

                                    Комментарий


                                    • #19
                                      dnk, alanf

                                      Всё же автоматическое склонение имеет ряд плюсов:

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

                                      - Меньше ошибок на выходе. С утверждением о 100% "корректности" оператора я не соглашусь - людям, как известно, свойственно. Особенно при выполнении рутинных операций, каковой является склонение. Для этого и нужны компьютеры!

                                      - В ситуации, когда база ФИО уже существует и имеет большой объём, автоматическое склонение просто незаменимо.

                                      Комментарий


                                      • #20
                                        morpher

                                        Меньше ошибок на выходе. С утверждением о 100% "корректности" оператора я не соглашусь - людям, как известно, свойственно.
                                        Попробуйте просклонять Ким Ок Дя автоматически, для начала определив род. :-)

                                        Комментарий


                                        • #21
                                          В массовых операциях используем склонятор в родительный падеж с предоставлением возможности исправления оператором. В принципе можно исправленное в базу заносить.

                                          Комментарий


                                          • #22
                                            morpher
                                            Для этого и нужны компьютеры!
                                            согласен
                                            но вот пока есть частные случаи, которые ломают общую теорию, увы решение не работает и также требует пристального внимания, что, даже не спорьте, не лезет в постулаты рациональной автоматизации.

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

                                            кстати, еще куча примеров с "оглы", "заде". есть у нас клиент с двойной фамилией, причем последняя ее часть чисто программисткая - ООП, да через дефис. А корейцы? это же беда прямо для склонятора. Там же японцы и китайцы, не дай Бог афганцы. Да и у наших соотечественников есть такие имена, что и пол сложно определить. А затачиваться под распространенные в РФ имена... это ж щовенизм какой-то
                                            Жить надо так, чтоб тебя помнили сволочи!

                                            Комментарий


                                            • #23
                                              alanf но вот пока есть частные случаи, которые ломают общую теорию, увы решение не работает

                                              Не согласен. А операционист откуда возьмёт "правильное склонение" - у клиента спросит? Есть ли уверенность, что мнение операциониста будет более правльным, чем чёткий алгоритм по правилам русского языка?

                                              dnk Попробуйте просклонять Ким Ок Дя автоматически, для начала определив род

                                              Род определяется легко - из графы "Пол" клиента.
                                              *Д.Ж*

                                              Комментарий


                                              • #24
                                                dj_nsk
                                                Не согласен. А операционист откуда возьмёт "правильное склонение" - у клиента спросит? Есть ли уверенность, что мнение операциониста будет более правльным, чем чёткий алгоритм по правилам русского языка?
                                                Вот результат работы "чёткого" алгоритма по правилам русского языка (даже не взирая на род):
                                                кто, что? Ким Ок Дя
                                                кого, чего? Кима Ока Дя
                                                кому, чему? Киму Оку Дя
                                                кого, что? Кима Ока Дя
                                                кем, чем? Кимом Оком Дя
                                                о ком, о чём? о Киме Оке Дя

                                                Комментарий


                                                • #25
                                                  dj_nsk
                                                  Не согласен. А операционист откуда возьмёт "правильное склонение" - у клиента спросит? Есть ли уверенность, что мнение операциониста будет более правльным, чем чёткий алгоритм по правилам русского языка?
                                                  Вот результат работы "чёткого" алгоритма по правилам русского языка (даже не взирая на род):
                                                  кто, что? Ким Ок Дя
                                                  кого, чего? Кима Ока Дя
                                                  кому, чему? Киму Оку Дя
                                                  кого, что? Кима Ока Дя
                                                  кем, чем? Кимом Оком Дя
                                                  о ком, о чём? о Киме Оке Дя

                                                  Комментарий


                                                  • #26
                                                    Кстати, нашел документ http://www.osu.ru/docs/official/regulation.doc

                                                    Особенно понравилось вот это:
                                                    3. Склоняются, как правило, фамилии на неударные -а, -я (в основном славянские, романские и некоторые другие) (статья В.М. Птицы, творчество Яна Неруды, песни в исполнении Роситы Кинтаны, беседа с А.Вайдой, стихи Окуджавы). Колебания наблюдаются в употреблении грузинских и японских фамилий, где встречаются случаи склоняемости и несклоняемости:
                                                    o игра нар. артиста СССР Харавы; 100 лет со дня рождения Сен-Катаямы, фильмы Куросавы;
                                                    o работы А.С. Чикобава (и Чикобавы); творчество Пшавела; министр в кабинете Икэда; выступление Хатояма; фильмы Витторио де Сика (не де Сики).


                                                    Это к слову о четкости алгоритма.

                                                    Комментарий


                                                    • #27
                                                      dnk Вот результат работы "чёткого" алгоритма по правилам русского языка

                                                      А как правильно по мнению операциониста?

                                                      Вообще говоря, лучший вариант решения проблемы - сделать так, чтобы вопрос о её решении даже не возникал. Поэтому самы правильный вариант (здесь уже озвучивался): все шаблоны документов передалать так, чтобы везде использовался только именительный падеж.
                                                      Я абсолютно уверен, что это возможно. Кто не согласен - пусть покажет мне конкретный "невозможный" вариант

                                                      dnk Это к слову о четкости алгоритма
                                                      Ещё раз повторюсь: и Вы верите, что все эти правила тётя Маша или девушка Катя - операционист ЗНАЕТ и УМЕЕТ, а вот глупая машина - нет???
                                                      *Д.Ж*

                                                      Комментарий


                                                      • #28
                                                        [пятничный оффтоп]

                                                        Род определяется легко - из графы "Пол" клиента
                                                        Ну не всегда это тривиальная задача...

                                                        [/пятничный оффтоп]
                                                        "Единственный способ научиться играть лучше - играть с более сильным соперником!"

                                                        Комментарий


                                                        • #29
                                                          Сообщение от Юнец Посмотреть сообщение
                                                          [пятничный оффтоп]
                                                          Ну не всегда это тривиальная задача...
                                                          [/пятничный оффтоп]
                                                          )) оффтоп удался )))

                                                          По теме:
                                                          думаю, всегда динамически склонять имя - быстрый путь к получению забавных документов. IMHO, надо иметь место для хранения ФИО как минимум в 3 падежах (имен-ный, род-ный, дат-ный), а вот как их заполнять - только руками исполнителя или помочь динамическим склонением под контролем исполнителя - дело выбора.
                                                          Глюкоправ

                                                          Комментарий


                                                          • #30
                                                            В клиенте желательно хранить именительный, родительный (для приходника) и дательный (для расходника).
                                                            А при заведении клиента подсказывать операционисту, какая именно форма ориентировочно должна быть.
                                                            После чего Операционист либо соглашается, либо вводит так, как ему надо (Ким Ок Дя или подобное).
                                                            Дальше все берется из параметров клиента.

                                                            Комментарий

                                                            Пользователи, просматривающие эту тему

                                                            Свернуть

                                                            Присутствует 1. Участников: 0, гостей: 1.

                                                            Обработка...
                                                            X