понедельник, 27 апреля 2009 г.

Аспекты реализации

Давайте рассмотрим сущности, которые потребуются для будущей системы, а также некоторые требования к этим сущностям.

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

Коллекция слов
Коллекция слов представляет собой класс для работы с неупорядоченным набором слов. Функции данного класса:
- количество слов;
- уникализация коллекции;
- сбор гистограммы триграмм по коллекции;
- итератор по словам;
- базовые методы работы с коллекцией - поиск, пересечение, объединение.

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

Случай склонения
Так как, видимо, будет слишком сложно параметризовать алгоритм анализа слова на возможные склонения с учётом развития информационной базы. Придётся наплодить кучу реальных классов наследованных от общего абстрактного. А если посмотреть на число случаев склонения существительных, то можно примерно оценить необходимый объём кода. Кода, очевидно, будет очень много. Написание и структурирование этого кода, на мой взгляд, будет оправдано только в случае, если будет подготавливаться релиз версия кода.

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

Хранилище данных
Тут нет разницы работать с собственным хранилищем данных или же использовать базу данных. Дополнительный объём кода в первом случае просто напросто компенсируется кодом на работу с хранилищем, а также кодом создания хранилища.

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

четверг, 23 апреля 2009 г.

Продолжение существительных

[овь] [овь] [ви] [овь] [овью] [ви]
любовь
Исключение. Чередующийся корень.

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

[ок] [ка] [ку] [ок] [ком] [ке]
рассудок, цветок, мешок, переулок, кусок, порядок, подбородок, зевок, свёрток, чесночок, пирожок, рывок, уголок, потолок, смешок, голосок, поселок, звонок, слушок
Мужской род. Неодушивлённые.

[я] [и] [и] [ю] [ей] [и]
комиссия, история, милиция, администрация, пригоршня, функция, антимония, физиономия, лекция, рептилия, эволюция, доля, биология, информация, экспедиция, конструкция, обсерватория, реакция, депрессия, анархия, траектория, семья, колония, демократия, серия, ситуация, полиция, неделя, компания, аудитория, симпатия, кремация
Женский род. Неодушевлённые. Окончание <согласная>-ия. В правило не вписываются слова пригоршня, доля, семья, неделя.

[ая] [ой] [ой] [ую] [ой] [ой]
справочная, прямая, вселенная
Это как ни крути прилагательные, просто используются как существительные. Женский.

[й] [я] [ю] [й] [ем] [и]
гравий
Вот одно такое странное слово.

[ень] [ня] [ню] [ень] [нем] [не]
камень, уровень, перечень
Мужской род.

[а] [ы] [е] [у] [ей] [е]
улица, половица, луковица, царица, мельница, птица, красавица, учительница, соучастница
Женский род. Перед окончанием ц.

[ь] [я] [ю] [ь] [ем] [е]
указатель, двигатель, корабль, фонарь, тоннель, госпиталь
Мужской род. Неодушивлённые. Перед окончанием л или р.

[а] [] [ам] [а] [ами] [ах]
ворота, чернила, небеса
Женский род. Неодушевлённое.

[а] [и] [е] [у] [ей] [е]
крыша, галоша, калоша, тысяча, сдача, видеопередача, встреча, неудача
Женский род. Неодушевлённое. Базовая форма оканчивается на ч или ш.

[ё] [я] [ю] [ё] [ём] [е] ружьё, бельё. Средний род.

[] [] [] [] [] [] рандеву, депо. Исключения не склоняемые слова.

[е] [я] [ю] [е] [ем] [е]
лукоморье, платье, море, подполье. Средний род.

[ый] [ого] [ому] [ого] [ым] [ом]
учёный. Образовано от прилагательного. Мужской род.

[ец] [ца] [цу] [ец] [цом] [це]
конец, огурец, дворец. Мужской род. Неодушевлённое. Изменяющийся корень.

[ец] [ьца] [ьцу] [ьца] [ьцем] [ьце]
доброволец, комсомолец, пришелец. Мужской род. Одушевлённое. Базовая форма оканчивается на -ол -ел.

[ец] [ца] [цу] [ец] [цем] [це]
запорожец, колодец. Мужской род. Неодушевлённое.

[ая] [ей] [ей] [ую] [ей] [ей]
прихожая. И снова прилагательное.

[ийся] [егося] [емуся] [егося] [имся] [емся]
нижеподписавшийся. Ну вот, разнообразие, теперь - причастие.

[ол] [ла] [лу] [ол] [лом] [ле]
угол. Изменяющийся корень.

[я] [ени] [ени] [я] [енем] [ени]
время, имя, племя, семя. Женский род. Неодушевлённое. -имя -емя

[ь] [я] [ю] [ь] [ём] [е] рубль, гвоздь. Мужской род.
[я] [и] [е] [ю] [ёй] [е] чешуя, земля, свинья. Женский род.

[ель] [ля] [лю] [ель] [лем] [ле] кашель. Изменяющийся корень.

[ек] [ка] [ку] [ек] [ком] [ке] горошек, полтинничек, подарочек. Мужской род. -чек. Я не удивлюсь, если суффикс -щек тоже сюда входит.

[он] [на] [ну] [он] [ном] [не] сон. Изменяющийся корень.

[ец] [ьца] [ьцу] [ец] [ьцем] [ьце] палец. Изменяющийся корень.

[ей] [ья] [ью] [ья] [ьём] [ье] воробей. Изменяющийся корень.

[ь] [я] [ю] [я] [ём] [е] царь, конь. Да уж. Родственные слова, однозначно.

[] [а] [у] [а] [ем] [е] царевич, муж, принц. Мужской род. Одушевлённое. ц ч ж

[ец] [ца] [цу] [ца] [цом] [це] молодец, отец
[ец] [ца] [цу] [ца] [цем] [це] молодец
Тут отличный пример омонимов. Вероятно можно пока запихнуть в исключения.

[ь] [я] [ю] [я] [ем] [е] лебедь, гость. Мужской род, одушевлённое.
[ь] [и] [и] [ь] [ём] [и] путь. Мужской род, неодушевлённое.
Да, видимо мягкий знак на конце мужского рода встречается не часто.

[й] [я] [ю] [й] [ем] [е] апогей, рай, покой. Мужской род, неодушевлённое.

[] [а] [у] [] [ем] [е] экипаж. Иностранное слово, на сколько я понимаю.

[ел] [ла] [лу] [ел] [лом] [ле] узел, замысел
[ёл] [ла] [лу] [ла] [лом] [ле] орёл
Мужской род, На сколько я понимаю. Буква ё тут выступает наравне с е.

[ь] [ери] [ери] [ь] [ерью] [ери] дочь, мать. Устаревшие слова. Изменение формы. В исключения однозначно.

[я] [и] [е] [ю] [ей] [е] деревня, простыня. Женский род -ня. Анимешники ликуйте.

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

вторник, 21 апреля 2009 г.

Формы склонения существительных

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

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

[] [а] [у] [а] [ом] [е]
демон, херувим, советник, человек, генерал, программист, бог, сотрудник, курильщик, брат, слон, сын, бегемот, друг, предшественник, кит, робот, циник, доктор, левиафан, колдун, старик, губернатор, врач, помощник, охранник, капитан
Мужской род. Одушевлённые. В именительном падеже слова оканчиваются на согласные, то есть перед окончанием стоит согласная. Выделяющиеся слова: бог, робот.

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

[] [а] [у] [] [ом] [е]
дух, полёт, грех, свет, бег, обмен, туман, совет, падеж, язык, возраст, диван, горизонт, багажник, лес, ряд, том, вид, год, ленинград, мурманск, берег, асфальт, идол, счет, космос, час, дом, проспект, мир, центр, поворот, номер, нос, забор, вес, глаз, двор, ворот, борт, скрип, треск, бас, образ, запасник, роман, дерматин, живот, голос, зуб, стол, ствол, пол, лишайник, подоконник, порог, бумажник, дуб, шепот, шум, бок, тип, интеграл, цвет, крем, сыр, огурчик, хлеб, уксус, воздух, карман, паштет, запах, раз, соус, хобот, ответ, озноб, круг, гул, обстрел, шаг, разум, итог, век, результат, рейс, аппарат, визит, телескоп, хаос, ход, полет, страх, выбор, комплекс, клюв, эдем, район, полуцилиндр, взгляд, топчан, побег, приборчик, приход, подол, фонарик, коридор, шик, след, рассвет, купол, домик, амбар, курятник, радиомаяк, шкафчик, магазин, пыл, график, рост, свинарник, этап, план, мак, подъём, корм, приговор, плен, остров, старт, обряд, пригород, стул, эфир, зал, вечер, намек, труд, поток, трепет, организм, металл, проход, выход, обед, тон, супермаркет, разговор

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

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

