Система контент-анализа естественно-языковых текстов

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование



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

Рисунок 8 - Алгоритм склеивания

Итак, алгоритм выбора и подсчета ключевых слов входного потока представлен на рисунке 9.

Рисунок 9 - Алгоритм поиска ключевых слов

На выходе системы получаем множество слов - кандидатов вида

где - слово-кандидат,

- вес кандидата.

Далее задачей пользователя является проведение анализа полученной информации iелью фильтрации терминов и указания их определения.

2.4 Использованные механизмы языка Java

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

2.4.1 Управление памятью

Java - объектно-ориентированный язык программирования, разработанный компанией Sun Microsystems. Приложения Java обычно компилируются в специальный байт-код, поэтому они могут работать на любой виртуальной Java-машине (JVM) независимо от компьютерной архитектуры. Другой важной особенностью технологии Java является гибкая система безопасности благодаря тому, что исполнение программы контролируется виртуальной машиной. Основные возможности языка[7]:

-автоматическое управление памятью;

-расширенные возможности обработки исключительных ситуаций;

-богатый набор средств фильтрации ввода/вывода;

-набор стандартных коллекций, таких как массив, список, стек и т. п.;

-наличие простых средств создания сетевых приложений;

-наличие классов, позволяющих выполнять HTTP-запросы и обрабатывать ответы;

-встроенные в язык средства создания многопоточных приложений;

-унифицированный доступ к базам данных:

-поддержка шаблонов (начиная с версии 1.5);

-параллельное выполнение программ.

В языке Java невозможно явное удаление объекта из памяти - вместо этого реализована так называемая сборка мусора[8], являющейся одной из форм автоматического управления памятью.

В любом языке, допускающем создание объектов в динамической памяти, потенциально возможны две проблемы: висячие ссылки (англ. dangling pointer) и утечки памяти (англ. memory leak). Висячая ссылка - это оставшаяся в использовании ссылка на объект, который уже удалён. Попытка обратиться по такой ссылке приведёт к срабатыванию механизма защиты памяти и аварийной остановке программы либо к непредсказуемым последствиям.

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

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

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

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

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

2.4.2 Класс JList библиотеки Swing

Класс JList имеет несколько конструкторов: public JList() - cоздает пустой список, public JList(Object[] listData) - cписок на основе массива объектов, public JList(Vector listData) - cписок из элементов вектора, public JList(ListModel dataModel) - самый абстрактный и гибкий вариант. Создается класс, реализующий интерфейс ListModel и обеспечивающий элементы для списка из любого источника.

Для отображения элементов JList использует стандартный для JFC(Java Foundation Classes) прием[10]. В списке отображаются строки, полученные путем вызовов метода toString для объектов, входящих в список. Класс JList является довольно сложной по структуре конструкцией и, как и многие другие классы Swing, построен на базе архитектуры MVC (Model-View-Controller).

Для построения модифицируемого списка используется интерфейс ListModel и классы AbstractListModel и DefaultListModel. Список типа JList работает с данн