- •Титульный лист
- •Оглавление
- •Введение
- •1. Постановка задачи
- •2. Анализ задачи
- •2.1. Анализ предметной области
- •2.2. Методы автоматической классификации текстов
- •2.3. Метрики оценки качества рубрицирования
- •2.4. Существующие решения
- •2.5. Предлагаемые алгоритмы для работы классификатора
- •2.6. Анализ архитектуры модуля
- •2.7. Средства реализации
- •3. Аппаратные и программные требования
- •Серверная часть
- •Клиентская часть
- •4. Реализация
- •4.1. Структура базы данных
- •4.2. Реализация классов
- •4.3. Пример использования
- •5. Оценка качества рубрицирования
- •Заключение
- •Список литературы
- •Приложение 1. Класс-action ShowRubricProbability
- •Приложение 6. Результаты автоматической классификации объявлений
2.7. Средства реализации
В качестве средств реализации были выбраны следующие программные продукты и технологии:
СУБД Oracle 11g r2. Выбор данной СУБД обусловлен тем, что данная разработка будет интегрирована в существующую информационную систему компании «Камелот», которая работает с СУБД Oracle;
среда разработки – Java [15]. Выбор этого языка программирования связан с тем, что разработка будет являться частью web-приложения, которое работает на сервере «Tomcat». Кроме того, Java предоставляет множество различных фреймворков и технологий, которые помогают построить web-приложение согласно паттерну MVC. Проанализируем более подробно используемые фреймворки и технологии:
servlets [18] – Java-классы, которые выполняются на стороне сервера. Эти классы содержат в себе исполняющий код. Проводя аналогию с паттерном MVC, они несут на себе функцию контроллера;
JSP (Java Server Pages) [22] – технология, которая позволяет разработчикам динамически генерировать web-страницы. JSP-страницы несут на себе функции отображения;
JSTL (JavaServer Standard Tag Library) [24] – стандартная библиотека тегов. Используется для расширения спецификации JSP, добавляя условную обработку данных, создания циклов и т.д. JSTL – это альтернативный вариант скриплетов, то есть прямых вставок Java-кода в код страницы. Вставляя Java-код в страницу, нарушается модель MVC. Поэтому использование JSTL-тегов помогает придерживаться принципа MVC-архитектуры;
фреймворк Apache Struts [20] позволяет выстроить web-приложение согласно MVC-архитектуры. С его помощью можно четко отделить бизнес-логику приложения от логики отображения;
фреймворк Hibernate [23] позволяет решить задачу объектно-реляционного проецирования, то есть связать Java-классы с таблицами базы данных. Кроме того, данная библиотека позволяет писать запросы к базе данных в терминах Java-классов.
3. Аппаратные и программные требования
Серверная часть
Разрабатываемый модуль будет функционировать на серверах компании со следующим программным обеспечением:
Oracle 11g r2;
сервер Tomcat 6.
Разработка будет вестись на компьютере со следующими характеристиками:
оперативная память: 1024MB DDR2;
процессор: Intel Pentium 4 CPU 2.40GHz
и установленным локальным сервером:
сервер Tomcat 5.0.28.
Клиентская часть
Для доступа к интерфейсу для создания и редактирования объявлений, где будет начинать работу модуль по автоматическому подбору ключевых слов и фраз, необходим браузер Internet Explorer(версия не ниже 6.0) или другой браузер с аналогичными характеристиками, а также подключение к Интернету.
4. Реализация
Здесь уже пишем то, как конкретно устроена наша работа – БД, классы, нюансы алгоритмов…
В результате анализа было принято решение о разработке платформы, описание которой приводится в данной главе.
4.1. Структура базы данных
Структура базы данных приведена на рисунке 4.1.
Рис.4.1. Схема таблиц базы данных для платформы автоматической классификации объявлений
Все таблицы в базе данных можно разделить на четыре группы:
таблицы для хранения обучающей выборки;
таблицы для хранения тестовой выборки;
таблицы для данных, полученных после обучения классификатора;
таблицы, хранящие вспомогательные данные.
Описание таблиц базы данных:
Таблицы «КЛАССИФИКАТОР_ИНФ_ЧАСТЕЙ» и «КЛАССИФИКАТОР_ОБЪЯВЛЕНИЙ» – содержат тексты объявлений и ID рубрики, к которым относятся объявления. Другими словами, это обучающая выборка для классификации по рубрикам. Отличие таблиц состоит в текстах объявлений. В таблице «КЛАССИФИКАТОР_ОБЪЯВЛЕНИЙ» тексты составлены по определенным правилам. Таким образом, для рубрикации введенных объявлений больше подходит обучающая выборка из таблицы «КЛАССИФИКАТОР_ИНФ_ЧАСТЕЙ».
Таблицы «КЛАССИФИКАТОР_СЛОВ_РУБРИК» и «КЛАССИФИКАТОР_СЛОВ_РУБРИК_ОБ» – содержат данные о количестве вхождений слов в рубрики для таблиц «КЛАССИФИКАТОР_ИНФ_ЧАСТЕЙ» и «КЛАССИФИКАТОР_ОБЪЯВЛЕНИЙ» соответственно. Таблицы заполняются после обучения классификатора.
Таблица «СЛОВАРЬ» – содержит первые формы слов.
Таблица «СЛОВОФОРМЫ_СЛОВАРЯ» – содержит различные формы слов.
Таблица «РУБРИКИ» – содержит информацию о рубриках. Для данной реализации необходимо только поле «НАИМЕНОВАНИЕ».
Таблица «КЛАССИФИКАТОР_ТЕСТ» – содержит данные для экспериментов (тестовая выборка).