[ень] [ня] [ню] [ень] [нём] [не]
день
Исключение. Изменение корня.

[а] [ы] [е] [у] [ой] [е]

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

[е] [а] [у] [е] [ем] [е]
жилище, солнце, днище, здоровьице, сердце, чудище, зрелище, убежище, обиталище
Средний род. Окончания -це -ще.

[а] [и] [е] [у] [ой] [е]
улыбка, посадка, сказка, тройка, дорога, осока, рука, спинка, палатка, фабрика, пачка, точка, наука, койка, штука, калитка, мушка, вывеска, табличка, техника, натуга, дорожка, лужайка, сторонка, хозяйка, палка, нога, батюшка, платка, косынка, выставка, бабка, безрукавка, старуха, ручка, трагика, расписочка, занавесочка, вешалка, кепка, ушанка, побелка, занавеска, книга, пятерка, собака, скамеечка, подушка, физика, жестянка, рубаха, тарелка, вилка, картошка, юнга, папка, обложка, книжка, вклейка, лодка, кувшинка, звездочка, галактика, политика, загадка, стыковка, тревога, оболочка, фигурка, попытка, решетка, подруга, бумага, дуга, кроха, каморка, полка, щека, коробка, банка, атака, мистика, республика, разлука, библиотека, девочка, тоска, мука, записка, поимка, паника, прогулка, заслуга, ошибка, улочка, бабушка
Женский род. Одушевлённые и нет. Окончания на -ка и -га.

Продолжение следует...

понедельник, 20 апреля 2009 г.

Буква Ё в русском языке

Надо раз и навсегда решить вопрос использования, или не использования буквы ё в русском языке. Вернее, решить вопрос в какой форме эта буква должна присутствовать в исследовании. С одной стороны, в большинстве используемых текстов буква ё заменена на букву е. С другой стороны, буква ё столь же равноправная буква русского альфавита, как и все остальные.

Обзор вопроса
Первое использование буквы ё зафиксировано ещё в 18 веке. Не буду пересказывать всего того, что о ней написано, ибо это слишком большое количество материала. Одно можно сказать точно, использование буквы е вместо буквы ё уже привело к большой путаннице - искажённое чтение слов и фамилий. На законодательном уровне рекоменуется использовать букву ё. Правда не повсеместно, но в то же время повсеместное использование буквы ё не возбраняется. Господин Артемий Лебедев и половина стада его тупоголовых фанатов может смело идти в жопу со своим Ководством.

Стоит ли рассматривать букву ё как обязательную букву для данного исследования? Отвечу утвердительно.
А заодно приведу цитату из Википедии.

«Ё» и вычислительная техника
Сортировка
При упорядочении по алфавиту «е» и «ё» считаются одной и той же буквой (см. цитированные выше новые правила орфографии); если же два слова отличаются только в позиции буквы «е»/«ё», то слово с «е» ставится первым. Однако при компьютерной реализации этот алгоритм требует от программистов некоторых дополнительных усилий, вследствие чего взамен порой используют методы попроще, но не вполне корректные; в результате слова на букву «ё» могут оказаться в самом конце или в самом начале алфавита, или же «ё» оказывается хотя и на своем алфавитном месте, но в статусе полностью самостоятельной буквы (то есть слова на «ё-» идут после всех слов на «е-», слова на «лё-» — после всех слов на «ле-», и т. п.). Это происходит из-за того, что символ «ё» находится отдельно от (и после) всех остальных русских букв в расширенной таблице ASCII.

В некоторых программах для создания указателей (xindy) эта проблема удачно решена.

Автоматическая проверка орфографии
Буква «ё» поддерживается модулем проверки орфографии «ОРФО» компании «Информатик» встроенном, в частности, в популярный текстовый редактор Microsoft Word (ранние версии не поддерживали букву «ё» при проверке орфографии). К сожалению, «поддержка» эта чисто формальная: в проверяемом слове вместо букв «ё» просто подставляются «е» — таким образом проверку успешно проходят даже нарочито ошибочные формы слов типа «бёлый снёг». То же самое происходит при добавлении нового слова в пользовательский словарь.

Также «ё» поддерживается в свободно распространяемом офисном пакете OpenOffice.org и дополнительном словаре проверки русской орфографии для Mozilla Thunderbird.

Для UNIX-подобных систем Александром Лебедевым разработан специальный словарь с поддержкой буквы «Ё». Есть страница пакета в Debian. Он и используется в вышеупомянутых программах, а также во всех программах KDE.

Для полуавтоматической замены в текстах «е» над «ё» применяются специально разработанные программы, известные как «ёфикаторы».

Выводы
Использовать и учитывать букву ё в исследовании надо. "Ёфикатор" в руки и вперёд. Так как набранная база данных не очень велика, то она поддаётся корректировке. Следует "ёфицировать" данные и продолжить исследование.

Ссылки по теме
http://ru.wikipedia.org/wiki/%D0%81_(%D0%BA%D0%B8%D1%80%D0%B8%D0%BB%D0%BB%D0%B8%D1%86%D0%B0)
http://www.artlebedev.ru/kovodstvo/sections/119/
http://www.stihi.ru/avtor/bukvajo
http://zapomni.ru/portfolio/yo.htm

воскресенье, 19 апреля 2009 г.

Формы склонения существительных

Получил сырые данные со сбора эталонных форм существительных. Это ещё не полный результат, но я вынужден был остановиться для наведения порядка. Количество предполагаемых форм склонения перевалило за два десятка, потому следует систематизировать накопленный материал и выявить новые зависимости.

