УДК 004.82; 004.912; 81.322.2
П. А. Степанов
Новосибирский государственный университет ул. Пирогова, 2, Новосибирск, 630090, Россия
E-mail: [email protected]
АВТОМАТИЗАЦИЯ ОБРАБОТКИ ТЕКСТОВ ЕСТЕСТВЕННОГО ЯЗЫКА
Рассматривается вопрос об автоматизации обработки текстов на естественном языке. Описана проблема, связанная с взаимодействием между модулями автоматизированной системы анализа текста. На основе теории автоматов разработан формальный подход к описанию систем автоматизированной обработки текста. Предложено решение, использующее специальную структуру данных для хранения промежуточных результатов анализа. Разработанное решение было применено к задаче извлечения явных определений терминов из текстов естественного языка.
Ключевые слова: обработка естественного языка, анализ текста, извлечение информации, извлечение определений терминов.
Введение
Сегодня проблема автоматизированной обработки текста получила особую актуальность. Высокая скорость роста количества доступной информации вынуждает совершенствовать способы е обработки, реализовывать частичную или полную автоматизацию этих процессов. Легко заметить, что основным и наиболее востребованным способом представления информации является текст на естественном языке. Именно об обработке подобных текстов и пойдет речь в данной статье.
Большинство сложных задач по обработке текстов связано с необходимостью использования лексикографического, морфологического и синтаксического анализаторов [1-7]. Каждый анализатор отвечает за свой этап анализа текста. На первом этапе исходный текст, представленный в виде последовательности символов, разбивается на слова лексикографическим анализатором. Затем морфологический анализатор определяет грамматические характеристики найденных слов. На третьем этапе синтаксический анализатор устанавливает синтаксические связи между словами. Далее результаты работы могут обрабатываться при помощи так называемых семантических анализаторов. Семантические анализаторы обычно представляют собой эвристические алгоритмы, некоторым образом интерпретирующие информацию, полученную от морфологического и синтаксического анализаторов.
Формальные методы автоматизированной обработки текста
В данной статье используется терминология теории автоматов [8], которая предоставляет математические модели для описания алгоритмов и вычислительных систем. В частности, одной из удобных абстракций для математического описания алгоритмов анализа и распознавания информации являются недетерминированные автоматы. Приведем необходимые определения.
Степанов П. А. Автоматизация обработки текстов естественного языка // Вестн. Новосиб. гос. ун-та. Серия: Информационные технологии. 2013. Т. 11, вып. 2. С. 109-115.
ISSN 1818-7900. Вестник НГУ. Серия: Информационные технологии. 2013. Том 11, выпуск 2 © П. А. Степанов, 2013
Определение 1. Недетерминированным автоматом называется кортеж (5, X, У,50, , где:
- непустое множество состояний автомата;
X - непустое множество входных сигналов (входной алфавит);
У - непустое множество выходных сигналов (выходной алфавит);
5 0с 5 - множество начальных состояний;
5: 5XX ^ Р(5XУ) - функция переходов.
Заметим, что в приведенном определении отсутствует требование конечности автомата. Напомним, что конечный автомат должен иметь дополнительно конечные множества состояний и конечные алфавиты входных и выходных символов. Отсутствие требования конечности значительно увеличивает класс алгоритмов, реализуемых в виде недетерминированных автоматов.
Поскольку в данной статье речь идет об обработке текста, то требовать конечность рассматриваемых автоматов не только не нужно, но и невозможно. В качестве примера рассмотрим морфологический анализатор, в функции которого входит, в том числе, определение начальной формы слова. Поскольку конечных слов конечного алфавита бесконечно (счетно), то целесообразно считать выходной алфавит морфологического анализатора также бесконечным (счетным).
Следует отметить, что рассматриваемые автоматы являются недетерминированными. Легко видеть, что, как правило, используемые на практике лексикографические, морфологические и синтаксические анализаторы текстов естественного языка являются недетерминированными. В качестве примера можно рассмотреть слово клей, которое одновременно является и начальной формой имени существительного, и повелительной формой глагола клеить. Аналогичные ситуации имеют место и в случаях с лексикографическим, и с синтаксическим анализаторами.
Определение 2. Рассмотрим недетерминированный автомат А = (5, X, У,50, 5), х1...хп, где х1 е X - последовательность символов входного алфавита; у1...уп, где у{ е У - последовательность символов выходного алфавита. Будем говорить, что автомат преобразует входную последовательность х1...хп, в выходную последовательность у1...уп,, если 3^0, 51,...¿д., е 5: 50 е 50 и , yi)е5(51_1, х1). Последовательность у1...уп, будем называть результатом работы автомата А на входной последовательности х1...хп. Множество всех возможных последовательностей у1...уп, являющихся результатом работы автомата А на входной последовательности х1...хп, будем называть множеством результатов работы автомата А на входной последовательности х1...хп.
Рассмотрим процесс обработки данных, состоящий из двух этапов, представленных в виде двух недетерминированных автоматов А = (5А, X, У, 5А0, 5А) и В = (5В, У, 2, 5В0, 5В) . Результат работы первого автомата на последовательности х1...хп, где х{ е X - множество всех последовательностей у1...уп, где yi е У, таких, что автомат А преобразует последовательность х1...хп в у1...уп. Чтобы получить результат работы автомата В, мы вынуждены рассчитать результат его работы на каждой последовательности у1...уп из множества результатов автомата А .
Заметим, что использование множества результатов работы одного автомата в качестве множества входных последовательностей другого автомата создает определенные трудности. Для решения этой проблемы мы вводим специальную формальную структуру, предназначенную для хранения промежуточных результатов при поэтапной обработке данных.
Определение 3. Рассмотрим недетерминированный автомат А = (5, X, У, 50, 5^ и последовательность х1...хп, где х{ е X . Множеством интерпретаций последовательности х1...хп автоматом А будем называть множество I = {(к, 5, t, у) е NX5 X5XУ} такое, что У(к, 5, t, у) е I
3^, ^...¿к е Б 3>-1...ук е У, для которых выполнено (к, 5, г, у) = (к, 5к_, sk, ), ^ е Б0, Vi :(5,, у, )е6(5,_l, х,).
Покажем, как, используя множество интерпретаций, можно восстановить множество результатов работы недетерминированного автомата.
Определение 4. Рассмотрим недетерминированный автомат А = {Б, X, У, 50, 5^ и последовательность х1...хп, где хi е X , и I = {(к, 5, г, у) е NXБ XБхУ} - множество интерпретаций последовательности х1...хп автоматом А. Будем называть множество всех последовательностей вида {^ ...гя | З5. е Б: V/: (/, 5_1,5, ^) е I} восстановленным по I множеством результатов работы автомата А на входной последовательности х1...хп.
Предложение 1. Рассмотрим недетерминированный автомат А = {Б, X, У, 50, 5) , последовательность х1...хя, где х1 е X , и I = {(к, 5, г, у)е NXБXБXУ} - множество интерпретаций последовательности х1...хп автоматом А. Тогда восстановленное множество результатов совпадает с множеством результатов работы автомата А на входной последовательности х1...хп.
Доказательство. Обозначим Я = {2х...2п | 35,. е Б : V/: (/, _1, , )е I} - восстановленное множество результатов работы автомата А на входной последовательности х1...хп.
Покажем, что для последовательности у1...уп, где у{ е У, являющейся результатом работы автомата А на входной последовательности х1...хп, выполнено: V/ 3(/, 5, г, у{) е I. Так как у1...уп - результат работы автомата А на входной последовательности х1...хп, то по определению 350,51...5к, si е Б: 50 е Б0 и V/ (si, у,)е 5(, х, ), т. е. 350,51... 5к е Б: 50 е Б0 и V/ :(si, yi)е 5(5,_1, х1), что означает V/:(/, 5/_1, si, yi)е I. Таким образом, любой результат работы автомата на входной последовательности х1...хп принадлежит множеству Я.
Покажем, что любой элемент множества Я является результатом работы автомата А на входной последовательности х1...хп. Пусть г1...гп е Я , тогда 35, е Б: V/:(/, 5,_1, si, )е I, откуда следует 350, 51... 5к,si е Б : V/ (si, yi)е 5(si_1, х1). Очевидно, 50 е Б0 из определения множества интерпретаций.
Таким образом, множество результатов работы автомата А на входной последовательности х1...хп совпадает с восстановленным множеством результатов работы Я.
Предложение 1 доказано.
Множество интерпретаций состоит из всех возможных кортежей следующего вида: номер входного символа, исходное состояние автомата на этом символе, одно из возможных следующих состояний автомата, один из возможных выходных символов. Алгоритм построения этого множества можно кратко представить описанным далее способом.
Обозначим А = (Б, X, У,50, 5А) недетерминированный автомат, а х1...хп - входную последовательность, где х{ е X . На каждом шаге автомата, находящегося в состоянии 5 е Б , при обработке входного символа хк е X необходимо добавить в множество интерпретаций следующее множество кортежей: {(к, 5, г, у)|(г, у) е5(5, х)} . Легко доказать, что полученное множество является множеством интерпретаций.
Множество интерпретаций служит для представления результата работы недетерминированного автомата. Для получения всех результатов достаточно построить восстановленное множество результатов по множеству интерпретаций. Рассмотрим ситуацию, когда два недетерминированных автомата работают в рамках одной системы, в качестве двух этапов обработки данных. В этом случае множество интерпретаций первого автомата будет являться своеобразными входными данными для второго автомата.
Определение 5. Рассмотрим недетерминированные автоматы А = {5А, X, У, 5А0, 5и В = (5В, У, 2,5В0, 5В), х1...хп - последовательность символов, где х{ е X . Обозначим 1А = {(к, 5А, tA, у) е NX 5А X 5А XУ} множество интерпретаций автоматом А последовательности х1...хп. Множество 1В = {(к, 5,1, г)е NX5АВ X5АВ X2}, где 5АВ = 5А X5В будем называть множеством интерпретаций автоматом В множества интерпретаций 1А, если У(к, 5,1, г)е 1в 3^А, ... 3^В, tlB...^ Зух...ук 3^..^, где tf е 8А, ^ е 5в, у е У, г, е 2 , для которых выполнено (к,.?, Г, г) = (к, (к-, ^), (Ак ,1),гк), t0í е t0B е 5в0,
V,: (tIB, г,)е 5^, у,) и V,:(,, ^, у,)е 1А.
Опишем кратко алгоритм построения множества 1В из определения 5.
1. На первом шаге алгоритма добавить в множество 1В все кортежи вида
(1, (SA0, SB0), (А ^В ), г) Т^^ что ¿А0 е 5А0 , 5В0 е 5В 0, (^В , г) е5В (SB0, у) и 3(1, 5А0 , tA , у) е 1А .
2. На шаге с номером ,+1 добавить кортежи вида (, +1,(8А, ,5В), (1А, tB), г) такие, что
^В, г) е 5в (5В, у), 3(,
+ 1 5А , tA , у) е 1А и -?в , ¿В , г) е 1В : ¿В = 5В .
Предложение 2. Рассмотрим А = {, X, У, 5А0, 5А) и В = (БВ, У, 2, 5В0, 5В) - недетерминированные автоматы, х1...хп - последовательность символов, где х{ е X, 1А = {(к, 5А, tA, у) е NX 5А X 5А XУ} - множество интерпретаций автоматом А последовательности х1...хп, 1В = {(к, 5, t, г) е NX 5АВ X5АВ X2} - множество интерпретаций автоматом В множества интерпретаций 1А . В таком случае восстановленное по 1В множество результатов автомата В совпадает с объединением всех множеств результатов работы автомата В на последовательностях, принадлежащих множеству результатов работы автомата А на входной последовательности х1...хп.
Доказательство. Обозначим Я = {г1...гп | Зsi е 5В : V,: (,, si_1, si, гi)е 1В} - восстановленное по 1В множество результатов работы автомата В.
Рассмотрим последовательность у1...уп - результат работы автомата А на входной последовательности х1...хп и последовательность г1...гп - результат работы автомата В на входной последовательности у1...уп. Докажем, что последовательность г1...гп принадлежит восстановленному множеству результатов Я. По определению З^...^ е 5А, З.^...^ е 5В : 5А е 5А0, ^ е 5В0, Vi(s'A, yi) е§(5А_1, х1) и Vi(sB, г,) е 6(5В_1; yi). Как видно, теперь достаточно показать, что V,: (,, , 5В, г{) е 1В, а это следует из определения. Таким образом, г1...гп е Я .
Рассмотрим последовательность г1...гп е Я . По определению восстановленного множества результатов имеем Зsi = (5А, 5В) е : V,: (,, si, г{ )е 1В . Из определения множества интерпретаций следует V,: Зу, е У: (51В, г1) е 5(5^, у1) и (,, , , у1) е 1А . Таким образом, Зу1...уп е У: г1...гп является результатом работы автомата В на входной последовательности у1...уп. Причем из определения очевидно, что у1...уп принадлежит восстановленному по 1А множеству решений и, следовательно, является результатом работы автомата А.
Предложение 2 доказано.
Извлечение явных определений терминов из текстов естественного языка
На основе изложенного формального подхода разработан инструмент, предназначенный для извлечения явных определений терминов из текстов естественного языка. В качестве входных данных программная система имеет тексты естественного языка, представленные в виде ИТЫЬ-документов. Результатом работы системы является набор участков текста, рас-
познанных программой в качестве определений, с уточнением, какой именно термин определяется на данном участке.
В работе рассматривается проблема извлечения информации из текстов естественного языка, представленных в сети Интернет, а именно решается задача извлечения явных определений ключевых терминов данной предметной области. Извлекаемые термины необходимы для построения онтологии предметной области. Особенности проблемы построения он-тологий предметных областей описаны в статьях [2], [9-10].
Разработанная программная система состоит из нескольких модулей. Каждый из модулей является реализацией некоторого недетерминированного автомата. В системе реализована последовательность множеств интерпретаций, служащих хранилищем результатов работы модулей.
Работа системы происходит в несколько этапов.
1. На вход подается HTML-документ, представляющий текст естественного языка.
2. Текст обрабатывается лексикографическим анализатором, извлекающим текст из HTML документа и разбивающим его на слова. В качестве результата строится множество интерпретаций.
3. Полученное на предыдущем этапе множество интерпретаций обрабатывается специальным алгоритмом, отмечающим некоторые фрагменты текста как незначащие с точки зрения семантики определяемых терминов. Такие участки текста выявляются при помощи поиска в тексте маркеров специального вида (например, в определенных ситуациях фрагменты текста, заключенные в скобки).
4. Далее множество интерпретаций обрабатывается морфологическим анализатором. Морфологический анализатор преобразует каждое слово, содержащееся во множестве интерпретаций, в кортеж, состоящий из элементов следующего вида: исходная форма слова и набор его грамматических характеристик. Это необходимо, поскольку одно и то же слово может соответствовать нескольким таким конструкциям (например, приведенное выше слово клей). В результате работы строится новое множество интерпретаций. Морфологический анализатор разработан на основе моделей грамматики, изложенных в [11], и словоизменительных правил, описанных в [12].
5. Окончательное множество интерпретаций обрабатывается синтаксическим анализатором, который осуществляет поиск определений терминов с использованием разработанного ранее языка описания лингвистических шаблонов [1].
Отметим, что при работе алгоритма порождаются новые версии множеств интерпретаций, причем предыдущие версии сохраняются. Это является полезным как для работы алгоритма, так и для возможности «интеллектуального бектрекинга».
Поиск определений осуществляется по формальным критериям, записанным в виде выражений на языке описания лингвистических шаблонов. Примером маркеров, используемых в этих критериях, является вхождение в текст специальных слов и конструкций: это, называется, называют, будем называть, является и т. д.
В качестве примера результатов работы программы приведем несколько найденных системой определений терминов.
1. «Сетевой червь - разновидность вредоносной программы, самостоятельно распространяющейся через локальные и глобальные компьютерные сети».
2. «Шифрованием называется процесс преобразования данных, в результате которого становится невозможной правильная интерпретация данных».
3. «Избирательное управление доступом - управление доступом субъектов к объектам на основе списков управления доступом или матрицы доступа».
4. «Идентификацией называется проверка подлинности клиентов и серверов».
5. «Файловый вирус - это вирус, записывающий свой код в тело программного файла...».
6. «Информацией будем называть данные, представленные в том или ином виде, пригодном для хранения, обработки и / или передачи».
7. «Информационное пространство - это совокупность информационных систем...».
Разработанная система была протестирована на множестве текстов, подобранных для разработки онтологии по предметной области информационной безопасности. Тексты естест-
венного языка, использованные для извлечения определений, были взяты из сети Интернет и не подвергались никакой предварительной обработке. В результате работы алгоритма обнаружено 95 % явных определений, найденных в этих же текстах человеком. При этом в выдаче присутствовало 15 % ошибок. В качестве ошибочных определений, как правило, были фрагменты текста, относящиеся к семантике терминов, но не являющиеся определениями в строгом смысле.
Отметим, что в текстах также встречаются и неявные определения терминов, извлечение которых является направлением дальнейшего развития разработанной системы.
Заключение
В статье изложены формальные методы, основанные на теории автоматов, применяемые при построении системы, осуществляющей извлечение явных определений из текстов естественного языка. В основе предложенного решения лежит особый формат представления промежуточных результатов анализа, называемый множеством интерпритаций. Эта структура позволяет удобно хранить альтернативные результаты анализа и исправлять их при необходимости.
Описанная структура данных обрабатывается при помощи недетерминированных автоматов, в терминах которых может быть представлено большинство используемых при анализе текста алгоритмов. Отметим возможность изменять множество интерпретаций в процессе работы алгоритма, при этом сохраняя предыдущие версии. Это позволяет управлять процессом анализа, исправляя результаты работы автомата, не изменяя при этом логику его работы.
Предложенный подход протестирован на задаче извлечения определений терминов из текстов естественного языка для разработки онтологий по предметной области информационной безопасности. В результате было получено решение, извлекающее явные определения из текстов естественного языка. Извлечение производится с полнотой 95 % и точностью 15 %, где под полнотой подразумевается процент распознанных системой определений от общего количества, найденного в текстах человеком, а под точностью -процент ошибочно распознанных определений в выдаче системы, то есть не являющихся определениями в строгом смысле.
Список литературы
1. Власов Д. Ю., Пальчунов Д. Е., Степанов П. А. Извлечение отношений между понятиями из текстов на естественном языке // Вестн. Новосиб. гос. ун-та. Серия: Информационные технологии. 2010. Т. 8, вып. 3. С. 23-33.
2. Пальчунов Д. Е. Решение задачи поиска информации на основе онтологий // Бизнес-информатика. 2008. № 1. С. 3-13.
3. Mahesh K. Ontology Development for Machine Translation: Ideology and Methodology / New Mexico State University, Computing Research Laboratory. Tech. Rep., MCCS96292, 1996.
4. Степанов Ю. С. Методы и принципы современной лингвистики. М., 2000.
5. Сокирко А. В. Реализация первичного семантического анализа в системе Диалинг // Тр. Междунар. семинара «Диалог'2000» по компьютерной лингвистике и ее приложениям, 15 июня 2000 г. Протвино, 2000.
6. Grishman R. Information Extraction // The Oxford Handbook of Computation Linguistics / Ed. by R. Mitkov. Oxford University Press, 2003.
7. Cunningham H. et al. JAPE: A Java Annotation Patterns Engine: 2nd ed. Technical Report CS-00-10. University of Sheffild, Department of Conmuter Science, 2000.
8. КарповЮ. Г. Теория автоматов: Учебник для вузов. СПб.: Питер, 2003. 2008 с.: ил.
9. Пальчунов Д. Е. Определимость предложений языка булевых алгебр с выделенными идеалами // Вестн. Новосиб. гос. ун-та. Серия:: Математика, механика, информатика. 2008. Т. 8, вып. 2. С. 62-75.
10. Пальчунов Д. Е. Моделирование мышления и формализация рефлексии // Философия науки. 2008. № 2 (37). С. 62-99.
11. Белошапкова В. А., Брызгунова Е. А., Земская Е. А. и др. Современный русский язык: Учеб. для филол. спец. высш. учеб. заведений. 3-е изд., испр. и доп. М.: Азбуковник, 1997.
12. Зализняк А. А. Грамматический словарь русского языка. Словоизменение. Около 100 000 слов. М.: Рус. яз., 1997.
Материал поступил в редколлегию 13.05.2013
P. A. Stepanov
PROCESSING AUTOMATION OF NATURAL LANGUAGE TEXTS
That paper discusses processing automation of natural language texts. The paper describes a problem related to the interaction between the modules of automated text analysis systems. On the basis of the automata theory a formal approach to the description of an automated text processing systems has been developed. A solution was suggested that uses a special data structure to store the intermediate results of the analysis. The developed solution has been applied to the problem of extraction of implicit definitions of natural language texts.
Keywords: natural language processing; text analysis; information extraction; extracting definitions.