Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Структура системы синтаксического анализатора текста и используемая методика анализа текста
Разбор текста подразделяется на 4 этапа: 1. Графематический анализ (анализ структуры текста). На данном этапе производится анализ структуры текста, выделяются слова и словосочетания, аббревиатуры, знаки препинания и другие устоявшиеся структуры. 2. Фрагментационный анализ. В предложении выделяются синтаксические единства (фрагменты) больших или равных словосочетанию (синтаксической группе) и устанавливаются иерархии на множестве этих единств . Морфологический анализ. Анализ словообразования. . Синтаксический анализ. Проверка синтаксиса предложений. Разбор на структурные составляющие.
Рис. 2.1. Общая схема модулей ССА и их взаимодействия Для того, чтобы понять важность и необходимость этих шести этапов разбора, рассмотрим их более подробно.
Графематический анализ Общее описание Данный этап генерирует выходную информацию, необходимую для дальнейшей обработки при помощи морфологического, фрагментационного и синтаксического анализаторов. В задачу графематического анализа входят: 1. Разделение входного текста на слова, разделители и т.д. 2. Сборка слов, написанных в разрядку; . Выделение устойчивых оборотов, не имеющих словоизменительных вариантов; . Выделение дат в цифровых форматах; . Выделение Ф.И.О. (фамилия, имя, отчество), когда имя и отчество написаны инициалами; . Выделение электронных адресов; . Выделение предложений из входного текста; . Выделение абзацев, заголовков, примечаний.
Входные и выходные данные На вход графематике подается файл текста в Windows-кодировке. На выходе графематика строит таблицу, состоящую из двух столбцов. В первом столбце стоит некоторый кусок входного текста (выделенный по правилам, о которых мы скажем ниже), во втором столбце стоят графематические дескрипторы, характеризующие этот кусок текста. Например, из текста «Иван спал» будет построена таблица из трех
В первый столбец всегда помещается часть входного текста, если эта часть не является последовательностью из мягких разделителей (пробел, табуляция). В последнем случае используются другие символы, номера которых включены в описание на языке idl.
Графематические дескрипторы Опишем теперь все графематические дескрипторы. У каждого графематического дескриптора есть два названия: кириллическое и латинское. Первое используется во втором столбце графематической таблице, второе внутри программы. Сначала приведем главные дескрипторы, один из которых обязательно должен присутствовать на каждой строке графематической таблицы.
Разновидности дескриптора РЗД
Разновидности дескриптора ЗПР
Разновидности дескриптора ЗПР и РЗД
Разновидности дескриптора ЛЕ и ИЛЕ
Теперь опишем дескрипторы, которые появляются на строке в зависимости от контекста, т.е. они вычисляются не только из текущей строки, но и из номера текущей строки и строк, которые находятся выше и ниже вычисляемой.
Контекстные дескрипторы
Кроме этого, используются дескрипторы, относящиеся к макросинтаксическому анализу (анализу расположения абзацев, заголовков). В макросинтаксическом анализе абзацы, заголовки и т.д. называются условно предложениями (УП). Макросинтаксические дескрипторы ставятся на конце УП в зависимости от типа УП.
Деление на предложения Этот алгоритм работает на графематике, поскольку на результаты его работы опирается макросинтаксический анализ. На вход алгоритма подается два числа 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; Просмотров: 112; Нарушение авторского права страницы