Система контент-анализа естественно-языковых текстов
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
?ми, составляющими собственно список, не напрямую, а через специальный объект "модель данных". Интерфейс ListModel определяет минимальный набор методов, который требуется классу JList от "модели данных". Эти методы позволяют узнать количество элементов в списке (метод getSize), выбрать элемент списка (метод getElementAt), а также зарегистрировать и отключить слушателей (методы addListDataListener и removeListDataListener ).
Класс DefaultListModel удовлетворяет интерфейсу ListModel, имеет методы для добавления элементов в список (методы add и addElement), модификации существующих элементов (setElementAt) и удаления из списка (ряд методов remove). Для реализации модифицируемого списка типа JList можно: построить объект класса DefaultListModel, построить объект класса JList с использованием конструктора public JList(ListModel dataModel), передав ему в качестве параметра построенный объект класса DefaultListModel. Выполнять модификации списка через объект класса DefaultListModel - визуальное представление списка при этом будет меняться автоматически.
2.5 Разработка архитектуры системы
.5.1 Разбиение задачи на подзадачи
В соответствии с требованиями технического задания задачу на дипломное проектирование можно разделить на следующие подзадачи:
-разработка библиотеки классов морфологического словаря,
-разработка библиотеки классов стоп-словаря,
-разработка модуля графематического анализа и создания таблицы лексем,
-разработка визуальной среды для контент-анализа текстов и работы со словарями.
Архитектуру системы можно представить в виде диаграммы пакетов, составляющих структуру проекта (рисунок 10).
Рисунок 10 - Диаграмма пакетов проекта
Пакет dictionaries содержит классы, реализующие структуру стоп-словаря и морфологического словаря, а также методы работы с ними.
Пакет analysis содержит классы реализующие разбор текста, а также ряд других вспомогательных классов.
Пакет interfaces содержит классы, через которые осуществляется взаимодействие пользователя с системой.
2.5.2 Разработка библиотеки классов словарей
Структуру библиотеки классов морфословаря и стоп-словаря можно представить в виде следующей диаграммы классов (рисунок 11).
Рисунок 11 - Диаграмма классов пакета dictionaries
В рамках программной модели классы Btree и Leaf являются реализацией морфологического словаря. При этом класс Btree предназначен для построения структуры сильноветвящегося дерева, в котором непосредственно хранятся словоформы языка. В свою очередь, объекты класса Leaf являются вершинами указанного дерева. В классе Hash реализована хеш-функция[6] и методы создания хеш-таблиц с её помощью. Класс StopMain отвечает за загрузку стоп-словаря в оперативную память и реализует метод поиска стоп-слов.
Управляющий класс MorphMain предназначен для загрузки морфословаря в оперативную память, создания необходимой структуры дерева, размещения словоформ; предоставляет метод поиска групп родственных слов, а также выполняет ряд других вспомогательных служебных функций.
Атрибуты класса представлены в таблице 5.
Таблица 5 - Атрибуты класса MorphMain
НазваниеНазначениеТипНачальное значениеMDУказатель на корень дереваBtreenulllistosnovВершина дерева, помеченная признаком основыLeafnullpostosnovАффикс текущей словоформыStringflagosnovУстанавливается во время поиска словоформ, свидетельствует о нахождении вложенных основBooleanFalseflagpostСвидетельствует, найден ли аффикс текущей словоформыBooleanFalseInfoХранит статистическую информацию о результатах последнего анализаString
Класс имеет ряд других вспомогательных атрибутов служебного назначения (для связи с формами и т. п.). Поиск родственных слов реализует метод getRelativeswords(). Его реализация приведена в разделе 2.6.3.
Спецификация класса MorphMain на языке OCL приведена на рисунке 12.
context MorphMain inv: self.MD != null
Рисунок 12 - Инвариант класса MorphMain
2.5.3 Разработка библиотеки классов разбора и частотного анализа
Структуру библиотеки классов разбора и анализа можно представить в виде следующей диаграммы классов (рисунок 13).
морфологический анализатор обработка текст
Рисунок 13 - Диаграмма классов пакета analysis
Класс SortTree используется для построения бинарного дерева сортировки, необходимого для корректного получения результатов анализа. Класс StartOptions содержит настройки работы системы, такие как пути к файлам словарей, а также порог частоты по умолчанию. Класс Parser реализует графематический разбор текста, и формирует таблицу лексем. Класс Union ялвяется управляющим классом и реализует алгоритм склеивания словоформ (см. приложение 1, стр. 57, метод Execute()), рассмотренный в подразделе 2.3. Объекты класса ForListElem является элементами списка таблицы лексем, использующегося для разрешения коллизий при хешировании.
Атрибуты класса ForListElem приведены в таблице 6.
Таблица 6 - Атрибуты класса ForListElem
НазваниеНазначениеТипНачальноезначениеwordХранит лексему(слово из текста)StringcountЧастота повторения лексемы в текстеint1count_wordКоличество словоформ, встречающихся в текстеInt1in_dictОтражает наличие текущей лексемы в морфологическом словареbooleanFalsedeletedОтражает признак удаления словоформы. Используется при свертке словоформBooleanFalse
Спецификация класса ForListElem на языке OCL приведена на рисунке 14.
context ForListElem inv:.word != null and.count_word >= 0 and.count >=0
Рисунок 14 - Инвариант класса ForListElem
2.5.4 Разработка библиотеки классов взаимодействия с пользователем
Структуру библиотеки интерфейсных классов можно представ