Результат
[ь] [и] [и] [ь] [ью] [и] печаль, вечность, любезность, брань, запись, повесть, благодетель, осень, россыпь, ночь, память, жесть, надпись, пасть, речь, дверь, бровь, мебель, скатерть, рухлядь, печь, формальность, постель, панель, ель, кровать, смерть, степень, мысль, жизнь, духовность, готовность, пыль, тень, задумчивость, матерь, болезнь, власть, способность, помощь, окрестность, поверхность, связь, часть, скорость, возможность, враждебность, радость, совесть, область, личность, гордость, вещь, боль, грудь, серьезность, вонь, принадлежность, фасоль, мышь, наивность, кость, страсть, казнь, новость, краткость, преданность, ответственность
[] [а] [у] [а] [ом] [е] демон, херувим, советник, человек, генерал, ряд, идол, программист, бог, сотрудник, курильщик, брат, слон, сын, бегемот, друг, предшественник, кит, робот, свинарник, циник, доктор, левиафан, колдун, старик, губернатор, врач, помощник, охранник, капитан
[] [а] [у] [] [ом] [е] дух, полёт, грех, свет, бег, обмен, туман, совет, падеж, язык, возраст, диван, горизонт, багажник, лес, том, вид, год, ленинград, мурманск, берег, асфальт, счет, космос, час, дом, проспект, мир, центр, поворот, номер, нос, забор, вес, глаз, двор, ворот, борт, скрип, треск, бас, образ, запасник, роман, дерматин, живот, голос, зуб, стол, ствол, пол, лишайник, подоконник, порог, бумажник, дуб, шепот, шум, бок, тип, интеграл, цвет, крем, сыр, огурчик, хлеб, уксус, воздух, карман, паштет, запах, раз, соус, хобот, ответ, озноб, круг, гул, обстрел, шаг, разум, итог, век, результат, рейс, аппарат, визит, телескоп, хаос, ход, полет, страх, выбор, комплекс, клюв, эдем, район, полуцилиндр, взгляд, топчан, побег, приборчик, приход, подол, фонарик, коридор, шик, след, рассвет, купол, домик, амбар, курятник, радиомаяк, шкафчик, магазин, пыл, график, рост, этап, план, мак, подъём, подъем, корм, приговор, плен, остров, старт, обряд, пригород, стул, эфир, зал, вечер, намек, труд, поток, трепет, организм, металл, проход, выход, обед, тон, супермаркет, разговор
[е] [я] [ю] [е] [ем] [и] изгнание, воспоминание, познание, положение, хладнокровие, порхание, прилежание, издание, восстановление, форматирование, предложение, назначение, счастье, общежитие, сияние, молчание, растение, управление, подсознание, отвращение, удивление, хихиканье, завывание, извещение, прощение, выражение, единение, неведение, затмение, развитие, изречение, отражение, распознавание, отличие, хождение, влияние, землетрясение, соединение, образование, состояние, самовоспроизведение, исследование, летоисчисление, радиопослание, столетие, отсутствие, потрясение, существование, происхождение, предназначение, дублирование, ожидание, посещение, беззаконие, внимание, прощание, соударение, расстояние, оружие, решение, путешествие, поселение, возвращение, уничтожение, мгновение, освещение, слежение, обличье, размышление, заточение, дыхание, отверстие, соответствие, исполнение, впечатление, укрытие, вынесение, подземелье, стремление, разнообразие, направление, пребывание, общение, облачение, выращивание, прикосновение, предприятие, течение, обследование, нарушение, облегчение, мероприятие, испытание, рождение
[ень] [ня] [ню] [ень] [нём] [не] день
[а] [ы] [е] [у] [ой] [е] толпа, комета, правда, вдова, форма, корректура, служба, суета, глава, рыба, машина, канистра, обочина, сторона, борода, сигарета, еда, зарплата, тема, судьба, голова, комната, ерунда, трава, цифра, воротина, изба, старина, фанера, глубина, масса, щетина, ржавчина, позолота, фраза, мзда, губа, бахрома, стена, шуба, рама, нота, кора, спина, листва, щеколда, досада, пустота, псина, пружина, мера, система, колбаса, котлета, мама, труба, пара, тинктура, бредятина, краса, зараза, слава, пора, борозда, лапа, стрела, звезда, орбита, планета, эра, аминокислота, молекула, бездна, антенна, декада, тайна, природа, группа, карта, основа, подсистема, процедура, половина, дюжина, женщина, армада, жена, тюрьма, война, волна, камера, высота, корона, королева, свобода, темнота, раковина, лестница, минута, тропа, ферма, сила, дыра, середина, лампа, одежда, вода, дама, цензура, надежда, свадьба, вера, победа, страница, принцесса, сцена, бригада, программа, равнина, кандидатура, окраина, аппаратура, жертва, тошнота, мужчина, слеза, папа, беседа
[е] [а] [у] [е] [ем] [е] жилище, солнце, днище, здоровьице, сердце, чудище, зрелище, убежище, обиталище
[а] [и] [е] [у] [ой] [е] улыбка, посадка, сказка, тройка, дорога, осока, рука, спинка, палатка, фабрика, пачка, точка, наука, койка, штука, калитка, мушка, вывеска, табличка, техника, натуга, дорожка, лужайка, сторонка, хозяйка, палка, нога, батюшка, платка, косынка, выставка, бабка, безрукавка, старуха, ручка, трагика, расписочка, занавесочка, вешалка, кепка, ушанка, побелка, занавеска, книга, пятерка, собака, скамеечка, подушка, физика, жестянка, рубаха, тарелка, вилка, картошка, юнга, папка, обложка, книжка, вклейка, лодка, кувшинка, звездочка, галактика, политика, загадка, стыковка, тревога, оболочка, фигурка, попытка, решетка, подруга, бумага, дуга, кроха, каморка, полка, щека, коробка, банка, атака, мистика, республика, разлука, библиотека, девочка, тоска, мука, записка, поимка, паника, прогулка, заслуга, ошибка, улочка, бабушка
[овь] [овь] [ви] [овь] [овью] [ви] любовь
[о] [а] [у] [о] [ом] [е] письмо, дерево, место, колесо, лицо, плечо, барахло, зеркало, лето, слово, стекло, добро, крыльцо, окно, беспокойство, село, небо, логово, утро, одеяло, ухо, масло, блюдо, дело, пятно, мясо, железо, бревно, рыло, любопытство, вино, блаженство, богатство, правило, яблоко, дуло, творчество, искусство, царство, государство, семейство, чудо, существо, обстоятельство, тело, доказательство, начало, человечество, агентство, общество, предательство, бегство, дерьмо, сено, кресло, устройство, чтиво, свиноводство, электричество, детство, правительство, чело, варварство
[ок] [ка] [ку] [ок] [ком] [ке] рассудок, цветок, мешок, переулок, кусок, порядок, подбородок, зевок, сверток, чесночок, пирожок, рывок, уголок, потолок, смешок, голосок, поселок, звонок, слушок
[я] [и] [и] [ю] [ей] [и] комиссия, история, милиция, администрация, пригоршня, функция, антимония, физиономия, лекция, рептилия, эволюция, доля, биология, информация, экспедиция, конструкция, обсерватория, реакция, депрессия, анархия, траектория, семья, колония, демократия, серия, ситуация, полиция, неделя, компания, аудитория, симпатия, кремация
[ая] [ой] [ой] [ую] [ой] [ой] справочная, прямая, вселенная
[й] [я] [ю] [й] [ем] [и] гравий
[ень] [ня] [ню] [ень] [нем] [не] камень, уровень, перечень
[ё] [я] [ю] [ё] [ём] [е] ружьё, бельё
[е] [я] [ю] [е] [ем] [е] ружье, лукоморье, платье, море, подполье
[] [] [] [] [] [] рандеву, депо
[а] [ы] [е] [у] [ей] [е] улица, половица, луковица, царица, мельница, птица, красавица, учительница, соучастница
[ь] [я] [ю] [ь] [ем] [е] указатель, двигатель, рубль, корабль, фонарь, тоннель, госпиталь
[а] [] [ам] [а] [ами] [ах] ворота, чернила, небеса
[а] [и] [е] [у] [ей] [е] крыша, галоша, калоша, тысяча, сдача, видеопередача, встреча, неудача
[ый] [ого] [ому] [ого] [ым] [ом] учёный, ученый
[ец] [ца] [цу] [ец] [цом] [це] конец, огурец, дворец
[ец] [ьца] [ьцу] [ьца] [ьцем] [ьце] доброволец, комсомолец, пришелец
[ец] [ца] [цу] [ец] [цем] [це] запорожец, колодец
[ая] [ей] [ей] [ую] [ей] [ей] прихожая
[ийся] [егося] [емуся] [егося] [имся] [емся] нижеподписавшийся
[ол] [ла] [лу] [ол] [лом] [ле] угол
[я] [ени] [ени] [я] [енем] [ени] время, имя, племя, семя
[ь] [я] [ю] [ь] [ём] [е] рубль, гвоздь
[я] [и] [е] [ю] [ёй] [е] чешуя, земля, свинья
[ель] [ля] [лю] [ель] [лем] [ле] кашель
[ек] [ка] [ку] [ек] [ком] [ке] горошек, полтинничек, подарочек
[он] [на] [ну] [он] [ном] [не] сон
[ец] [ьца] [ьцу] [ец] [ьцем] [ьце] палец
[ей] [ья] [ью] [ья] [ьём] [ье] воробей
[ь] [я] [ю] [я] [ём] [е] царь, конь
[] [а] [у] [а] [ем] [е] царевич, муж, принц
[ец] [ца] [цу] [ца] [цом] [це] молодец, отец
[ец] [ца] [цу] [ца] [цем] [це] молодец
[ь] [я] [ю] [я] [ем] [е] лебедь, гость
[ь] [и] [и] [ь] [ём] [и] путь
[ь] [и] [и] [ь] [ем] [и] путь
[й] [я] [ю] [й] [ем] [е] апогей, рай, покой
[] [а] [у] [] [ем] [е] экипаж
[ел] [ла] [лу] [ел] [лом] [ле] узел, замысел
[ел] [ла] [лу] [ла] [лом] [ле] орел
[ёл] [ла] [лу] [ла] [лом] [ле] орёл
[ь] [ери] [ери] [ь] [ерью] [ери] дочь, мать
[я] [и] [е] [ю] [ей] [е] деревня, простыня



Беглые выводы по полученным данным.
1. Есть несклоняемые слова, которые придётся накапливать в словарике исключений.
2. Есть слова с видоизменяющимся корнем, потому у них получились слишком длинные окончания, стоит ли для них составлять словарик пока не ясно.
3. Вариант склонения практически всегда определяет род слова.
4. Просматривается некоторая закономерность между склонением и набором букв.
5. Также видно, что некоторые варианты склонения можно объединить (с небольшими оговорками).

[Для себя: детально проанализировать результат]

пятница, 17 апреля 2009 г.

И снова о триграммах

