Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Структура системы синтаксического анализатора текста и используемая методика анализа текста



 

Разбор текста подразделяется на 4 этапа:

1. Графематический анализ (анализ структуры текста). На данном этапе производится анализ структуры текста, выделяются слова и словосочетания, аббревиатуры, знаки препинания и другие устоявшиеся структуры.

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

.   Морфологический анализ. Анализ словообразования.

.   Синтаксический анализ. Проверка синтаксиса предложений. Разбор на структурные составляющие.

 

Рис. 2.1. Общая схема модулей ССА и их взаимодействия


Для того, чтобы понять важность и необходимость этих шести этапов разбора, рассмотрим их более подробно.

 

Графематический анализ

Общее описание

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

1. Разделение входного текста на слова, разделители и т.д.

2. Сборка слов, написанных в разрядку;

.   Выделение устойчивых оборотов, не имеющих словоизменительных вариантов;

.   Выделение дат в цифровых форматах;

.   Выделение Ф.И.О. (фамилия, имя, отчество), когда имя и отчество написаны инициалами;

.   Выделение электронных адресов;

.   Выделение предложений из входного текста;

.   Выделение абзацев, заголовков, примечаний.

 

Входные и выходные данные

На вход графематике подается файл текста в Windows-кодировке. На выходе графематика строит таблицу, состоящую из двух столбцов. В первом столбце стоит некоторый кусок входного текста (выделенный по правилам, о которых мы скажем ниже), во втором столбце стоят графематические дескрипторы, характеризующие этот кусок текста. Например, из текста «Иван спал» будет построена таблица из трех

 

Кусок входного текста Графематические дескрипторы
Иван ЛЕ Бб ПРД1
_ РЗД ПРБ
спал ЛЕ бб ПРД2

 

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

 

Графематические дескрипторы

Опишем теперь все графематические дескрипторы. У каждого графематического дескриптора есть два названия: кириллическое и латинское. Первое используется во втором столбце графематической таблице, второе внутри программы. Сначала приведем главные дескрипторы, один из которых обязательно должен присутствовать на каждой строке графематической таблицы.

 

Кир. Название Объяснение Примеры
ЛЕ русская лексема, присваивается последовательностям, состоящим из кириллицы Иван
ИЛЕ иностранная лексема, присваивается последовательностям из латиницы John
РЗД разделитель. «*', '=', '_'
ЗПР знак препинания, присваивается последовательностям, состоящим из одинаковых знаков препинания «.», ' [', ']', ' (', ')', '-', ': ', '; '
ЦК цифровой комплекс, присваивается последовательностям, состоящим из цифр 1234
ЦБК цифро-буквенный комплекс, присваивается последовательностям, состоящим из цифр и букв 34h
??? сложный узел, присваивается последовательностям, не обладающим вышеперечисленными признаками  

 

Разновидности дескриптора РЗД

Кир. Название Объяснение
ПРБ строка пробелов или табуляций
КСТ признак конца строки
ПАР символ параграфа
ПС нулевой символ

 

Разновидности дескриптора ЗПР

Кир. Название Объяснение Примеры
ОТК открывающая скобка ' {', ' [', '('
ЗАК закрывающая скобка '}', ']', ')'
ДЕФ дефис -

 

Разновидности дескриптора ЗПР и РЗД

Кир. Название Объяснение
ДЗПР последовательность одинаковых символов, длина которой больше 20
МНЖ последовательность одинаковых символов, длина которой больше 1

 

Разновидности дескриптора ЛЕ и ИЛЕ

Кир. Название Объяснение Примеры
бб признак того, что все символы лексемы - малые мама
Бб признак того, что первый символ лексемы - большой; Мама
ББ признак того, что все символы лексемы - большие МАМА

Теперь опишем дескрипторы, которые появляются на строке в зависимости от контекста, т.е. они вычисляются не только из текущей строки, но и из номера текущей строки и строк, которые находятся выше и ниже вычисляемой.

 

Контекстные дескрипторы

Кир. Название Объяснение Примеры
НАЧ ставится на начале текста (входного файла), т.е. всегда стоит на нулевой строке таблице. Причем, важно сказать, что нулевая строка таблицы используется как служебная (содержимое первого столбца нулевой строки не входит во входной текст)  
КФР ставится на конце фразы. Концом фразы считается только»; ».  
ПРД1 начало предложения  
ПРД2 конец предложения  
ИМ? признак того, что лексема, возможно, является частьюимени собственного. Присваивается лексеме, начинающейся с большой буквы и не имеющей перед собой символа конца предложения.  
ПП ставится на начале пункта перечисления  
АБЗ ставится на начале абзаца  
ОБ1 ставится на начале оборота типа «во взаимодействии с»
ОБ2 ставится на конце оборота  
ФИ1 ставится на начале Ф.И.О. типа «Иванов И.И.»
ФИ2 ставится на конце Ф.И.О.  
ДТ2 ставится на конце даты  
РЕ1 было использовано для офиц. текстов  
РЕ2 было использовано для офиц. текстов  
ЧПТ1 начало числа с плавающей точкой 111.111
ЧПТ2 конец числа с плавающей точкой  
ЭА1 начало электронного адреса ftp.com.com
ЭА2 конец электронного адреса  
АБ1 начало сокращения и т.п.
АБ2 конец сокращение  

 

