Давайте рассмотрим сущности, которые потребуются для будущей системы, а также некоторые требования к этим сущностям.
Текст
Класс для работы с текстом. Это, пожалуй, один из базовых классов для начальной работы с материалом. Он должен уметь провести общий анализ текста:
- чистка текста от лишних знаков, в зависимости от того, что планируется дальше делать с этим текстом. На текущем этапе работы класс должен оставить от текста группы русских букв в нижнем регистре, разделённые одним пробелом. Эти группы букв будут называться словами.
- класс должен уметь превратить текст в коллекцию слов.
- статистические данные по тексту - количество символов, количество байт, гистограмма популярности символов в тексте.
- аккумулировать данные из двух объектов этого класса в один.
Коллекция слов
Коллекция слов представляет собой класс для работы с неупорядоченным набором слов. Функции данного класса:
- количество слов;
- уникализация коллекции;
- сбор гистограммы триграмм по коллекции;
- итератор по словам;
- базовые методы работы с коллекцией - поиск, пересечение, объединение.
Слово
Класс для работы с отдельно взятым словом.
Проверка, слова на валидность триграммами. Метод предсказывающий какой частью речи может являться данное слово, а также предположения по базовым параметрам данного слова. Метод формирующий возможные словоформы для слова.
Случай склонения
Так как, видимо, будет слишком сложно параметризовать алгоритм анализа слова на возможные склонения с учётом развития информационной базы. Придётся наплодить кучу реальных классов наследованных от общего абстрактного. А если посмотреть на число случаев склонения существительных, то можно примерно оценить необходимый объём кода. Кода, очевидно, будет очень много. Написание и структурирование этого кода, на мой взгляд, будет оправдано только в случае, если будет подготавливаться релиз версия кода.
Книга и библиотека
Тут приличная горка кода будет. Код работающий с библиотекой и книгами. Чтение книги, преобразование книги в нужную кодировку и т.д. Получение автора и названия книги. Код не сложный, но весьма витиеватый.
Хранилище данных
Тут нет разницы работать с собственным хранилищем данных или же использовать базу данных. Дополнительный объём кода в первом случае просто напросто компенсируется кодом на работу с хранилищем, а также кодом создания хранилища.
Выводы
Сделать по-уму - можно, но на данный момент я выбираю разработку на коленке, ибо в сейчас это просто напросто удобнее и быстрее, нежели потратить пару месяцев на создание продуманной схемы, а в итоге выяснить, что схема не додумана и не отвечает всем требованиям.
Подписаться на:
Комментарии к сообщению (Atom)
Архив блога
-
▼
2009
(29)
-
▼
апреля
(12)
- Аспекты реализации
- Продолжение существительных
- Формы склонения существительных
- Буква Ё в русском языке
- Формы склонения существительных
- И снова о триграммах
- Существительные
- Части речи и части слова и части предложения
- Триграммы. Итог.
- Зависимость роста количества триграмм от размера с...
- Триграммы русского языка
- Програмный анализ русского текста
-
▼
апреля
(12)
Комментариев нет:
Отправить комментарий