2.3.2. Оценка времени работы программы

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

При проведении эксперимента по замеру времени использовался ручной словарь с прилагательными. На рис. 6 изображен график зависимости времени работы программы от количества текстов.

Рис. 6 – Время работы программы-анализатора

При помощи метода наименьших квадратов построено два приближения исследуемой зависимости (рис. 6). Для рассмотренного набора входных данных наиболее точной оказалась экспоненциальная зависимость.

В табл. 9 приведено время работы программы для различных частей речи и словарей, а на рис. 7 и рис. 8 эти данные представлены в виде диаграмм.

Таблица 9 – Время работы программы-анализатора (при использовании функции разрешения конфликтов на основе количества гипотез)

Параметры

Время работы, мин

Параметры

Время работы, мин

Часть речи

Словарь

Часть речи

Словарь

Прил.

Авт.

0,145

Прил. + Гл.

Авт.

1,006

Ручной

0,082

Ручной

0,210

Сущ.

Авт.

0,705

Сущ. + Гл.

Авт.

3,505

Ручной

0,035

Ручной

0,104

Гл.

Авт.

0,230

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

Авт.

9,128

Ручной

0,045

Ручной

0,396

Прил. + Сущ.

Авт.

2,381

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

Авт.

98,880

Ручной

0,159

Ручной

0,633

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

а б

Рис. 7 – Время работы программы-анализатора (в мс):

а – автоматический словарь; б – ручной словарь

На рис. 8 изображена диаграмма времени работы программы с ручным словарем в процентном отношении ко времени работы с автоматическим словарем.

Рис. 8 – Время работы программы с ручным словарем в процентном отношении ко времени работы с автоматическим словарем

Полученные результаты показывают, что при использовании ручного словаря скорость работы программы существенно больше, чем в случае автоматического словаря. При этом качество распознавания тональности выше.

Заключение

В процессе выполнения курсовой работы был изучен ДСМ-метод автоматического порождения гипотез, применяемый для анализа тональности текстов, выполнена программная реализация этого метода и проведен ряд компьютерных экспериментов. Исследование было направлено на выявление влияния компонентов ДСМ-метода на качество распознавания тональности текстов. Изучалось влияние словаря, частей речи и функции разрешения конфликтов. Анализ полученных результатов позволил сделать следующие выводы:

o словарь, составленный вручную, по сравнению с автоматическим словарем дает улучшение значения метрик качества вследствие отсечения множества слов с нейтральной окраской, а также увеличивает скорость работы программы;

o наибольший вклад в качество определения тональности вносят имена прилагательные вследствие частого употребления и содержания ярко выраженной эмоциональной окраски;

o разные функции разрешения конфликтов дают разное качество определения тональности.

Таким образом, ДСМ-метод показал хорошие результаты по определению тональности отзывов о фильмах. На основании экспериментов можно сказать, что одним из путей повышения производительности метода является качественное составление словарей эмоциональной лексики.

Библиографический список

1. Feldman R. Techniques and Applications for Sentiment Analysis // Communications of the ACM. 2013. Vol. 56, №4. P. 82-89.

2. Kuznetsov S. O., Obiedkov S. paring Perfomance of Algorithms for Generating Concept Lattices // Journal of Experimental and Theoretical Artificial Intelligence. 2002. Vol. 14.

3. Liu B. Sentiment Analysis and Opinion Mining. Morgan & Claypool Publishers, 2012.

4. Refaeilzadeh P., Tang L., Liu H. Encyclopedia of Database Systems // Springer, US. 2009.

5. Sebastiani F. Machine learning in Automated Text Categorization // ACM Computing Surveys. 2002. Vol. 34. P. 1-47.

6. Автоматическое порождение гипотез в интеллектуальных системах / под ред. . – М.: Либроком, 2009. – 528 с.

7. ДСМ-метод автоматического порождения гипотез / под ред. . – М.: Либроком, 2009. – 432 с.

8. Кожунова разработки семантического словаря системы информационного мониторинга // Автореферат диссертации на соискание ученой степени кандидата технических наук. – М., 2009. – 21 с.

9. Котельников эмоциональной составляющей в текстах: проблемы и подходы / , , Т. А. Пескишева, ; под. ред. . – Киров: Изд-во ВятГГУ, 2012. – 103 с.

10. , , Пестов выбор параметров классификатора для анализа тональности текстов // Вопросы современной науки и практики. Университет им. . Тамбов: ГОУ ВПО ТГТУ, 2012. С. 67-74.

Приложение

Файл Program. cs

using System;

using System. Collections. Generic;

using System. Linq;

using System. Text;

using System. IO;

using System. Collections;

using System. Diagnostics;

namespace JSM_VS

{

/// <summary>

/// Гипотезы

/// </summary>

public struct Hypothesis

{

/// <summary>

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

/// </summary>

public HashSet<int> setValues;

/// <summary>

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

/// </summary>

public HashSet<int> setParents;

/// <summary>

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

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

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

/// </summary>

public char type;

}

/// <summary>

/// Описание текстов

/// </summary>

public struct TextInfo

{

/// <summary>

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

/// </summary>

public string name;

/// <summary>

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

/// </summary>

public HashSet<int> setValues;

/// <summary>

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

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

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

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

/// </summary>

public char type;

}

/// <summary>

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

/// </summary>

public struct EffectMeasure

{

/// <summary>

/// Точность

/// </summary>

public double precission;

/// <summary>

/// Полнота

/// </summary>

public double recall;

/// <summary>

/// F1-мера

/// </summary>

public double f1_measure;

/// <summary>

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

/// </summary>

public double accuracy;

//public int countPlusHyp; // Количество положительных гипотез

//public int countMinusHyp; // Количество отрицательных гипотез

}

class Program

{

/// <summary>

/// Загрузка словаря

/// </summary>

/// <param name="words"></param>

static void LoadDictionary(Dictionary<string, int> words)

{

StreamReader sr = new StreamReader("dictionary. txt", Encoding.GetEncoding(1251));

int numWord = 0;

while (!sr. EndOfStream)

{

string str = sr. ReadLine();

numWord++;

words. Add(str, numWord);

}

sr. Close();

}

/// <summary>

/// Сортировка массива примеров в случайном порядке

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