masterspammer (masterspammer) wrote,
masterspammer
masterspammer

РазделЯТЬ и властвовАТЬ

Ковыряю словарь Лебедева дальше. Изначально (в той версии, с которой я столкнулся впервые) там было 24 правила, теперь уже 25:

# Here's a record of flags used, in case you want to add new ones.
#
#            ABCDEFGHIJKLMNOPQRSTUVWXYZ
# Used:      **************************
#            AB DEFGHIJKLMNOPQRSTUVWXYZ
# Available:   C                      



, причём ещё без моих правок, а только обновление версии до 0.99g5 самим автором.

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

Типовые действия - добавить флаг для того, что то ли есть, то ли нет или добавит два флага, что может быть или так или так.

Например, к flag *M:   глаголы на -ать и -еть (1-е спряжение) добавился flag *m: говорящий включён, 1 лицо мн.число, на -те; только совершенный вид.

Или вот flag *O: всякие нестандартные ситуации ... существительные м.р. на -ец с беглой е ... окончания в т.п. нестандартны приводят к

    О Е Ц       >       -ЕЦ,ЙЦЕМ        # MYMYMY молотобоец > молотобойцем (т.п.)
    Л Е Ц       >       -ЕЦ,ЬЦЕМ        # MYMYMY бенгалец > бенгальцем (т.п.)
    [БВДЖЗКМНПРСТШ] Е Ц         >       -ЕЦ,ЦЕМ         # MYMYMY украинец > украинцем


и
    О Е Ц       >       -ЕЦ,ЙЦОМ        # MYMYMY боец > бойцом (т.п.)
    Л Е Ц       >       -ЕЦ,ЬЦОМ        # MYMYMY малец > мальцом
    [БВДЖЗКМНПРСТШ] Е Ц >       -ЕЦ,ЦОМ         # MYMYMY бубенец > бубенцом


очевидно, что тут только одно из двух (по факту зависит от ударения) и без знания слова компьютер и человек сделают одну и ту же ошибку. Это, кстати, очень хорошо, так как (при наличии словаря) сразу понятно, в чём ошибся, а что имел в виду - понятно даже и без словаря и не нужно высчитывать расстояния между словами.

Вот только правил тут оказывается слишком много - в данном случае к O добавились o и 0 (ноль), тогда получается боец/O0 и молотобоец/Oo, а какой-нибудь ***ец может быть /Oo0 (например, если есть варианты ударения).

Пока попробовал добавлять строчные буквы (удобно, так как если нужно добавить одну букву, то они оказываются связанными - J и j, например; но потом буквы кончились. По грубым прикидкам строчных букв и цифр жолжно хватить, но будет неудобно и нелогично. Пока склоняюсь к формату [A-Za-z][0-9]*; да, 0 в таком случае удалю :-)
Tags: ТекстовыеАлгоритмы, Язык
Subscribe

  • 3D в La Scala

    Это вот про такую картинку - где сзади стенки сходятся и зажимают треугольный рассекатель. И вот ещё про что.…

  • От субботы до субботы!

    Шкафчики красиво подвесил - в точности в той конфигурации, как они висели на прошлой их (не нашей!) кухне. Обнаружил небольшой уклон вбок (заметную…

  • Алдан

    Кажется, я знаю, как назвать своё "произведение" на Z80; про идею я писал несколько раз, а кратко это: 1. "системный" режим,…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 5 comments