Помощь в написании студенческих работ
Антистрессовый сервис

Разработка алгоритма работы синтаксического анализатора текста, а также базы данных синтаксических правил русского языка

КурсоваяПомощь в написанииУзнать стоимостьмоей работы

Порядок слов: Линейное расположение слов в предложении играет особую роль в изолирующих языках (китайский) и является основным средством для выражения синтаксических отношений в этих языках. Наряду с селективными признаками порядок слов имеет доминирующее значение в проектировании синтаксических анализаторов языков с бедной морфологией (английский). Во многих системах английского синтаксиса… Читать ещё >

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

1. Фундамент синтаксического анализа

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

1. Словоизменительные морфологические средства. Для языков с развитой морфологией, каким является русский, - это основной способ материализации синтаксических связей. Словоформа w1 морфологически зависит от словоформы w2 по морфологической категории C, если граммема (значение грамматической категории) g категории С, характеризующей w1, выбирается в зависимости от некоторого свойства f словоформы w2. Словоформа w2 называется контролером морфологической зависимости, аw1 - ее мишенью.1 Другими словами, один элемент предложения подстраивается под другой, т. е. принимает грамматическую форму продиктованную вторым элементом. Показателем морфологической зависимости в русском служит флексия, т.к. граммемы в русском обычно приписаны флексии, что позволяет в некоторых случаях обнаружить зависимость между двумя словоформами, отсутствующими в словаре, (например, «глок-ая куздр-а»). Если категория C, по которой наблюдается морфологическая зависимость, выражается в вершине, налицо вершинное маркирование, если же эта категория выражается в зависимой словоформе - зависимостное маркирование.1 В русском языке граммемы многих форм омонимичны ('ночи' = [[рд., дт., пр., ед.], [им., вн., мн.]] - омонимия числа и падежа), что создает определенные трудности в процессе анализа. Неоднозначность граммем в ходе автоматического синтаксического анализа иногда приводит к возникновению синтаксической омонимии и построению альтернативного синтаксического варианта (графа синтагм). Падежная омонимия с номинативом часто приводит к неоднозначному определению правой границы сегмента и, как следствие, к построению альтернативной структуры сегментации (графа сегментов). Парадокс или скорее взаимовлияние двух уровней анализа морфологического и синтаксического состоит в том, что граммема, являясь эффективным средством поиска морфологической зависимости, которая служит одним из способов реализации синтаксического отношения, может быть однозначно проинтерпретирована только вследствие фиксации этого отношения.

2. Селективные признаки: Классифицирующие (селективные) признаки приписываются лексемам в грамматическом словаре, в отличие от граммем, которые вычисляются, исходя из парадигматического класса, для каждой словоформы на этапе морфологического анализа. Наиболее важной для синтаксиса является классификация лексем по категориальным (частеречным) признакам: существительное, глагол, прилагательное, и т. д. Существует и более дробное деление на субкатегориальные признаки внутри частей речи, так существительные можно разбить на два класса: одушевленные и неодушевленные. Категориальные признаки задают потенциальных участников синтаксической связи и определяют в большинстве случаев вершину в структуре, а также предопределяют понятия управления и согласования. Одушевленность и неодушевленность в русском языке служит контролером согласования для некоторых форм мужского рода или во множественном числе - «вижу большого [мр., ед., вн.] кролика [мр., ед., вн.] (*большой [мр., ед., вн.] кролика [мр., ед., вн.])' ~ 'вижу большой [мр., ед., вн.] стол [мр., ед., вн.] (*большого [мр., ед., вн.] стол [мр., 23 ед., вн.])' или 'вижу четкие фотомодели» ~ «вижу красивых фотомоделей» (пример Е. Ножовой).

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

4. Знаки препинания (операторы): запятая, тире, точка, вопросительный знак, и т. д. Это средство не выделяется в теоретических описаниях, так как теоретический синтаксис имеет дело больше с устным языком, чем с письменным, к тому же не все письменные языки, в отличие от русского, имеют жесткие правила расстановки знаков препинания. В первую очередь, операторы определяют границы, как сегментов, так и всего предложения. Тире является выражением эллиптированного элемента предложения и часто используется в стратегиях поиска неморфологического предиката. Анализ бифункциональности оператора (когда, например, оператор является одновременно и правой границей сегмента, и оператором сочинения слов) - одна из самых трудных задач сегментации, которая и задает рекурсивный характер как грамматических стратегий анализа, так и методов программной реализации. В теоретических работах принято выделять интонацию как средство синтаксического анализа. Действительно, операторы в письменном тексте являются частичным выражением подмножества синтаксических случаев, характеризующихся интонацией в устном языке. В примере А. Кибрика предложение «В этой гимназии учился впоследствии всемирно известный киноартист», произнесенное с падением интонации на «впоследствии» имеет синтаксическую связь «учился Ж впоследствии', а при отсутствии падения тона — 'известный Ж впоследствии» [А. Кибрик, 2001]. Такие случаи применения интонации для различения синтаксических связей не фиксируются операторами в письменной форме, поэтому идеальный синтаксический процессор должен решить эту проблему через понятие синтаксической омонимии, построив две равноправных синтаксических структуры предложения.