Эффективность фильтрации триграммами оказалась не столь хороша, как я ожидал, но всё же довольно полезна. Эффективность зависит от анализируемого слова.
Примеры
----------------------------------------
Слово: звездочка
Возможные варианты (14):
[1]: (что?) звездочк (нет чего?) звездочка (дать чему?) звездочку (винить что?) звездочка (творить чем?) звездочком (говорить о чём?) звездочке
[2]: (что?) звездочк (нет чего?) звездочка (дать чему?) звездочку (винить что?) звездочк (творить чем?) звездочком (говорить о чём?) звездочке
[3]: (что?) звездочка (нет чего?) звездочку (дать чему?) звездочке (винить что?) звездочку (творить чем?) звездочкой (говорить о чём?) звездочке
[5]: (что?) звездочка (нет чего?) звездочки (дать чему?) звездочке (винить что?) звездочку (творить чем?) звездочкой (говорить о чём?) звездочке
[6]: (что?) звездочко (нет чего?) звездочка (дать чему?) звездочку (винить что?) звездочко (творить чем?) звездочком (говорить о чём?) звездочке
[7]: (что?) звездочка (нет чего?) звездочка (дать чему?) звездочке (винить что?) звездочку (творить чем?) звездочкой (говорить о чём?) звездочке
[8]: (что?) звездочке (нет чего?) звездочка (дать чему?) звездочку (винить что?) звездочке (творить чем?) звездочкем (говорить о чём?) звездочке
[10]: (что?) звездочка (нет чего?) звездочк (дать чему?) звездочкам (винить что?) звездочка (творить чем?) звездочками (говорить о чём?) звездочках
[11]: (что?) звездочка (нет чего?) звездочки (дать чему?) звездочке (винить что?) звездочку (творить чем?) звездочкей (говорить о чём?) звездочке
[12]: (что?) звездочк (нет чего?) звездочка (дать чему?) звездочку (винить что?) звездочка (творить чем?) звездочкем (говорить о чём?) звездочке
[13]: (что?) звездочок (нет чего?) звездочка (дать чему?) звездочку (винить что?) звездочок (творить чем?) звездочком (говорить о чём?) звездочке
[14]: (что?) звездочек (нет чего?) звездочка (дать чему?) звездочку (винить что?) звездочек (творить чем?) звездочком (говорить о чём?) звездочке
-------------------
[4]: (что?) звездочка (нет чего?) звездочкы (дать чему?) звездочке (винить что?) звездочку (творить чем?) звездочкой (говорить о чём?) звездочке
[9]: (что?) звездочка (нет чего?) звездочкы (дать чему?) звездочке (винить что?) звездочку (творить чем?) звездочкей (говорить о чём?) звездочке


----------------------------------------
Слово: галактики
Возможные варианты (8):
[4]: (что?) галактика (нет чего?) галактики (дать чему?) галактике (винить что?) галактику (творить чем?) галактикой (говорить о чём?) галактике
[8]: (что?) галактика (нет чего?) галактики (дать чему?) галактике (винить что?) галактику (творить чем?) галактикей (говорить о чём?) галактике
-------------------
[1]: (что?) галактикь (нет чего?) галактикь (дать чему?) галактики (винить что?) галактикь (творить чем?) галактикью (говорить о чём?) галактики
[2]: (что?) галактике (нет чего?) галактикя (дать чему?) галактикю (винить что?) галактике (творить чем?) галактикем (говорить о чём?) галактики
[3]: (что?) галактикя (нет чего?) галактики (дать чему?) галактике (винить что?) галактикю (творить чем?) галактикёй (говорить о чём?) галактике
[5]: (что?) галактикь (нет чего?) галактики (дать чему?) галактики (винить что?) галактикь (творить чем?) галактикью (говорить о чём?) галактики
[6]: (что?) галактикя (нет чего?) галактики (дать чему?) галактики (винить что?) галактикю (творить чем?) галактикей (говорить о чём?) галактики
[7]: (что?) галактикй (нет чего?) галактикя (дать чему?) галактикю (винить что?) галактикй (творить чем?) галактикем (говорить о чём?) галактики


----------------------------------------
Слово: млечный
Возможные варианты (2):
[2]: (что?) млечный (нет чего?) млечного (дать чему?) млечному (винить что?) млечного (творить чем?) млечным (говорить о чём?) млечном
-------------------
[1]: (что?) млечный (нет чего?) млечныя (дать чему?) млечныю (винить что?) млечный (творить чем?) млечныем (говорить о чём?) млечныи


----------------------------------------
Слово: путь
Возможные варианты (6):
[1]: (что?) путь (нет чего?) путь (дать чему?) пути (винить что?) путь (творить чем?) путью (говорить о чём?) пути
[2]: (что?) путь (нет чего?) пути (дать чему?) пути (винить что?) путь (творить чем?) путью (говорить о чём?) пути
[3]: (что?) путь (нет чего?) путя (дать чему?) путю (винить что?) путь (творить чем?) путем (говорить о чём?) путе
[6]: (что?) путь (нет чего?) путя (дать чему?) путю (винить что?) путя (творить чем?) путем (говорить о чём?) путе
-------------------
[4]: (что?) путь (нет чего?) путя (дать чему?) путю (винить что?) путь (творить чем?) путём (говорить о чём?) путе
[5]: (что?) путь (нет чего?) путя (дать чему?) путю (винить что?) путя (творить чем?) путём (говорить о чём?) путе


----------------------------------------
Слово: отделенная
Возможные варианты (13):
[1]: (что?) отделеннае (нет чего?) отделенная (дать чему?) отделеннаю (винить что?) отделеннае (творить чем?) отделеннаем (говорить о чём?) отделеннаи
[3]: (что?) отделенная (нет чего?) отделеннаи (дать чему?) отделеннаи (винить что?) отделеннаю (творить чем?) отделеннаей (говорить о чём?) отделеннаи
[4]: (что?) отделеннай (нет чего?) отделенная (дать чему?) отделеннаю (винить что?) отделеннай (творить чем?) отделеннаем (говорить о чём?) отделеннаи
[6]: (что?) отделеннае (нет чего?) отделенная (дать чему?) отделеннаю (винить что?) отделеннае (творить чем?) отделеннаем (говорить о чём?) отделеннае
[8]: (что?) отделенная (нет чего?) отделеннаени (дать чему?) отделеннаени (винить что?) отделенная (творить чем?) отделеннаенем (говорить о чём?) отделеннаени
[12]: (что?) отделенная (нет чего?) отделенной (дать чему?) отделенной (винить что?) отделенную (творить чем?) отделенной (говорить о чём?) отделенной
[13]: (что?) отделенная (нет чего?) отделенней (дать чему?) отделенней (винить что?) отделенную (творить чем?) отделенней (говорить о чём?) отделенней
-------------------
[2]: (что?) отделенная (нет чего?) отделеннаи (дать чему?) отделеннае (винить что?) отделеннаю (творить чем?) отделеннаёй (говорить о чём?) отделеннае
[5]: (что?) отделеннаё (нет чего?) отделенная (дать чему?) отделеннаю (винить что?) отделеннаё (творить чем?) отделеннаём (говорить о чём?) отделеннае
[7]: (что?) отделеннаь (нет чего?) отделенная (дать чему?) отделеннаю (винить что?) отделеннаь (творить чем?) отделеннаем (говорить о чём?) отделеннае
[9]: (что?) отделеннаь (нет чего?) отделенная (дать чему?) отделеннаю (винить что?) отделеннаь (творить чем?) отделеннаём (говорить о чём?) отделеннае
[10]: (что?) отделеннаь (нет чего?) отделенная (дать чему?) отделеннаю (винить что?) отделенная (творить чем?) отделеннаём (говорить о чём?) отделеннае
[11]: (что?) отделеннаь (нет чего?) отделенная (дать чему?) отделеннаю (винить что?) отделенная (творить чем?) отделеннаем (говорить о чём?) отделеннае


----------------------------------------
Слово: тридцатью
Возможные варианты (13):
[1]: (что?) тридцать (нет чего?) тридцать (дать чему?) тридцати (винить что?) тридцать (творить чем?) тридцатью (говорить о чём?) тридцати
[2]: (что?) тридцать (нет чего?) тридцати (дать чему?) тридцати (винить что?) тридцать (творить чем?) тридцатью (говорить о чём?) тридцати
[4]: (что?) тридцатье (нет чего?) тридцатья (дать чему?) тридцатью (винить что?) тридцатье (творить чем?) тридцатьем (говорить о чём?) тридцатьи
[6]: (что?) тридцатья (нет чего?) тридцатьи (дать чему?) тридцатьи (винить что?) тридцатью (творить чем?) тридцатьей (говорить о чём?) тридцатьи
[9]: (что?) тридцатье (нет чего?) тридцатья (дать чему?) тридцатью (винить что?) тридцатье (творить чем?) тридцатьем (говорить о чём?) тридцатье
-------------------
[3]: (что?) тридцатей (нет чего?) тридцатья (дать чему?) тридцатью (винить что?) тридцатья (творить чем?) тридцатьём (говорить о чём?) тридцатье
[5]: (что?) тридцатья (нет чего?) тридцатьи (дать чему?) тридцатье (винить что?) тридцатью (творить чем?) тридцатьёй (говорить о чём?) тридцатье
[7]: (что?) тридцатьй (нет чего?) тридцатья (дать чему?) тридцатью (винить что?) тридцатьй (творить чем?) тридцатьем (говорить о чём?) тридцатьи
[8]: (что?) тридцатьё (нет чего?) тридцатья (дать чему?) тридцатью (винить что?) тридцатьё (творить чем?) тридцатьём (говорить о чём?) тридцатье
[10]: (что?) тридцатьь (нет чего?) тридцатья (дать чему?) тридцатью (винить что?) тридцатьь (творить чем?) тридцатьем (говорить о чём?) тридцатье
[11]: (что?) тридцатьь (нет чего?) тридцатья (дать чему?) тридцатью (винить что?) тридцатьь (творить чем?) тридцатьём (говорить о чём?) тридцатье
[12]: (что?) тридцатьь (нет чего?) тридцатья (дать чему?) тридцатью (винить что?) тридцатья (творить чем?) тридцатьём (говорить о чём?) тридцатье
[13]: (что?) тридцатьь (нет чего?) тридцатья (дать чему?) тридцатью (винить что?) тридцатья (творить чем?) тридцатьем (говорить о чём?) тридцатье


