Рис. 4 – Диаграмма классов

В программе используются следующие пользовательские структуры данных:

o Структура Hypothesis содержит информацию о признаках, характеризующих гипотезу, родителях этих признаков и классе тональности, к которому принадлежит данная гипотеза.

public struct Hypothesis

{

// Множество признаков

public HashSet<int> setValues;

// Множество родителей

public HashSet<int> setParents;

// Класс гипотезы:

// '-' - отрицательный,

// '+' - положительный

public char type;

}

o Структура TextInfo содержит характеристики текста: имя файла, множество слов из текста, содержащихся в словаре, и класс тональности текста.

public struct TextInfo

{

// Имя файла, содержащего текст

public string name;

// Множество слов из словаря, содержщихся в тексте

public HashSet<int> setValues;

// Класс текста:

// '-' - отрицательный,

// '+' - положительный

// 't' - неопределенной тональности

public char type;

}

Поле setValues содержит индексы слов, присутствующих в тексте.

o Структура EffectMeasure описывает метрики качества.

public struct EffectMeasure

{

// Точность

public double precission;

// Полнота

public double recall;

// F1-мера

public double f1_measure;

// Правильность

public double accuracy;

}

Приведем описание классов и реализованных в них методов.

Класс Program отвечает за подготовку данных к обработке и вывод результатов в файл. Методы класса:

o BuildHashSet – формирует множество слов, содержащихся в тексте;

o LoadDictionary – загружает словарь из файла Dictionary.txt;

НЕ нашли? Не то? Что вы ищете?

o NormText – осуществляет нормализацию текстов, т. е. переводит каждое слово в начальную форму;

o PrintResultCrossValidation – выполняет вывод метрик качества в файл ResultsCrossValidation.txt;

o PrintResultClassifications – выполняет вывод метрик качества в файл ResultsClassifications.txt;

o RandomSort – выполняет сортировку обучающих текстов в случайном порядке.

Класс TextNormalizer отвечает за нормализацию текстов. Методы класса:

o CreateProcess – создает новый процесс (запускает морфологический анализатор Mystem от Яndex);

o Normalize – производит нормализацию текстов в заданной директории.

Класс CrossValidator отвечает за перекрестную проверку обучающей модели. Методы класса:

o CalcKoeff – рассчитывает метрики качества анализа тональности;

o ProcessTexts – осуществляет перекрестную проверку (делит множество текстов на равнее части; поочередно одну из частей выбирает в качестве контрольной, остальные – в качестве обучающих);

Класс JsmProcessor отвечает за этапы ДСМ-метода. Методы класса:

o Analogy – выполняет процедуру аналогии;

o Classification – определяет класс тональности текста;

o ConflictResolution, …, ConflictResolution6 – функции разрешения конфликтов на основе различных критериев;

o Induction – выполняет процедуру индукции (алгоритм Норриса поиска пересечений текстов).

2.2. Текстовая коллекция

Перед проведением эксперимента была составлена коллекция отзывов пользователей сети Интернет о фильмах с использованием сайта http://www. *****. Каждый отзыв имеет оценку по шкале тональности от 1 до 10. В нашей работе исследуется ДСМ-метод в отношении только двух классов, поэтому десятибалльная шкала отображается в двухбалльную: отзывы с оценками от 8 до 10 обозначаются как положительные, с оценками от 1 до 3 – как отрицательные. Сформированная обучающая коллекция не содержит отзывы с оценками от 4 до 7, так как для обучения классификатора мы старались выбирать тексты, содержащие наиболее однозначно выраженную эмоциональную окраску. Общее количество отзывов – 500, из них положительных – 250, отрицательных – 250.

2.3. Эксперименты и результаты

Для тестирования ДСМ-метода автоматического порождения гипотез использовался компьютер со следующими характеристиками:

ü CPU AMD Athlonтм XP 2500+ Barton (Socket 462, 1,833MHz, L2 512Kb, 333MHz);

ü RAM DDR 512 Mb (pc-32MHz/400Mbps;

ü OS Windows XP Professional SP3 x32.

2.3.1. Оценка качества анализа тональности

Исследование качества распознавания тональности текстов проводилось в зависимости от:

· словаря (автоматический, ручной);

· частей речи, входящих в словарь (прилагательных, существительных, глаголов, а также их различных комбинаций);

· функции разрешения конфликтов.

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

1. Результаты тестирования в зависимости от словаря и частей речи

Тестирование проводилось при коэффициенте естественного дисбаланса . Полученные результаты представлены в табл. 2 и табл. 3.

Таблица 2 – Результаты тестирования ДСМ-метода в зависимости от словаря и частей речи при использовании функции разрешения конфликтов на основе количества гипотез

Параметры

Метрики качества

Часть речи

Словарь

Precision

Recall

F1-measure

Accuracy

Прил.

Авт.

0,915

0,890

0,902

0,896

Ручной

0,918

0,892

0,904

0,898

Сущ.

Авт.

0,433

0,868

0,573

0,711

Ручной

0,769

0,859

0,805

0,885

Гл.

Авт.

0,775

0,841

0,806

0,816

Ручной

0,704

0,808

0,749

0,779

Прил. + Сущ.

Авт.

0,716

0,966

0,822

0,850

Ручной

0,956

0,927

0,940

0,941

Прил. + Гл.

Авт.

0,916

0,898

0,906

0,902

Ручной

0,927

0,929

0,928

0,925

Сущ. + Гл.

Авт.

0,616

0,940

0,741

0,801

Ручной

0,809

0,903

0,852

0,888

Прил. + Сущ. + Гл.

Авт.

0,778

0,964

0,860

0,876

Ручной

0,918

0,972

0,944

0,945

Все части речи

Авт.

0,768

0,921

0,833

0,850

Ручной

0,907

0,944

0,924

0,925

Таблица 3 – Результаты тестирования ДСМ-метода в зависимости от словаря и частей речи при использовании функции разрешения конфликтов на основе произведения количества характеристик на количество родителей

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9