5. Порядок слов: Линейное расположение слов в предложении играет особую роль в изолирующих языках (китайский) и является основным средством для выражения синтаксических отношений в этих языках. Наряду с селективными признаками порядок слов имеет доминирующее значение в проектировании синтаксических анализаторов языков с бедной морфологией (английский). Во многих системах английского синтаксиса порядок слов задает направление поиска хозяина или слуги для каждого класса лексем и типа связи [D. Sleator, D. Temperley, 1991]. Для русского языка это средство анализа имеет второстепенное значение, хотя и применяется в ряде случаев для установление синтаксических связей или оценки омонимичных структур предложения. Несмотря на свободный порядок слов в русском, некоторые синтаксические зависимости имеют обязательным критерием выделения жесткий линейный порядок: генитивное определение должно следовать за определяемым словом ('ножка стол-а', 'сын отц-а'); предлог предшествует существительному ('на стол-е', 'у отц-а'); в 90% случаев определение, выраженное прилагательным или местоименным прилагательным, стоит до существительного (['большой красивый стол', 'седой отец'] ~ ['впечатление необычное']). Порой статистическое расположение синтаксических вершин и их зависимых позволяет разделить все типы синтаксических отношений на три типа: левоветвящиеся (прилагательное существительное: 90%), правоветвящиеся (генитивное определение: 100%) и смешанные (слабые актанты глагола: 50%/50%). Подобные эмпирические распределения могут эффективно использоваться в прикладных моделях. В лингвистической типологии эмпирически установлена универсальная классификация языков мира: языки левого (японский) и правого ветвления (русский и английский). Правда, эта классификация, в основном, строится на статистическом распределении фразовых категорий в линейном порядке предложения, к которым относятся именные (NP), предложные группы (PP) и клаузы (некоторые виды сегментов: придаточные определительные, причастные обороты, etc.). Другая синтаксическая классификация оперирует линейным порядком основных членов предложения: подлежащее (subject), сказуемое (verb) и дополнение (object). Английский относится к языкам Subject Verb Object (SVO) порядка, для русского SVO порядок является статистически доминирующим и наиболее естественным, но грамматически не 25 единственно возможным. В английском предложении `The farmer kills the duckling' `Фермер убивает утенка' (пример Э. Сепира [Э. Сепир, 1993]) любое изменение порядка слов ведет к изменению смысла всего высказывания ('The duckling kills the farmer' 'Утенок убил фермера.') или к потере грамматической правильности ('* The farmer the duckling kills.'Фермер утенка убил.'), то в русском переводном эквиваленте (`Фермер убивает утенка') возможен 3! перестановок, сохраняющих как общий смысл высказывания, так и грамматическую правильность, т. е. в русском варианте данного предложения возможны любые комбинаторные порядки: SVO, SOV, OVS, и т. д. Таким образом, линейный порядок предложения в автоматическом синтаксическом анализе используется как указатель наиболее вероятного направления поиска слуги или хозяина, и только в редких случаях как обязательный критерий установления синтаксической зависимости.

2. Разработка системы синтаксического анализа текста

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Кусок входного текста

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

Иван

ЛЕ Бб ПРД1

_

РЗД ПРБ

спал

ЛЕ бб ПРД2

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

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

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

Кир. Название

Объяснение

Примеры

ЛЕ

русская лексема, присваивается последовательностям, состоящим из кириллицы

Иван

ИЛЕ

иностранная лексема, присваивается последовательностям из латиницы

John

РЗД

разделитель.

«*', '=', '_'

ЗПР

знак препинания, присваивается последовательностям, состоящим из одинаковых знаков препинания

«.», ' [', ']', ' (', ')', '-', ':', ';'

ЦК

цифровой комплекс, присваивается последовательностям, состоящим из цифр

ЦБК

цифро-буквенный комплекс, присваивается последовательностям, состоящим из цифр и букв

34h

???

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

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

Кир. Название

Объяснение

ПРБ

строка пробелов или табуляций

КСТ

признак конца строки

ПАР

символ параграфа

ПС

нулевой символ

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

Кир. Название

Объяснение

Примеры

ОТК

открывающая скобка

' {', ' [', '('

ЗАК

закрывающая скобка

'}', ']', ')'

ДЕФ

дефис

;

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

Кир. Название

Объяснение

ДЗПР

последовательность одинаковых символов, длина которой больше 20

МНЖ

последовательность одинаковых символов, длина которой больше 1

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

Кир. Название

Объяснение

Примеры

бб

признак того, что все символы лексемы — малые

мама

Бб

признак того, что первый символ лексемы — большой;

Мама

ББ

признак того, что все символы лексемы — большие

МАМА

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

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

Кир. Название

Объяснение

Примеры

НАЧ

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

КФР

ставится на конце фразы. Концом фразы считается только"; «.

ПРД1

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

ПРД2

конец предложения

ИМ?

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

ПП

ставится на начале пункта перечисления

АБЗ

ставится на начале абзаца

ОБ1

ставится на начале оборота

типа «во взаимодействии с»

ОБ2

ставится на конце оборота

ФИ1

ставится на начале Ф.И.О.

типа «Иванов И.И.»

ФИ2

ставится на конце Ф.И.О.

ДТ2

ставится на конце даты

РЕ1

было использовано для офиц. текстов

РЕ2

было использовано для офиц. текстов

ЧПТ1

начало числа с плавающей точкой

111.111

ЧПТ2

конец числа с плавающей точкой

ЭА1

начало электронного адреса

ftp.com.com

ЭА2

конец электронного адреса

АБ1

начало сокращения

и т.п.

АБ2

конец сокращение

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

Кир. Название

Объяснение

УП?

ставится на конце УП, тип которого не определен

УП

ставится на конце простого УП

Заг

ставится на конце заголовка

прим

ставится на конце УП, заключенного в скобки

УПввод

ставится на конце УП, заканчивающегося на двоеточие

Док

ставится на нулевой строке графематической таблицы

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Цель анализа

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

Мотивировка

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Правила в фрагментационном анализе

В фрагментационном анализе можно выделить три группы правил:

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

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

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

Порядок применения правил

Начальное разбиение предложения

Расстановка границ

По всем знакам препинания и сочинительным союзам без запятой проводятся границы фрагментов. Исключения:

1. Граница не проходит по тем знакам препинания, которые входят в состав определенных графематическим анализом единиц (сокращения, дробные числа, букво-числовые комплексы и др.);

2. В том случае, если несколько знаков препинания идут подряд, по ним проходит одна граница. (Не строится фрагментов, не содержащих ни одного слова).

Правило о двух предикатах в одной клаузе

Список глаголов ГС = {давать, становиться, оказаться}

Список значений частей речи, которые могут принимать предикаты ПС = {VERB (гл. в личн. форме), ADVERB_PARTICIPLE (деепричастие), ADJ_SHORT (кр. прил.), PARTICIPLE_SHORT (кр. прич.), PREDK (предикатив)}

В одной клаузе не может находиться две словоформы, все омонимы которой ПС & ГС. В случаях, когда возникает такая ситуация (опечатка или ошибка морфологии), перед вторым предикатом восстанавливается запятая. Данное правило работает внутри правила расстановки границ и учитывает информацию об аналитических формах. Примеры для клауз исключений, содержащих словоформы из ГС: «давайте будем дружить», «Ему там могло бы за это время стать совсем скучно» и т. д.

Алгоритм интерпретации клауз с тире и восстановления тире в клаузах с нулевым Копулом, написанный для Синтаксиса

Правило 1.

Если мы видим тире, то идем от него направо и налево. Пусть С1 — клауза слева от тире, а С2 — клауза справа. Осуществим следующую проверку: ищем в С1 и в С2 глагол в личной форме или предикатив, если находим, то алгоритм обрывается.

Правило 2.

Если непосредственно слева от тире стоит запятая, (дом, построенный на холме, — большой), то это говорит о конце причастного оборота (P1) либо деепричастного, либо оборота с вершиной «который», либо вводного слова, мы ищем его начало (вершины «причастие», «деепричастие», «который», «вводное слово»), и группу (слово), которая им управляет (R1). Затем мы объединяем R1, P1, C2 в одну клаузу «тире».

Правило 3.

Восстановление тире.

Работа производится на этапе первоначальной фрагментации. Мы имеем первоначальный фрагмент.

Если фрагмент не «Пустыха», то мы выходим из работы алгоритма. Если фрагмент имеет вариант «Пустыха», то мы все равно выходим из работы алгоритма.

Алгоритм не восстанавливает тире в клаузах с двумя инфинитивами («жить все равно что родине служить») по той причине, что случаев, требующих восстановление тире, много меньше, чем случаев, где восстановленное тире — ошибка («Он еще поигрался с этой мыслью, прежде чем позволить ей удалиться.»)

1 случай (тип клаузы ТИРЕ) Определяем в составе:

Таблица 1

Первое слово

Второе слово

Пример

С, им.

С/МС, им.

«маша красавица»

С, им.

П, им

«Маша красивая»

МС, им

С/МС, им

«Она красавица»

МС, им

П, им

«Она красивая»

«это»

С/МС, им.,

«Это Маша»

«у"+С/МС, рд

С/МС, им

«У соседей ссора»

Дополнительные условия:

1. Прилагательное может стоять только справа от существительного или местоимения.

2. Существительное с большой буквы может стоять только слева (кроме случаев с «это» и «у+рд»).

3. Все части речи неомонимичны, в том числе не должно быть падежной омонимии (типа «глазок» — С, ед. им., или С, мн. рд), за исключением случая омонимии С, им, ед, но, С, вн, ед, но (стол — стол) и омонимии С ед, мн, им (дело-дела). В противном случае алгоритм обрывается.

4. Тире не может восстанавливаться непосредственно перед запятой и другими знаками препинания.

5. Тире не восстанавливается, если в одной из клауз есть инфинитив, даже если он омоним («вести свое хозяйство на крестьянский лад»). Если состав фрагмента определен согласно таблице 1, то во фрагменте восстанавливаем тире и тип фрагмента становится «ТИРЕ». Если мы имеем «это» + С им, ср" и хотя бы еще один претендент на восстановление тире по вышеуказанным правилам («это окно белое»), то мы после «это» тире не восстанавливаем.

6. Если в клаузе есть предлог («покушение на жизнь», «в стол рукопись»), то тире не восстанавливается, за исключением предлога «у» («Ссора у соседей»)

7. В случаях, требующих восстановления тире, последнее восстанавливается после первого слова («Покушение — по-человечески жизнь.»)

8. В клаузе не может восстанавливаться больше одного тире. В случае, если одно тире уже есть или восстановилось, то процедура обрывается. (тире не строится после «это» в примере «Мир — это сон»)

К МС мы приравниваем здесь также местоименные прилагательные «один», «каждый», «другой», «тот».

2 случай (тип клаузы КОПУЛ)

Таблица 2

С, им. +

как

словно

будто

что

точно

как будто

С, им.

«Иван что герой»

Корпус примеров.

Там, где есть тире, Синтаксис именует клаузу «ТИРЕ», где тире нет, там оно восстанавливается и Синтаксис именует клаузу «ТИРЕ». Примеры, выделенные жирным шрифтом, не обрабатываются в соответствии с указанными после них правилами.

«Петя — человек»

«вести свое хозяйство на крестьянский лад» (см правило 5)

«жить все равно что родине служить» (см правило 3)

«дом, построенный на холме, — большой»

«Вчера в лесу мы работали старой пилой, а сегодня во дворе — новой». Определение типа фрагмента Типом фрагмента может быть ровно одно значение из списка. Начиная с первого значения из списка, по порядку проверяется есть ли в данном фрагменте слово этой части речи. Если такое слово найдено и у него нет омонимов других частей речи, то дальнейшие поиски прекращаются и тип фрагмента — значение, на котором остановились. Если для данного значения из списка не нашлось неомонимичных (с точностью до части речи) подходящих слов, но есть омонимичные, тогда для фрагмента не устанавливается однозначно тип, а постулируется несколько вариантов, которые либо уничтожатся на уровне семантики, либо останутся в выходной структуре.

Пример: на этот раз она не права Для этого фрагмента есть два варианта:

1. Тип фрагмента — краткое прилагательное (права — ж.р., ед. ч. от правый)

2. Тип фрагмента — пустыха (права — и.п./в.п. мн. ч.; р.п. ед. ч. от право) Пример: мои права забрали в милиции Для этого фрагмента тип определяется однозначно, т.к. забрали — неомонимичный глагол в личной форме. Глагол в личной форме стоит в списке на первом месте, дальнейшие поиски возможных вершин фрагмента не ведутся.

Алгоритм выявления ВВОДНЫХ

Проверка клаузы на наличие вводных слов.

Если найдено слово из списка 1 вводных слов (см. ниже), при этом оно ограничено с обеих сторон какими-либо знаками препинания из следующих:

1. запятая,

2. точка,

3. вскл. знак,

4. вопр. знак,

5. точка с запятой,

6. тире,

7. двоеточие,

8. начало предложения (Бб),

9. конец предложения,

10. кавычки.

То это слово «ВВОДН»

Дополнительное правило:

Если слева от вводного слова стоит сочинительный союз или частица, не отделенные от него знаком препинания, то они включаются в клаузу «ВВОДН». («Она двинулась в путь, и наверно, быстро бы достигла цели, если бы не гроза.»)

Определение союзов и союзных слов фрагмента

Сначала определяется, нет ли такого сложного союза (из файла оборотов obor. dic), начало которого (слово с пометой Об1) находится в соседнем слева фрагменте, а конец (помета Об2) в данном. (Это такие сложные союзы, которые разделяются запятой, часто имеют варианты, при которых запятая стоит перед всем союзом — для того, чтобы; с тем, чтобы; потому, что и др.) Если такой союз есть, то он относится к данному фрагменту, т. е. к тому, в котором заканчивается. Далее все слова фрагмента, у которых есть омоним — союз, считаются союзами данного фрагмента. Эта процедура несовершенна и требует доработки с учетом индивидуальных особенностей отдельных союзов.

Работа с фрагментами

В правилах обработки фрагментов может использоваться как стандартная информация (см. структура фрагмента), так и сведения об отдельных словах.

Правила, устанавливающие иерархию

Здесь мы рассмотрим правила, которые один фрагмент вкладывают в другой.

1) Алгоритм вкладывания «ВВОДН»

Процесс вкладывания, а не слияния клаузы «ВВОДН» происходит на синтаксисе до объединения всех групп «ГЛ_личн», «КР-прил» и др. Клауза «ВВОДН» вкладывается в другие клаузы слева или справа следующим образом:

1. Если «ВВОДН» — первая клауза в предложении. Если с правой стороны от «ВВОДН» стоит Подчиненное предложение любого типа («ГЛ_ЛИЧН когда», «Наверно, когда пошла домой, она что-то забыла.»), то «ВВОДН» в него не вкладывается, в остальных случаях происходит вложение.

2. Если после следующих слов, имеющих омоним «ВВОДН», стоит подчинительная клауза со «что» («бесспорно, что это так»), то омоним «ВВОДН» убивается и ставится «ПРЕДК»:

3. Если «ВВОДН» — последняя клауза в предложении. В таком случае «ВВОДН» всегда вкладывается в левую клаузу.

4. Если «ВВОДН» ограничено с одной стороны запятой, а с другой другим знаком препинания или запятой и еще одним знаком препинания, то «ВВОДН» вкладывается в клаузу со стороны запятой безотносительно к иерархическому статусу оной. («- Не знаю, — прошептал Врумфундель, — наверно, наши мозги слишком натренированы, Маджиктиз.» «Убийца потерял что-то — наверно, пальто.»," - Да нет, конечно, — вздохнул Зафод.")

5. Если обе клаузы слева и справа от «ВВОДН» имеют союз, то клауза «ВВОДН» вкладывается в левую клаузу независимо от иерархии. («И пошла Маша домой, наверно, а не в гости.»)

6. Если обе клаузы слева и справа без союзов и если в составе клаузы «ВВОДН» имеется союз или частица («Она пошла в гости, приготовив ужин, и наверно, поев.»), то клауза «ВВОДН» вкладывается в правую клаузу независимо от иерархического уровня последней, за исключением случаев конца предложения и других знаков препинания с правой стороны, кроме запятой.

Имеет место следующая иерархия:

1. ГЛ_ЛИЧН («Она, наверно, пошла гулять», «Зеленые, красные и сиреневые облака, наверно, плыли над нами.», «Какую, наверно, она возбуждает зависть у других!» «Такого царственного существа, наверно, больше нигде не найдешь.») // но: Я думаю, наверно, наши мозги слишком натренированы.

2. ПРЕДК («Возможно, конечно, наши мозги слишком натренированы.», «Это, наверно, интересно»)

3. КР_ПРИЛ («Она, наверно, красива»)

4. КР_ПРЧ («Оттого, наверно, наши мозги слишком натренированы.»)

5. ДПР («Она, приготовив, наверно, ужин, пошла в кино»)

6. ПРЧ («Она, строящая, наверно, дом, умна», «Дом, наверно, строящийся рабочими.»)

7. ИНФ («Нам, наверно, уходить?»)

8. СРАВН («Ему, наверно, было немногим больше двадцати лет.»)

9. ПУСТЫХА («Дом, наверно, который построил Джек, развалился.»)

10. ВВОДН («- Конечно, конечно, — сказал Зафод.», «Я, конечно, конечно, с тобой согласен.» «Она пришла, конечно, наверно, министр ее примет» или «Она пришла, конечно, и конечно же, министр ее примет»)

Вывод: Чем меньше номер у типа клаузы, тем больше связывающей силы она имеет, но иерархия не работает, если клауза имеет союз. («Стена джунглей, тянувшаяся покуда хватало глаз и, наверно, еще на добрых две тысячи миль.», «Если это был и ты, наверно, ты не прав.»), хотя «Но у них, наверно, по всему лесу рыщут разведчики.», «Это была, наверно, только приписка.»

1.1) Дополнительные правила объединения клауз после вкладывания «ВВОДН»:

Если правая клауза имеет сочинительный союз, то объединения клауз после вкладывания «ВВОДН» не происходит.

а) Если мы имеем линейную цепочку «Пустыха», «ВВОДН», «Х», где «Х» — любая из групп выше по вышеприведенной иерархии («это, конечно, здорово»), чем «Пустыха», то «Пустыха» присоединяется к получившейся клаузе после того, как ВВОДН" вольется в правую от себя клаузу.

б) Если мы имеем цепочку «Х», «ВВОДН», «Пустыха», где «Х» — любая из групп выше по вышеприведенной иерархии, чем «Пустыха» («На этот вот момент, конечно, главная из новостей — пройдоха Президент.»), то она («Пустыха») присоединяется к получившейся слева клаузе после вливания «ВВОДН» только в том случае, если

1) не имеет союза перед собой, («Они пошли, наверно, в лес, а затем решили остановиться.»)

2) если она является последней клаузой в предложении или после стоит («ГЛ_личн» || «КР_ПРИЛ» || «КР_ПРЧ» || «ПРЕДК») без подчинительного союза («Пойдем, наверно, в кино.»)

в) Если с одной стороны от «ВВОДН» (В1) стоит еще одна «ВВОДН» (В2), а с другой другая клауза Х, то В1 и В2 вкладываются в клаузы в соответстсвии с иерархией. Мы отказались от правила первичного объединения двух «ВВОДН» ввиду множества контр примеров типа «Она пришла, конечно, наверно, министр ее примет» или «Она пришла, конечно, и конечно же, министр ее примет», где они относятся к разным клаузам.

Общий корпус примеров на вкладывание «ВВОДН» (подчеркнутый курсив — противоречит правилу):

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

«Такого царственного существа, наверно, больше нигде не найдешь.»

«Убийца потерял что-то — наверно, пальто.»

«Я все любил: и зиму, конечно, и весну.»

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

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

3) Фрагмент со словами который, какой, чей Если в соседнем левом фрагменте есть существительное или местоимение, совпадающее с который (какой, чей) в роде и числе, данный фрагмент вкладывается в соседний левый.

4) Фрагмент с союзом что или чтобы Фрагмент с подчинительным союзом что или чтобы с вершиной не «пустыха», не «вводное слово», не «инфинитив» (если союз — что) вкладывается в соседний левый фрагмент с вершиной не «пустыха», не «вводное слово», не «инфинитив» (если в нем нет союза чтобы).

5) Деепричастный оборот (применяется к фрагментам с типом деепричастие) Фрагмент с вершиной — «деепричастие» вкладывается в соседний левый, если у того вершина — глагол в личной форме, иначе — в соседний правый, если у него вершина — глагол в личной форме, нет подчинительных союзов.

Правила, объединяющие фрагменты

1) Правило присоединения фрагментов типа «пустыха» к фрагменту с предикатной вершиной Если есть цепочка «пустых», разделенная либо запятыми, либо сочинительным союзом без запятой, и слева от первой «пустыхи» стоит фрагмент не «пустыха» и не «вводное слово», тогда с этим фрагментом объединяй всю цепочку. Если с этой цепочки начинается предложение или перед ней стоит точка с запятой или двоеточие, а справа от этой цепочки стоит фрагмент не «пустыха» и не «вводное слово» и при этом без подчинительных союзов, тогда с этим фрагментом объединяем всю цепочку.

Пример: Я знаю Петю, Васю.

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

2) Правила для объединения разорванных фрагментов и поиска слова, управляющего вложениями в них присубстантивных фрагментов.

Работают после анализа сочинения.

Ситуации правил ищутся в предложении справа налево.

Группа правил (4 Правила) соединения

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

1.2 фрагментов с подлежащим и без ПРЕД в начале предложения или фрагментов с подчинительным союзом и подлежащим с фрагментом — «пустыхой» или фрагментом с ПРЕД.

Что: {Фрагмент-k (первый в предложении* или с подчинит. союзом и в нем нет сущ в именит. п., нет ПРЕД и в него включено обособленное согласованное определение)+(фрагмент-k+i с ПРЕД) или

{Фрагмент-k (первый в предложении* или с подчинительным союзом и в нем нет существительного в им. п и нет ПРЕД)+ (фрагмент-k+i с ПРЕД и со включенным в него деепричастным оборотом)}

Строим: соединяем фрагменты k и k+i в один Примеры: …когда на столе, покрытом скатертью, они расставили тарелки…

…если, решая задачу, он ошибся,… Вчера, решая задачу, он ошибся…

На столе, покрытом скатертью, стояли тарелки.

Что: фрагмент-k: первый в предложении* или с подчинит. союзом и в нем нет сущ. в им. п и нет ПРЕД)+ (фрагмент k+i с подчинительным союзом) + фрагмент k+i+n: первый фрагмент справа — не придаточноедеепричастный оборот обособленное определение) Строим: фрагмент-k объединить с фрагментом k+i+n в один.

Что: {Фрагмент-k (первый в предложении или с подчинит. союзом, без предиката и с сущХ или с группой, вершина которой — сущХ: существительное, или местоимение, или колич. числ в им. п. или с сущХ: группой сочиненных сущ или групп — в им. падеже, в который вложено согласованное определение или фрагмент с который) + фрагмент k+i с ПРЕД} или {Фрагмент-k (первый в предложении или с подчинит. союзом, без ПРЕД и с сущХ) + (фрагмент-k+i с ПРЕД и вложенным фрагментом с деепричастием)}

Условия: сущХ согласуется с ПРЕД.

Строим: фрагмент-k объединить с фрагментом-k+i

Примеры: Большинство мальчиков, игравших во дворе весь день, уже ушли домой.

Когда он, пытаясь решить задачу, сделал чертеж, пошел дождь.

Он увидел, что на столе, над которым висела лампа, были горой навалены учебники.

Что: (Фрагмент-k: первый в предложении или с подчинительным союзом, без ПРЕД и с сущХ) + (фрагмент-k+i: ближайщий без подчинительного союза с ПРЕД)}

Условия: сущХ согласуется с ПРЕД Строим: фрагмент-k и фрагментК+1 сливаем в один фрагмент.

Примеры: Город, где он никогда не был, казался ему уродливым.

Город, где он, когда учился, жил, был ему дорог. Город, где башня, когда она строилась, сгорела, был ему дорог.

Алгоритм определения хозяина присубстантивного фрагмента.

Правило ХС-1.

Что: фрагмент-k + (фрагмент-k+1 с где чей кто когда куда откуда Условия: во фрагменте-k есть СУЩ: существительное со слугою — местоим. прил. (тот, такой, каждый, всякий, любой, некоторый,)

Строим: СУЩ — хозяин вложенного фрагмента.

Примеры:тот город, где он жил, расположен… тот город, где он жил, расположен.

(Если в то время тот день, когда он…, приедет его брат… в том городе, куда откуда он едет.,

Правило ХС-2

Что: фрагмент-k + фрагмент-k+1 с кто или чей

Условия: во фрагменте-k контактно к фрагменту-k+1 есть МЕСТ: местоименное сущ: тот, каждый, всякий, любой, все, никто, кто-нибудь, кто-то, кое-кто, любой, любая прочие Строим: ближайшее МЕСТ — хозяин фрагмента-k+1

Примеры:…тот, кто этого не знает, не решит… с каждым, чьими вычислениями они пользовались, договориться было бы…

Правило ХС-3

Что: фрагмент-k + фрагмент-k+1 со что (в любой форме) Условия: во фрагменте-k контактно к фрагменту-k+1 есть МЕСТ: все, ничто, что-нибудь, что-то, кое-что, Строим: МЕСТ — хозяин вложенного фрагмента.

Примеры: что-то, что было им важно, они не знали Правило ХС-4.

Что: фрагмент-k + (фрагмент-k+1 со что, в котором нет сущ. в им. п.

Условия: непосредственно слева от фрагмента со что стоит сущ. (или группа с вершиной-сущ), согласующееся с ПРЕД вложенного фрагмента Строим: это сущ — хозяин фрагмента-k+1

Примеры:..стол, что стоялстоит у окна, был покрыт… об истории, что была тогда рассказана, он ничего не знал…

Правила построения фрагмента необособленного согласованного определения

Правила формирования групп с прилагательнымпричастием в препозиции к существительному — вершине со вставлениями (=НСО) и ПГ, где предлогу подчинен НСО.

Анализирует:

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

2. предложные группы со вставлениями между предлогом и его слугою вложений, задаваемые ситуациями п. 1 (на покрытом скатертью столе).

Правило 7 для анализа именной группы со вложениями ПГ Что: цепочка (прилагательное или причастие)л — ПГ — (прил_сущ. или одиночное существительное)n.

Условие: (прилприч)л согласуется по числу и падежу, а в ед. ч. — по роду с (прил_сущ. или одиночным сущ.)n.

Строится: 1. группа (прилприч.)л + ПГ, где (прилприч)л — вершина.

2. группа (прилприч)л + (прил_сущ. или один. сущ.)n с вершиной — существительным.

Примеры: удобным по всем показателям новым методом…,… готовый к новому большому и очень трудному походу молодой воин…

Правило 8 для анализа группы прил-сущ со вложениями между вершиной и прилагательным причастием — слугою других групп прил-сущ Что: цепочка (прилагательное причастие)л + (группа прил_сущ. или одиночное существительноеместоимение)i +(прил_сущ. или одиночное сущ.)n

Условия:

1. (прил. или прич)к согласуется по падежу и числу с (прил_сущ или одиночным сущ.)n

2. (группа прил_сущ или одиночное существительноеместоимение)i не в неомонимичном им. падеже.

Строится:

1. группа (прилагательноепричастие)л + (прил_сущ. или одиночное существительное)i с вершиной — прилагательным причастием)к.

2. группа (прилагательноепричастие)i + (прил_сущ или одиночное сущ.)n с существительным — вершиной.

Примеры:… видящему всех псу, строящим высокие дома англичанам Правило 10 для построения ПГ с именными группами, построенными по правилам 7−9.

Что: цепочка предлог+НСО Условие: предлог может управлять одним из падежей вершины НСО.

Строится: группа предлог + НСО, где предлог — вершина.

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

2.3.4 Взаимодействие с синтаксическим анализом

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

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

2. При вложении фрагмента в левоили правостоящий фрагмент, происходит перемножение типов вкладываемого фрагмента на синтаксические варианты главного фрагмента. Каждый омоним типа вкладываемого фрагмента представляется как юнит (см. синтаксис) и добавляется в начало или конец синтаксического варианта.

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

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

2.4 Морфологический анализ

синтаксический морфологический текст графематический

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

2.4.1 Структура морфологического словаря

Морфологический словарь, или лексикон, содержит все словоформы одного языка, в нашем случае русского.

2.4.2 Русский морфологический словарь

Русский морфологический словарь базируется на грамматическом словаре А.А. Зализняка[50]. Включает на данный момент 161 тыс. лемм.

При лемматизации для каждого слова входного текста выдается множество морфологических интерпретаций следующего вида:

· морфологическая часть речи;

· набор общих граммем (которые относятся ко всем словоформам парадигмы слова).

· множество наборов граммем.

Ниже мы приводим полный перечень русских частей речи:

Часть речи в системе

Пример

Расшифровка

C

мама

существительное

П

красный

прилагательное

МС

он

местоимение-существительное

Г

идет

глагол в личной форме

ПРИЧАСТИЕ

идущий

причастие

ДЕЕПРИЧАСТИЕ

идя

деепричастие

ИНФИНИТИВ

идти

инфинитив

МС-ПРЕДК

нечего

местоимение-предикатив

МС-П

всякий

местоименное прилагательное

ЧИСЛ

восемь

числительное (количественное)

ЧИСЛ-П

восьмой

порядковое числительное

Н

круто

наречие

ПРЕДК

интересно

предикатив

ПРЕДЛ

под

предлог

СОЮЗ

и

союз

МЕЖД

ой

междометие

ЧАСТ

же, бы

частица

ВВОДН

конечно

вводное слово

Граммема — это элементарный морфологический описатель, относящий словоформу к какому-то морфологическому классу, например, словоформе стол с леммой СТОЛ будут приписаны следующие наборы граммем: «мр, ед, им, но», «мр, ед, вн, но». Таким образом, морфологический анализ выдает два варианта анализа словоформы стол с леммой СТОЛ внутри одной морфологической интерпретации: с винительным (вн) и именительным падежами (им).

Показать весь текст
Заполнить форму текущей работой