----------------------------------------
Слово: тысячами
Возможные варианты (9):
[1]: (что?) тысячамь (нет чего?) тысячамь (дать чему?) тысячами (винить что?) тысячамь (творить чем?) тысячамью (говорить о чём?) тысячами
[4]: (что?) тысячама (нет чего?) тысячами (дать чему?) тысячаме (винить что?) тысячаму (творить чем?) тысячамой (говорить о чём?) тысячаме
[5]: (что?) тысячамь (нет чего?) тысячами (дать чему?) тысячами (винить что?) тысячамь (творить чем?) тысячамью (говорить о чём?) тысячами
[8]: (что?) тысячама (нет чего?) тысячами (дать чему?) тысячаме (винить что?) тысячаму (творить чем?) тысячамей (говорить о чём?) тысячаме
[9]: (что?) тысяча (нет чего?) тысяч (дать чему?) тысячам (винить что?) тысяча (творить чем?) тысячами (говорить о чём?) тысячах
-------------------
[2]: (что?) тысячаме (нет чего?) тысячамя (дать чему?) тысячамю (винить что?) тысячаме (творить чем?) тысячамем (говорить о чём?) тысячами
[3]: (что?) тысячамя (нет чего?) тысячами (дать чему?) тысячаме (винить что?) тысячамю (творить чем?) тысячамёй (говорить о чём?) тысячаме
[6]: (что?) тысячамя (нет чего?) тысячами (дать чему?) тысячами (винить что?) тысячамю (творить чем?) тысячамей (говорить о чём?) тысячами
[7]: (что?) тысячамй (нет чего?) тысячамя (дать чему?) тысячамю (винить что?) тысячамй (творить чем?) тысячамем (говорить о чём?) тысячами


----------------------------------------
Слово: стационарная
Возможные варианты (13):
[1]: (что?) стационарнае (нет чего?) стационарная (дать чему?) стационарнаю (винить что?) стационарнае (творить чем?) стационарнаем (говорить о чём?) стационарнаи
[3]: (что?) стационарная (нет чего?) стационарнаи (дать чему?) стационарнаи (винить что?) стационарнаю (творить чем?) стационарнаей (говорить о чём?) стационарнаи
[4]: (что?) стационарнай (нет чего?) стационарная (дать чему?) стационарнаю (винить что?) стационарнай (творить чем?) стационарнаем (говорить о чём?) стационарнаи
[6]: (что?) стационарнае (нет чего?) стационарная (дать чему?) стационарнаю (винить что?) стационарнае (творить чем?) стационарнаем (говорить о чём?) стационарнае
[8]: (что?) стационарная (нет чего?) стационарнаени (дать чему?) стационарнаени (винить что?) стационарная (творить чем?) стационарнаенем (говорить о чём?) стационарнаени
[12]: (что?) стационарная (нет чего?) стационарной (дать чему?) стационарной (винить что?) стационарную (творить чем?) стационарной (говорить о чём?) стационарной
[13]: (что?) стационарная (нет чего?) стационарней (дать чему?) стационарней (винить что?) стационарную (творить чем?) стационарней (говорить о чём?) стационарней
-------------------
[2]: (что?) стационарная (нет чего?) стационарнаи (дать чему?) стационарнае (винить что?) стационарнаю (творить чем?) стационарнаёй (говорить о чём?) стационарнае
[5]: (что?) стационарнаё (нет чего?) стационарная (дать чему?) стационарнаю (винить что?) стационарнаё (творить чем?) стационарнаём (говорить о чём?) стационарнае
[7]: (что?) стационарнаь (нет чего?) стационарная (дать чему?) стационарнаю (винить что?) стационарнаь (творить чем?) стационарнаем (говорить о чём?) стационарнае
[9]: (что?) стационарнаь (нет чего?) стационарная (дать чему?) стационарнаю (винить что?) стационарнаь (творить чем?) стационарнаём (говорить о чём?) стационарнае
[10]: (что?) стационарнаь (нет чего?) стационарная (дать чему?) стационарнаю (винить что?) стационарная (творить чем?) стационарнаём (говорить о чём?) стационарнае
[11]: (что?) стационарнаь (нет чего?) стационарная (дать чему?) стационарнаю (винить что?) стационарная (творить чем?) стационарнаем (говорить о чём?) стационарнае


----------------------------------------
Слово: звезда
Возможные варианты (12):
[1]: (что?) звезд (нет чего?) звезда (дать чему?) звезду (винить что?) звезда (творить чем?) звездом (говорить о чём?) звезде
[2]: (что?) звезд (нет чего?) звезда (дать чему?) звезду (винить что?) звезд (творить чем?) звездом (говорить о чём?) звезде
[3]: (что?) звезда (нет чего?) звезду (дать чему?) звезде (винить что?) звезду (творить чем?) звездой (говорить о чём?) звезде
[4]: (что?) звезда (нет чего?) звезды (дать чему?) звезде (винить что?) звезду (творить чем?) звездой (говорить о чём?) звезде
[5]: (что?) звезда (нет чего?) звезди (дать чему?) звезде (винить что?) звезду (творить чем?) звездой (говорить о чём?) звезде
[6]: (что?) звездо (нет чего?) звезда (дать чему?) звезду (винить что?) звездо (творить чем?) звездом (говорить о чём?) звезде
[7]: (что?) звезда (нет чего?) звезда (дать чему?) звезде (винить что?) звезду (творить чем?) звездой (говорить о чём?) звезде
[8]: (что?) звезде (нет чего?) звезда (дать чему?) звезду (винить что?) звезде (творить чем?) звездем (говорить о чём?) звезде
[9]: (что?) звезда (нет чего?) звезды (дать чему?) звезде (винить что?) звезду (творить чем?) звездей (говорить о чём?) звезде
[10]: (что?) звезда (нет чего?) звезд (дать чему?) звездам (винить что?) звезда (творить чем?) звездами (говорить о чём?) звездах
[11]: (что?) звезда (нет чего?) звезди (дать чему?) звезде (винить что?) звезду (творить чем?) звездей (говорить о чём?) звезде
[12]: (что?) звезд (нет чего?) звезда (дать чему?) звезду (винить что?) звезда (творить чем?) звездем (говорить о чём?) звезде
-------------------


----------------------------------------
Слово: полный
Возможные варианты (2):
[2]: (что?) полный (нет чего?) полного (дать чему?) полному (винить что?) полного (творить чем?) полным (говорить о чём?) полном
-------------------
[1]: (что?) полный (нет чего?) полныя (дать чему?) полныю (винить что?) полный (творить чем?) полныем (говорить о чём?) полныи


----------------------------------------
Слово: галактической
Возможные варианты (6):
[1]: (что?) галактическа (нет чего?) галактическу (дать чему?) галактическе (винить что?) галактическу (творить чем?) галактической (говорить о чём?) галактическе
[3]: (что?) галактическа (нет чего?) галактически (дать чему?) галактическе (винить что?) галактическу (творить чем?) галактической (говорить о чём?) галактическе
[4]: (что?) галактическа (нет чего?) галактическа (дать чему?) галактическе (винить что?) галактическу (творить чем?) галактической (говорить о чём?) галактическе
[5]: (что?) галактическая (нет чего?) галактической (дать чему?) галактической (винить что?) галактическую (творить чем?) галактической (говорить о чём?) галактической
[6]: (что?) галактической (нет чего?) галактическоя (дать чему?) галактическою (винить что?) галактической (творить чем?) галактическоем (говорить о чём?) галактическои
-------------------
[2]: (что?) галактическа (нет чего?) галактическы (дать чему?) галактическе (винить что?) галактическу (творить чем?) галактической (говорить о чём?) галактическе


