Рис. 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 |