Кроме этого, используются дескрипторы, относящиеся к макросинтаксическому анализу (анализу расположения абзацев, заголовков). В макросинтаксическом анализе абзацы, заголовки и т.д. называются условно предложениями (УП). Макросинтаксические дескрипторы ставятся на конце УП в зависимости от типа УП.

 

Кир. Название Объяснение
УП? ставится на конце УП, тип которого не определен
УП ставится на конце простого УП
Заг ставится на конце заголовка
прим ставится на конце УП, заключенного в скобки
УПввод ставится на конце УП, заканчивающегося на двоеточие
Док ставится на нулевой строке графематической таблицы

Деление на предложения

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

Программа ищет конец предложения (ПРД2), а потом после него ищет начало предложения (ПРД1). Алгоритм основывается на следующих постулатах:

1.    Начало текста совпадает с началом первого предложения, конец текста - с концом последнего.

2. Предложение всегда начинается с большой буквы;

.   Предложение не бывает больше одного абзаца.

.   Предложение не может состоять только из знаков препинания.

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

«Мама мыла раму», здесь ПРД1 будет стоять на Мама, а не на открывающей кавычке.

На самом деле, все дальнейшие анализаторы (постморфология, синтаксис) используют в своей работе только помету ПРД2, что означает, что текст разбивается полностью, все строки оказываются охваченными. Помета ПРД1 нужна лишь только для нужд графематики.

Определим вспомогательный примитив IsSentenceEndMark. На вход подается номер строки. Функция возвращает истину, если эта строка содержит символ»? », "! », ».» или многоточие

Определим вспомогательный примитив IsSentenceEndSeq. На вход подается номер строки. Функция возвращает истину в двух следующих случаях:

1.    Если для этой строки верна функция IsSentenceEndMark; и контактно справа нет закрывающей кавычки (если предложение закавычено, закрывающая кавычка входит в это предложение);

2. Если строка является закрывающей кавычкой, а контактно слева стоит строка, для которой верно IsSentenceEndMark.

Программа делает следующее:

1.    Проходит все знаки препинания в начале текста и ставит первому слову помету ПРД1.

2. Пусть i - текущая строка между StartPos и EndPos.

.   Если на строке i стоит помета начала абзаца, тогда нужно пройти назад все пробелы и длинные разделители (ДЗПР) и дойти до конца предыдущего абзаца. Если в конце абзаца (до первого слова) стоит строка, которая удовлетворяет IsSentenceEndSeq, тогда нужно поставить ПРД2 этой строке, иначе нужно поставить ПРД2 на конец предыдущего абзаца.

.   Если на строке i стоит макросинтаксическая помета УП, тогда нужно сделать то же самое, что и в пункте 3, только надо учесть, что помета УП ставится на конце абзаца, а не начале (как в пункте 3).

.   Если до начала текущего предложений стояла открывающая скобка, и текущая строка указывает на слово до соотв. закрывающей скобки, тогда нужно поставить ПРД2 на закрывающую скобку, а текущую строку сместить на ближайшее после закрывающей скобки слово.

.   Если текущая строка удовлетворяет функции IsSentenceEndSeq и не входит в графематические группы (ФИ1-ФИ2, ДТ1-ДТ2 и т.д.) не последним словом, тогда проходим все знаки препинания от текущей строки. Проверяем, что знак препинания, который заканчивает предложения, не должен стоять в самом начале строки. Далее ищем первое слово от текущей строки и считаем его началом нового предложения.

Этот алгоритм работает избыточно, это означает, что он иногда ставит пометы ПРД2 и ПРД1 по многу раз на одной строке. Например, в конце абзаца ПРД2 может быть поставлена по пп 3. 4. и 6.

 

2.3
Фрагментационный анализ

Общие положения

Цель анализа

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

Мотивировка

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

 

Объекты анализа

Входные данные

На вход фрагментационного анализа поступает текст, разбитый на предложения. Каждое предложение разбито на слова и знаки препинания. Каждому слову приписана морфологическая информация (все возможные пары < грамматическая характеристика, лемма>, которым удовлетворяет слово. Подробнее смотри 3.4). При некоторых словах имеются графематические пометы пометы: начало / конец числового, букво-числового комплекса. Подробнее в 3.2.

Выходные данные

На выходе - текст, состоящий из предложений, разбитых на линейно неразрывные фрагменты. На фрагментах установлена иерархия, т.е. про каждый фрагмент известно, какие фрагменты в него непосредственно вложены и в какие он непосредственно вложен. Каждому фрагменту приписано множество типов и список союзов и союзных слов, входящих в фрагмент.

Структура фрагмента

Структура фрагмента устроена следующим образом:

Тип фрагмента

Глагол в личной форме, Краткое причастие, Краткое прилагательное, Предикативное слово, Причастие, Деепричастие, Инфинитив, Вводное слово, Пустыха.

Левая граница, Правая граница

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

Союз

Неподчинительный союз, Подчинительный союз.

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

«Который», «Чей»

Наличие в фрагменте лексемы чей, какой или который.

 

Алгоритм работы анализа


Поделиться:



Последнее изменение этой страницы: 2020-02-17; Просмотров: 89; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.026 с.)
Главная | Случайная страница | Обратная связь