----------------------------------------
Слово: орбите
Возможные варианты (20):
[1]: (что?) орбит (нет чего?) орбита (дать чему?) орбиту (винить что?) орбита (творить чем?) орбитом (говорить о чём?) орбите
[2]: (что?) орбит (нет чего?) орбита (дать чему?) орбиту (винить что?) орбит (творить чем?) орбитом (говорить о чём?) орбите
[5]: (что?) орбита (нет чего?) орбиту (дать чему?) орбите (винить что?) орбиту (творить чем?) орбитой (говорить о чём?) орбите
[6]: (что?) орбите (нет чего?) орбите (дать чему?) орбиту (винить что?) орбите (творить чем?) орбитем (говорить о чём?) орбите
[7]: (что?) орбита (нет чего?) орбиты (дать чему?) орбите (винить что?) орбиту (творить чем?) орбитой (говорить о чём?) орбите
[8]: (что?) орбита (нет чего?) орбити (дать чему?) орбите (винить что?) орбиту (творить чем?) орбитой (говорить о чём?) орбите
[9]: (что?) орбито (нет чего?) орбита (дать чему?) орбиту (винить что?) орбито (творить чем?) орбитом (говорить о чём?) орбите
[10]: (что?) орбита (нет чего?) орбита (дать чему?) орбите (винить что?) орбиту (творить чем?) орбитой (говорить о чём?) орбите
[11]: (что?) орбите (нет чего?) орбита (дать чему?) орбиту (винить что?) орбите (творить чем?) орбитем (говорить о чём?) орбите
[14]: (что?) орбита (нет чего?) орбиты (дать чему?) орбите (винить что?) орбиту (творить чем?) орбитей (говорить о чём?) орбите
[16]: (что?) орбита (нет чего?) орбити (дать чему?) орбите (винить что?) орбиту (творить чем?) орбитей (говорить о чём?) орбите
[19]: (что?) орбит (нет чего?) орбита (дать чему?) орбиту (винить что?) орбита (творить чем?) орбитем (говорить о чём?) орбите
-------------------
[3]: (что?) орбите (нет чего?) орбитя (дать чему?) орбитю (винить что?) орбите (творить чем?) орбитем (говорить о чём?) орбити
[4]: (что?) орбитя (нет чего?) орбити (дать чему?) орбите (винить что?) орбитю (творить чем?) орбитёй (говорить о чём?) орбите
[12]: (что?) орбитё (нет чего?) орбитя (дать чему?) орбитю (винить что?) орбитё (творить чем?) орбитём (говорить о чём?) орбите
[13]: (что?) орбите (нет чего?) орбитя (дать чему?) орбитю (винить что?) орбите (творить чем?) орбитем (говорить о чём?) орбите
[15]: (что?) орбить (нет чего?) орбитя (дать чему?) орбитю (винить что?) орбить (творить чем?) орбитем (говорить о чём?) орбите
[17]: (что?) орбить (нет чего?) орбитя (дать чему?) орбитю (винить что?) орбить (творить чем?) орбитём (говорить о чём?) орбите
[18]: (что?) орбить (нет чего?) орбитя (дать чему?) орбитю (винить что?) орбитя (творить чем?) орбитём (говорить о чём?) орбите
[20]: (что?) орбить (нет чего?) орбитя (дать чему?) орбитю (винить что?) орбитя (творить чем?) орбитем (говорить о чём?) орбите


----------------------------------------
Слово: находилось
Возможные варианты (6):
[1]: (что?) находилось (нет чего?) находилось (дать чему?) находилоси (винить что?) находилось (творить чем?) находилосью (говорить о чём?) находилоси
[2]: (что?) находилось (нет чего?) находилоси (дать чему?) находилоси (винить что?) находилось (творить чем?) находилосью (говорить о чём?) находилоси
[3]: (что?) находилось (нет чего?) находилося (дать чему?) находилосю (винить что?) находилось (творить чем?) находилосем (говорить о чём?) находилосе
[6]: (что?) находилось (нет чего?) находилося (дать чему?) находилосю (винить что?) находилося (творить чем?) находилосем (говорить о чём?) находилосе
-------------------
[4]: (что?) находилось (нет чего?) находилося (дать чему?) находилосю (винить что?) находилось (творить чем?) находилосём (говорить о чём?) находилосе
[5]: (что?) находилось (нет чего?) находилося (дать чему?) находилосю (винить что?) находилося (творить чем?) находилосём (говорить о чём?) находилосе


----------------------------------------
Слово: нынешнем
Возможные варианты (9):
[1]: (что?) нынешне (нет чего?) нынешня (дать чему?) нынешню (винить что?) нынешне (творить чем?) нынешнем (говорить о чём?) нынешни
[2]: (что?) нынешне (нет чего?) нынешне (дать чему?) нынешну (винить что?) нынешне (творить чем?) нынешнем (говорить о чём?) нынешне
[3]: (что?) нынешне (нет чего?) нынешна (дать чему?) нынешну (винить что?) нынешне (творить чем?) нынешнем (говорить о чём?) нынешне
[5]: (что?) нынешне (нет чего?) нынешня (дать чему?) нынешню (винить что?) нынешне (творить чем?) нынешнем (говорить о чём?) нынешне
[7]: (что?) нынешн (нет чего?) нынешна (дать чему?) нынешну (винить что?) нынешна (творить чем?) нынешнем (говорить о чём?) нынешне
[9]: (что?) нынешень (нет чего?) нынешня (дать чему?) нынешню (винить что?) нынешень (творить чем?) нынешнем (говорить о чём?) нынешне
-------------------
[4]: (что?) нынешнй (нет чего?) нынешня (дать чему?) нынешню (винить что?) нынешнй (творить чем?) нынешнем (говорить о чём?) нынешни
[6]: (что?) нынешнь (нет чего?) нынешня (дать чему?) нынешню (винить что?) нынешнь (творить чем?) нынешнем (говорить о чём?) нынешне
[8]: (что?) нынешнь (нет чего?) нынешня (дать чему?) нынешню (винить что?) нынешня (творить чем?) нынешнем (говорить о чём?) нынешне


----------------------------------------
Слово: галактики
Возможные варианты (8):
[4]: (что?) галактика (нет чего?) галактики (дать чему?) галактике (винить что?) галактику (творить чем?) галактикой (говорить о чём?) галактике
[8]: (что?) галактика (нет чего?) галактики (дать чему?) галактике (винить что?) галактику (творить чем?) галактикей (говорить о чём?) галактике
-------------------
[1]: (что?) галактикь (нет чего?) галактикь (дать чему?) галактики (винить что?) галактикь (творить чем?) галактикью (говорить о чём?) галактики
[2]: (что?) галактике (нет чего?) галактикя (дать чему?) галактикю (винить что?) галактике (творить чем?) галактикем (говорить о чём?) галактики
[3]: (что?) галактикя (нет чего?) галактики (дать чему?) галактике (винить что?) галактикю (творить чем?) галактикёй (говорить о чём?) галактике
[5]: (что?) галактикь (нет чего?) галактики (дать чему?) галактики (винить что?) галактикь (творить чем?) галактикью (говорить о чём?) галактики
[6]: (что?) галактикя (нет чего?) галактики (дать чему?) галактики (винить что?) галактикю (творить чем?) галактикей (говорить о чём?) галактики
[7]: (что?) галактикй (нет чего?) галактикя (дать чему?) галактикю (винить что?) галактикй (творить чем?) галактикем (говорить о чём?) галактики


