М.К. Савкин. Исследование нейросетевого подхода к стеммингу.

advertisement
Исследование нейросетевого подхода к стеммингу
М.К. Савкин (Россия, Калуга, студент КФ МГТУ им. Н.Э. Баумана)
Научный руководитель: Л. Г. Комарцова (Россия, Калуга, д.т.н., профессор кафедры
ЭИУ2-КФ КФ МГТУ им. Н.Э. Баумана)
Введение
В настоящее время человечество накопило большой объем информации в
неформализованном виде, т.е. в виде текстов, изображений, звука. Наибольший интерес
представляет текстовая информация, ее объемы колоссальны: поисковая система Google
содержит 850 Тб проиндексированных страниц, знаменитая библиотека конгресса США
по разным оценкам содержит более 20 Тб данных. Помимо большого объема данная
информация характеризуется неструктурированностью, избыточностью, неполнотой и
разбросанностью. Для работы с имеющей такие свойства информацией нужны особые
методики. Одна из этих методик заключается в использовании нейросетевого подхода,
преимуществами которого является возможность работы с нечеткими, неполными
и неточными данными; обучение на примерах, т.е. адаптация; работа в реальном времени.
Постановка задачи
Стемминг – процесс отсечения от слова всех суффиксов и окончаний. Данный
процесс близок к лемматизации, однако для слов, имеющих разные основы для разных
форм, работа этих методов различается. Стемминг может использоваться при индексации
текста поисковыми машинами, при анализе текста с помощью латентно-семантического
анализа. Задача состоит в исследовании возможности использования нейронных сетей для
организации стемминга слов русского языка.
Исходные данные
В качестве источника слов для анализа использован морфологический словарь
проекта AOT, основанный на словаре Зализняка. С помощью созданного программного
обеспечения словарь был разбит на файлы, содержащие все доступные формы одной
основы. Из порядка 150 тысяч таких файлов было выбрано 5 групп по 30 файлов, т.е. по
30 основ. Данные 5 групп были объединены в 6-ую группу, состоящую из 150 основ.
Используемое программное обеспечение
Для
проведения
анализа
использовался
разработанный
автором
эмулятор
нейронных сетей. Данная программа предназначена для эмуляции сетей персептронного
типа с обучением по модифицированному алгоритму обратного распространения ошибки
(модифицированный алгоритм BP). Эмулятор имеет следующие возможности:
o предварительная обработка данных (нормализация, кодирование выхода,
разбиение на обучающую, подтверждающую и рабочую выборки);
o связывание сети с файлами данных;
o создание моделей нейроподобных элементов с настройкой параметров функции
активации
и
последующим
сохранением
в библиотеке
нейроподобных
элементов;
o автоматизированное и ручное создание сетей персептронного типа;
o обучение по модифицированному алгоритму BP. В стандартный алгоритм
обратного распространения ошибки был внесен ряд дополнений. Введено
понятие периода проверки, который определяет, как часто в процессе обучения
применяется подтверждающая выборка для оценки качества обучения. Это
позволяет
избежать
эффекта
«бабушкиного
воспитания»,
связанного
с переобучением сети. «Ранний останов» прекращает обучение сети, как только
ошибка на подтверждающей выборке начнет расти;
o запуск сети для обработки данных;
o генерация исходного кода на языке C++, представляющего обученную сеть.
o работа в операционных системах Windows ® и *nix.
Главное окно эмулятора показано на рис. 1.
Рис. 1. Главное окно эмулятора (редактор сетей)
Подготовка экспериментов
Исходными данными в проводимом исследовании являются слова русского языка,
состоящие из букв, в то время как используемая модель нейронов с сигмоидальной
функцией активации может работать только с числами в диапазоне [0; 1]. С учетом того,
что исходные текстовые файлы имели кодировку UTF-8, была использована следующая
формула для подготовки входных данных:
числовое _ представление _ буквы 
код _ UTF 8  1039
,
64
где:
o 1039 – код символа, предшествующего заглавной букве «А» в таблице UTF-8;
o 64 – количество прописных и строчных букв русского языка.
Для кодирования выхода использовался метод «победитель забирает все».
Во всех экспериментах использовался двухслойный персептрон. В первом слое
находилось 4 нейрона, число входов равнялось максимальному количеству букв в словах
группы; во втором слое находилось 30 (или 150 для 6-ой группы) 4-х входовых нейронов.
Все слова каждой группы были разбиты на обучающую, подтверждающую и
рабочую выборки в соответствии с соотношением 30/20/50%.
Сеть обучалась со следующими параметрами:
o первоначальная инициализация весовых коэффициентов случайными числами в
диапазоне [0,1…0,3];
o 2000 число итераций обучения;
o период проверки – 10 итераций;
o скорость обучения (стандартный параметр алгоритма BP) – 0,3.
o среднеквадратическая ошибка на подтверждающей выборке, достижение
которой останавливает обучение, – 0,2.
Проведение экспериментов
Данные о проводимых экспериментах сведены в таблицу:
Группа/
показатель
количество
основ
количество
слов
размер сети
причина
останова
обучения
размер
рабочей
выборки
%/
количество
верных
ответов на
рабочей
выборке
1
2
3
4
5
6 (все
слова)
30
30
30
30
30
150
883
761
1029
906
769
4339
4x224x21-30x4
4x21-30x4 4x22-150x4
30x4
рост
рост
ошибки исчерпание ошибки исчерпание исчерпание исчерпание
после
числа
после
числа
числа
числа
1865
итераций
1690
итераций
итераций
итераций
итераций
итераций
4x19-30-4
4x20-30x4
441
386
511
452
384
2169
72%
316
73%
277
71%
362
71%
320
61%
234
7%
156
Табл. 1. Результаты экспериментов
Размер сети указан в формате <число нейронов слоя 1>x<количество входов
нейрона> – <число нейронов слоя 2>x< количество входов нейрона >.
На рис.2. представлен график, иллюстрирующий процесс обучения.
2,5
2
группа 1
группа 2
1,5
группа 3
группа 4
1
группа 5
все
0,5
0
1
192
383 574 765 956 1147 1338 1529 1720 1911
Рис. 2. Падение ошибки на обучающей выборке
Выводы и заключение
Видно, что на первых 4-х группах был получен устойчивый результат в 71-73%
верно распознанных основ. При повторе опыта на 5-ой группе был получен результат
50%, что говорит о локальном характере оптимизации, которую осуществляет выбранный
алгоритм обучения: при каждом запуске алгоритма при инициализации весов выбираются
точки в пространстве весовых коэффициентов, приводящие к разным результатам.
Крайне низкий результат, полученный на 6-ой группе, говорит о непригодности
алгоритма с выбранными параметрами для обучения больших сетей, работающих с
большими объемами данных. Увеличение количества итераций нецелесообразно,
поскольку приведет к существенному росту времени обучения: сеть данной группы
обучалась порядка 10 минут. Возможно, лучший результат даст использование двоичного
или иного кодирования выхода вместо использованного «победитель забирает все».
В целом нейросетевой подход можно признать пригодным для организации
стемминга. Необходимо исследовать другие алгоритмы обучения и типы сетей, а также
сравнить результаты с традиционными методами.
Список литературы
1. Тарков
М.С.
Нейрокомпьютерные
системы:
–
http://www.intuit.ru/department/expert/neuro/
2. Яхъяева
Г.Э.
Основы
теории
нейронных
сетей:
–
http://www.intuit.ru/department/ds/neuronnets/
3. Николаев
А.Б.
Инструментальные
средства
разработки
нейросетевых
приложений: – http://www.madi.ru/study/kafedra/asu/metod/nero/5_2.shtml
4. Комарцова Л.Г., Максимов А.В. Нейрокомпьютеры: Учеб. пособие для вузов. –
2-е изд., перераб. и доп. – М.: Изд-во МГТУ им. Н.Э. Баумана, 2004. – 400 с.: ил.
5. Бланшет Ж., Саммерфилд М. Разработка графического интерфейса с помощью
библиотеки Qt3: – http://www.opennet.ru/docs/RUS/qt3_prog/
6. http://aot.ru
Download