на главную ] 

Классификатор текстов на естественном языке.

Е.С.Борисов

четверг, 6 сентября 2007 г.


1 Введение

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

2 Общая схема системы классификации

Рис.1: Общая схема классификатора
текст
частотный
анализатор
словарь

частотная
характеристика
нейросетевой
классификатор
номер класса
Система классификации состоит из двух основных частей: частотный анализатор с словарем и нейросетевой классификатор (рис. 1 ). На вход системы поступает текст, на выходе получаем тему, которой посвящен этот текст (спорт, политика, медицина и т.п.).

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

2.1 Частотный анализатор и словарь.

Первая часть системы это частотный анализатор и словарь, здесь вычисляется т.н. частотная характеристика входного текста.

Рис.2: Схема частотного анализатора
текст
(t1t2...tk)
частотный
анализатор
словарь
(v1,v2,...vn)

(f1,...fn)
частотная
характеристика

Частотный анализатор реализует известный лингвистический метод для обработки текстов на естественных языках - частотный анализ, который показывает распределение повторов слов в тексте. Эта часть системы определяет для каждого слова vi из словаря V его частоту вхождения fi в данный текст t (рис. 2 ). Частотная характеристика это вектор f=(f1,...fn)∈ F , длинна которого равна количеству слов в словаре V , каждая компонента fi это целое неотрицательное число:


\begin{displaymath}f_i=\sum\limits_{j=0}^{k}e(v_i,t_j)\ \ ; \ \ e(v_i,t_j)=\lef...  ...ray}{cc} 0,& v_i \neq t_j \\ 1,& v_i = t_j \end{array}\right.\end{displaymath}

Другими словами - для каждого слова vi ∈ V определяется число его вхождений fi ≥ 0 в данный текст t=t1t2t3...tk .

Частотную характеристику f можно рассматривать как точку в пространстве признаков F , соответствующую тексту t . Таким образом, на входе имеем текст t и словарь V , на выходе точку в пространстве признаков F .

2.2 Нейросетевой классификатор.

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

Размер входного слоя равен длине вектора частотной характеристики. Размер скрытых слоев и выходного слоя определяется количеством областей (числом классов), на которые мы будем делить пространство признаков. Сеть такой архитектуры позволяет выделять в пространстве признаков области любой формы и сложности [3].

На вход нейронной сети подается вектор частотной характеристики, на выходе получаем вектор (y0...ym). Номер j , для которого выход yj имеет максимальную активность (т.е. yj=max(yi) ; i=0...m), соответствует номеру класса входного образца.

Для обучения этой нейронной сети используется метод обратного распространения ошибки [3].

3 Обучение системы

Прежде чем классификатор начнет работать его необходимо обучить на множестве учебных текстов. Эту процедуру можно разбить на четыре этапа:

  1. Определение количества классов , с которыми будет работать система. Подбор тематических учебных текстов , в одинаковом объеме для каждого класса. Тексты должны в точности соответствовать своей теме.

  2. Составление словаря из множества учебных текстов. Для решения этой задачи можно воспользоваться обобщенным законом Бредфорда[ 2 ]. В следующих разделах эта задача рассматривается подробнее.

  3. Частотный анализ множества учебных текстов , с использованием полученного словаря. Получаем множество учебных векторов для нейронной сети.

  4. Обучение нейросетевого классификатора на наборе векторов частотных характеристик учебных текстов. Далее рассматривается решение этой задачи.

3.1 Составление словаря

Словарь - важная часть классификатора и для эффективной работы системы он должен быть оптимален т.е. удовлетворять следующим требованиям.

Составить словарь удовлетворяющий эти требования можно используя известные лингвистические закономерности. В этой работе был использован закон Бретфорда[ 2 ], который можно сформулировать следующим образом.

3.1.0.1 Обобщенный закон Бретфорда:

Рассмотрим множество текстов посвященной определенной тематике.

3.1.0.2 Процедура составления словаря состоит в следующем:

Для каждого слова из набора учебных текстов выполняется частотный анализ с последующим ранжированием. В соответствии с обобщенным законом Бретфорда, ранжированный список делится на четыре части. Очевидно что, третья часть полученного списка (тематическая лексика) и есть искомый словарь, соответствующий всем темам учебных текстов.

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

3.2 Обучение нейросетевого классификатора

После того как определены классы, подобраны соответствующие им учебные тексты, сформирован словарь и получены результаты частотного анализа учебных текстов, можно приступать к обучению нейронной сети.

Процесс обучения нейронной сети сводится к корректировке весовых коэффициентов ее связей в соответствии с методом обратного распространения ошибки [3].

4 Реализация

В этом разделе представлена реализация, описанной выше модели классификатора, который работает с текстами на русском языке. Данная реализация классификатора делит все множество входных текстов на пять классов: ''спорт'', ''здоровье'', ''политика'', ''техника'', ''культура''. Словарь, построенный на основе учебных текстов, содержит 2520 слов. Каждый класс описывается четырьмя учебными текстами объемом около трех страниц каждый. Все тексты (учебные и тестовые) взяты из русскоязычных новостных каналов сети internet, таких как podrobnosti.ua, news.yandex.ru, nr2.ru и др. Отчет, сгенерированный программой, можно увидеть [ здесь ].

Образцы текстов, обработанных системой


Исходные тексты программ [ здесь ].


Литература

1
Е.С.Борисов Искусственные нейронные сети - http://www.mechanoid.kiev.ua

2
Ланде Д.В. Поиск знаний в Internet. - Санкт-Петербург:Диалектика,2005

3
В.А.Головко, под ред.проф.А.И.Галушкина Нейронные сети: обучение, организация и применение. - Москва : ИПРЖР, 2001

4
Anil K. Jain, Jianchang Mao, K.M. Mohiuddin Artificial Neural Networks: A Tutorial // Computer, Vol.29, No.3, March/1996, pp. 31-44.



Evgeny S. Borisov
2007-09-06
При использовании материалов этого сайта, пожалуйста вставляйте в свой текст ссылку на мою статью.