----------------------------------------
Слово: огромные
Возможные варианты (20):
-------------------
[1]: (что?) огромны (нет чего?) огромныа (дать чему?) огромныу (винить что?) огромныа (творить чем?) огромныом (говорить о чём?) огромные
[2]: (что?) огромны (нет чего?) огромныа (дать чему?) огромныу (винить что?) огромны (творить чем?) огромныом (говорить о чём?) огромные
[3]: (что?) огромные (нет чего?) огромныя (дать чему?) огромныю (винить что?) огромные (творить чем?) огромныем (говорить о чём?) огромныи
[4]: (что?) огромныя (нет чего?) огромныи (дать чему?) огромные (винить что?) огромныю (творить чем?) огромныёй (говорить о чём?) огромные
[5]: (что?) огромныа (нет чего?) огромныу (дать чему?) огромные (винить что?) огромныу (творить чем?) огромныой (говорить о чём?) огромные
[6]: (что?) огромные (нет чего?) огромные (дать чему?) огромныу (винить что?) огромные (творить чем?) огромныем (говорить о чём?) огромные
[7]: (что?) огромныа (нет чего?) огромныы (дать чему?) огромные (винить что?) огромныу (творить чем?) огромныой (говорить о чём?) огромные
[8]: (что?) огромныа (нет чего?) огромныи (дать чему?) огромные (винить что?) огромныу (творить чем?) огромныой (говорить о чём?) огромные
[9]: (что?) огромныо (нет чего?) огромныа (дать чему?) огромныу (винить что?) огромныо (творить чем?) огромныом (говорить о чём?) огромные
[10]: (что?) огромныа (нет чего?) огромныа (дать чему?) огромные (винить что?) огромныу (творить чем?) огромныой (говорить о чём?) огромные
[11]: (что?) огромные (нет чего?) огромныа (дать чему?) огромныу (винить что?) огромные (творить чем?) огромныем (говорить о чём?) огромные
[12]: (что?) огромныё (нет чего?) огромныя (дать чему?) огромныю (винить что?) огромныё (творить чем?) огромныём (говорить о чём?) огромные
[13]: (что?) огромные (нет чего?) огромныя (дать чему?) огромныю (винить что?) огромные (творить чем?) огромныем (говорить о чём?) огромные
[14]: (что?) огромныа (нет чего?) огромныы (дать чему?) огромные (винить что?) огромныу (творить чем?) огромныей (говорить о чём?) огромные
[15]: (что?) огромныь (нет чего?) огромныя (дать чему?) огромныю (винить что?) огромныь (творить чем?) огромныем (говорить о чём?) огромные
[16]: (что?) огромныа (нет чего?) огромныи (дать чему?) огромные (винить что?) огромныу (творить чем?) огромныей (говорить о чём?) огромные
[17]: (что?) огромныь (нет чего?) огромныя (дать чему?) огромныю (винить что?) огромныь (творить чем?) огромныём (говорить о чём?) огромные
[18]: (что?) огромныь (нет чего?) огромныя (дать чему?) огромныю (винить что?) огромныя (творить чем?) огромныём (говорить о чём?) огромные
[19]: (что?) огромны (нет чего?) огромныа (дать чему?) огромныу (винить что?) огромныа (творить чем?) огромныем (говорить о чём?) огромные
[20]: (что?) огромныь (нет чего?) огромныя (дать чему?) огромныю (винить что?) огромныя (творить чем?) огромныем (говорить о чём?) огромные


----------------------------------------
Слово: рептилии
Возможные варианты (8):
[2]: (что?) рептилие (нет чего?) рептилия (дать чему?) рептилию (винить что?) рептилие (творить чем?) рептилием (говорить о чём?) рептилии
[6]: (что?) рептилия (нет чего?) рептилии (дать чему?) рептилии (винить что?) рептилию (творить чем?) рептилией (говорить о чём?) рептилии
[7]: (что?) рептилий (нет чего?) рептилия (дать чему?) рептилию (винить что?) рептилий (творить чем?) рептилием (говорить о чём?) рептилии
[8]: (что?) рептилиа (нет чего?) рептилии (дать чему?) рептилие (винить что?) рептилиу (творить чем?) рептилией (говорить о чём?) рептилие
-------------------
[1]: (что?) рептилиь (нет чего?) рептилиь (дать чему?) рептилии (винить что?) рептилиь (творить чем?) рептилиью (говорить о чём?) рептилии
[3]: (что?) рептилия (нет чего?) рептилии (дать чему?) рептилие (винить что?) рептилию (творить чем?) рептилиёй (говорить о чём?) рептилие
[4]: (что?) рептилиа (нет чего?) рептилии (дать чему?) рептилие (винить что?) рептилиу (творить чем?) рептилиой (говорить о чём?) рептилие
[5]: (что?) рептилиь (нет чего?) рептилии (дать чему?) рептилии (винить что?) рептилиь (творить чем?) рептилиью (говорить о чём?) рептилии

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

четверг, 16 апреля 2009 г.

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

Если взять любое существительное, то его базовые словоформы довольно просто определяются, это 6 падежей единственного числа и 6 падежей множественного числа. Итого 12 словоформ, но для некоторых существительных не существует множественного числа, а для некоторых, наоборот, не существует единственного числа. Эту задачу можно упростить, если рассматривать единственное число и множественное число как два разных слова, связанных между собой смысловой связью, а так как анализ смысловых связей пока не входит в мою задачу, такой подход допустим.

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

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

Сбор данных по существительным в единственном числе
Для сбора данных по существительным в единсственном числе применяется следующая методика.
1. Вручную составляется эталонная база словоформ для 40-50 существительных.
2. Производится анализ словоформ каждого слова и выявляются окончания для соответствующих падежей.
3. Составляется список зарегистрированных случаев склонения слов. Ожидается, что этот список не будет содержать более нескольких десятков вариантов склонения. Если это не так, то следует пересмотреть методику сбора данных.
4. Из текста выбирается произвольное слово, оно проверяется на отсутствие в эталонном списке существительных и на отсутствиее в списке слов, не подлежащих анализу.
5. К нему применяются возможные варианты склонения.
6. Список возможных вариантов склонения обрабатывается фильтром триграмм и выводится пользователю.
7. Пользователь должен выбрать один из предложенных вариантов, предложить свой или указать, что выбранное слово не является существительным. В первом и втором случае эталонные словоформы заносятся в базу существительных, в третьем случае слово заносится в список слов не подлежащих анализу.
8. Переход к шагу 2.

Подитог
Когда будет набрана база эталонных словоформ (1000 слов), следует остановиться и проанализировать все случаи склонения представленные в ней. Следует попытаться провести аналогии между получившейся классификацией и общепринятыми классификациями существительных. Вероятно, некоторые частные случаи склонения можно будет объединить между собой. Также возможно удастся найти зависимость между случаями склонения и буквенной записью слова.

[Для себя: Прикрутить фильтр триграмм и дособрать базу. Следующие два поста посвятить анализу эталонной базы]

среда, 15 апреля 2009 г.

Части речи и части слова и части предложения

Необходимо чётко понимать разницу между этими понятиями.

Части слова

В русском языке выделяются следующие части слова: приставка, корень, суффикс, окончание, соединительная гласная. Данное правило не распространяется на такие вырожденные части речи как междометия, союзы, предлоги, местоимения и т.д. Теория гласит, что основой слова является корень, а различные словоформы (формы слова) образуются за счёт изменения приставки, суффикса, и окончания. Стоит учитывать, что в слове может быть несколько приставок, суффиксов, окончаний или корней. Корень может состоять из одной буквы, а также видоизменяться в словоформах.

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

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

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

[Для себя: сбор данных по существительным.]

вторник, 14 апреля 2009 г.

Триграммы. Итог.

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

Вот как выглядит последняя часть данных:

слов триграмм
1730000 9770
1740000 9777
1750000 9810
1760000 9821
1770000 9826
1780000 9830
1790000 9842
1800000 9843
1810000 9848
1814350 9848

То есть речь идёт о единицах триграмм на 10000 слов. Думаю, что на этот раз библиотеку можно считать достаточно большой.

Вот перечень последних добавленных триграмм

[утх] - сутхеп
[хеп] - сутхеп
[ тх] - тхани
[тха] - тхани
[фум] - фумико
[цуо] - тацуо
[онэ] - хонэн
[дзю] - дзюнъитиро
[зюн] - дзюнъитиро
[юнъ] - дзюнъитиро
[нъи] - дзюнъитиро
[ъит] - дзюнъитиро
[идз] - танидзаки
[гаи] - онегаи
[йсэ] - кайсэки
[кюс] - кюсю
[саи] - насаи
[джм] - риджмором
[жоа] - жоао
[оао] - жоао
[йру] - перейру
[йра] - перейра
[лао] - лаоса
[ымл] - подымлю
[ууу] - уууя
[ууя] - уууя
[пьй] - пьйоотр
[ьйо] - пьйоотр
[йоо] - пьйоотр
[ иэ] - иэна
[нпо] - аванпосты
[уии] - уиии
[иии] - уиии
[ьяш] - итальяшка
[пуэ] - пуэбло
[уэб] - пуэбло
[пиб] - пибоди
[шце] - мышце
[окэ] - электрокэба
[язю] - князю
[зю ] - князю
[обю] - обюссонскими
[шез] - шезлонгов
[ьо ] - мурильо
[ лт] - лтые
[цул] - танцулек
[лшу] - уолшу
[ сй] - сйо
[сйо] - сйо
[огю] - огюста
[шцу] - мышцу
[йпф] - грейпфруты
[пфр] - грейпфруты
[эвт] - эвтаназию
[рнш] - бернштейн
[зиф] - сизифу
[фуд] - фудзиямы
[удз] - фудзиямы
[куг] - токугава
[иэя] - иэясу
[эяс] - иэясу
[эси] - дэсита
[чме] - импичменте
[кия] - макияжем
[ияж] - макияжем
[ьфь] - монгольфьере
[луф] - полуфинальных
[уфи] - полуфинальных
[ эя] - эякуляции
[эяк] - эякуляции
[ефы] - рельефы

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

Вот перечень книг, которые были использованы:

Артур Кларк, Джентри Ли. Рама явленный
Артур Кларк. Строптивая орхидея
Артур Кларк. И если я, земля, тебя забуду...
Айзек Азимов. Буква закона
Айзек Азимов. Конец Вечности
Айзек Азимов. Мнимые величины
Сергей Снегов. Кольцо обратного времени
Сергей Снегов. Вторжение в Персей
Артур Кларк. Да будет свет!
Айзек Азимов. Немезида
Айзек Азимов. Выбор катастроф
Айзек Азимов. Затерянные у Весты
Айзек Азимов. Световирши
Артур Кларк. Абсолютная мелодия
Артур Кларк. Город и звезды
Артур Кларк. Одиссея Один
Артур Кларк. Мимолетность
Артур Кларк. Остров дельфинов
Вадим Шефнер. Девушка у обрыва
Вадим Шефнер. Сестра печали
Айзек Азимов. Нашли!
Сергей Снегов. Галактическая разведка
Айзек Азимов. Сами боги
Вадим Шефнер. Небесный подкидыш, Исповедь трусоватого храбреца
Артур Кларк. Пески Марса
Артур Кларк. Что взлетает вверх...
Артур Конан Дойл. Долина ужаса
Артур Кларк. Соседи
Артур Кларк. последняя одиссея
Артур Конан Дойл. Этюд в багровых тонах
Артур Кларк. Одиссея Два
Айзек Азимов. Выборы
Айзек Азимов. Фантастическое путешествие
Артур Конан Дойл. Знак четырех
Артур Кларк, Джентри Ли. Рама II
Артур Кларк. заключительная одиссея. Пролог
Артур Кларк. Преходящее
Артур Кларк. Свидание с Рамой
Артур Конан Дойл. Смерть русского помещика
Артур Кларк. Одиссея Три
Артур Конан Дойл. Собака Баскервилей
Артур Кларк, Джентри Ли. Сад Рамы


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

[ то] => 29813
[ом ] => 29988
[ла ] => 30140
[ за] => 30655
[ бы] => 30753
[про] => 31750
[ чт] => 33122
[сь ] => 33921
[что] => 34356
[ост] => 34670
[ он] => 36056
[ ко] => 36357
[ой ] => 36758
[ся ] => 43002
[ли ] => 44881
[го ] => 45122
[ в ] => 45806
[на ] => 50036
[не ] => 51049
[ть ] => 53798
[ и ] => 54454
[но ] => 55321
[то ] => 58822
[ пр] => 61182
[ на] => 69637
[ не] => 74908
[ по] => 87655

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

Выводы:
Число действительных триграмм русского языка находится в районе 10000, а число всех триграмм равно 39304. Получается, что методика триграмм позволит отфильтровывать 3 триграммы из 4. Да, результаты не слишком обнадёживают. Но это всё же лучше чем ничего. По крайней мере, это поможет отфильтровать совсем бестолковые варианты. С другой стороны, полученная гистограмма "популярности" может помочь упорядочивать слова по вероятностным характеристикам. Да, у меня уже есть небольшие наработки по автоматическому склонению существительных и будет очень интересно применить фильтрацию и упорядочивание триграммами. Но всему своё время.

[Для себя: следующий пост надо посвятить общим мыслям о частях речи, частях предложения, а также вариантам склонения и спряжения.]

воскресенье, 12 апреля 2009 г.

Зависимость роста количества триграмм от размера словаря.

Произвёл более детальный анализ количества слов и триграмм.
Общее число слов в выбранных книгах: 554928 слов.
Число уникальных слов в книгах: 57703 слова.
Число триграмм: 8340.

Зависимость количества триграмм от количества слов.
Красным цветом на графике отображено масштабированное значение производной. Синим цветом - количество триграмм.


Частотность встречаемости триграмм

Представлена гистограмма распределения "популярности" триграмм. Полезных данных на этой гистограмме разглядеть не удаётся, потому вот некоторые её характеристики:
Триграмма встречается от 1 до 10 раз - 2622 штук
Триграмма встречается от 1 до 100 раз - 5298 штук.
Наиболее популярные триграммы имеют частоты: 25736, 23366, 22604, 19849, 18060, 16947, 16267 и 16259.
Приведу пример триграмм встречающихся 1 раз.
[хуя] => [хуянь]
[уян] => [хуянь]
[чжо] => [чжо]
[чжэ] => [чжэня]
[жэн] => [чжэня]
[эня] => [чжэня]
[бао] => [бао]
[усю] => [дусю]
[биа] => [лабиальности]
[фюз] => [фюзеляжа]
[юзе] => [фюзеляжа]
[ияд] => [внутриядерную]
[ыяв] => [выявивших]
[уиц] => [интуиция]
[зущ] => [ползущим]
[ехз] => [четырехзначную]
[хзн] => [четырехзначную]
[фмо] => [логарифмов]
[нкм] => [инкм]
[адг] => [адгезивы]
[дге] => [адгезивы]
[гез] => [адгезивы]
[кюв] => [кюветах]
[ымр] => [вымрут]
[мтя] => [ломтя]
[брь] => [сентябрьская]
[рхм] => [сверхмощной]
[йга] => [тайга]
[ухк] => [двухкилометровое]
[йсм] => [сейсмостанции]
[нза] => [вонзаются]
[оео] => [своеобразная]
[улл] => [буллиальд]

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

Выводы
Каждое слово в тексте повторяется в среднем 10 раз. Судя по скорости прибывания триграмм, можно уверенно сделать вывод, что либо количество триграмм в русском языке не ограниченно небольшим числом, либо текущая выборка слов недостаточна для работы с русским текстом и следует расширить выборку текстов. Так как по первому пути (отказаться от триграмм) всегда можно пойти, сейчас следует пойти по второму пути и увеличить объём анализируемых текстов. В будущем стоит расширить исходный текстовый материал специфическими статьями и научными работами. Стоит добавить в анализируемые тексты перечни числительных и имён. При разработке, вероятно, можно будет добавить в качестве параметра возможность управления весом характеристик. Вероятно, что при достаточно большой выборке текстов, можно будет из списка найденных триграмм исключить редкие триграммы.

[Для себя. Следующий шаг работы - расширить библиотеку текстов, автоматизировать текущий анализ и добавить возможность кеширования результатов, ибо текущая скорость анализа (около 2 минут) не устраивает.]

суббота, 11 апреля 2009 г.

Триграммы русского языка

Что такое триграмма?
Триграммой я называю любую комбинацию из трёх букв или пробела. Идею триграмм я почерпнул у Джо Армстронга (книга Programming Erlang).

В чём состоит идея?
Задача: предсказать может ли произвольная комбинация букв являться английским словом. Для решения Джо предлагает взять полный список английских слов. Добавить в начало и в конец каждого слова символ пробела и собрать все реально существующие триграммы. Например, для слова love будут следующие триграммы " lo", "lov", "ove" и "ve ". В принципе, идея довольно очевидна, триграмма qqq не может существовать ни в одном английском слове. Для русского языка можно аналогично сказать, что триграмма ттт не может встретиться ни в одном русском слове.

Исходный материал
Для исследования выбраны тексты из электронной библиотеки Мошкова.
Л.Н.Толстой Анна Каренина
А. и Б. Стругацкие Страна багровых туч
А. и Б. Стругацкие Страна багровых туч (другая редакция)
А. и Б. Стругацкие Путь на Амальтею
А. и Б. Стругацкие Стажеры
А. и Б. Стругацкие Хищные вещи века
А. и Б. Стругацкие Шесть спичек
А. и Б. Стругацкие Забытый эксперимент

Толстой выбран из-за обилия материала, а также из-за наличия в тексте некоторого числа устаревших слов. Стругацкие же были выбраны как авторы писавшие на относительно современном русском языке, а также из-за моего пристрастия к фантастике.

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

Статистические данные по текстам
Зависимость количества триграмм от числа слов
книгавсего словуникальных словколичество триграмм
books/0270110328306835
books/177341189606452
books/270566180456378
books/31933758524752
books/458204133256052
books/548237127585969
books/6518023293286
books/7596725123478


Зависимость количества триграмм от количества слов

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

четверг, 9 апреля 2009 г.

Програмный анализ русского текста

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

Исследование разбивается на несколько этапов.
1) Анализ текста в целом.
2) Анализ отдельных слов.
3) Анализ словосочетаний.
4) Анализ предложений.

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