Синтаксический анализатор естественного текста на русском языке

  Разработчик: Ермолаев Дмитрий Сергеевич  
 

Описание

 
На главную страницу
Синтаксический анализатор естественного текста на русском языке
 

Cинтаксический анализатор предложений и текста русского языка предназначен для синтаксического анализа больших предложений, например, формул изобретений, которые могут содержать по 200 и более слов. Так же данный синтаксический анализатор пригодится юристам для выявления точности выражения смыслов в предложениях на естественном языке. Например, в одном из договоров я встретил такую фразу: “об этом уведомляет покупатель изготовителя в течении недели.”. Здесь человек, составляющий договор, имел ввиду что “покупатель (делает)уведомляет (кого)изготовителя”. Но на самом деле смысл предложения получился такой: “покупатель ("кого", а возможно "чего")изготовителя” и этот “покупатель уведомляет в течении недели”, причем кого уведомляет непонятно. Сделав разбор такого предложения в синтаксическом анализаторе и увидев свою ошибку, пользователь напишет правильно: “покупатель уведомляет изготовителя об этом в течение недели”.

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

Основные понятия.

Подпредложение – обособленная знаками препинания или особыми словами часть предложения. Пример. “на полу стояли стол и деревянный стул” – здесь два подпредложения: “на полу стояли стол и” и “деревянный стул”. “заяц, которого мы увидели, встал как вкопанный” - здесь три подпредложения “заяц,” “которого мы увидели,” “встал как вкопанный”.

Формат результата работы анализатора

Результаты разбиты на несколько частей, располагающихся последовательно:

- введенное предложение:

  • некоторые служебные сообщения: если не известно слово или неизвестно описание слова;
  • результаты разбора предложения последовательно для каждого подпредложения. Здесь выводятся связи слов;
  • служебные сообщения: статистика и время работы;
  • введенное предложение с выделенными словами и добавками к словам.

Вид выводимых связей

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

“деяние какое предусмотренное”

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

Некоторые обозначения в результатах разбора.

“---” означает вершину корня связей. Помечает слово, которое несвязанно в предложении.

“_??” означает что слово уже имеет корень, этот корень уже выводился выше, поэтому вывод корня не повторяется

“++ км” обозначает связь корня местоимения. Обычно относится к местоимениям “который”.

“++” означает что слово подчинено другому подпредложению. В фигурных скобках {} обычно выводится главное слово для такого слова.

В квадратных скобках [] выводится номер слова в предложении.

В круглых скобках () выводится вопрос, на который отвечает слово.

Вид введенного предложения с выделенными словами и добавками.

Несвязанные слова помечаются жирным шрифтом.

В фигурных скобках, стоящих слева от данного слова, обозначается добавка, которая указывает на главное слово для этого данного слова.

 

Краткий справочник о возможностях и правилах синтаксического анализатора.

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

“соблюдать права и свободы человека и гражданина” – здесь мы понимаем, используя знания о мире, что “права и свободы” относятся сразу и к “человеку” и к “гражданину”, так как и гражданин и человек имеют права и свободы. Но вот в предложении “соблюдать права и свободы человека и международные нормы поведения” мы понимаем, опять же используя знания о мире, что “права и свободы” относятся только к “гражданину”. Хотя в обоих предложениях полностью одинаковые синтаксические структуры. Еще пример. В УК РФ есть фраза: “размера , предусмотренного для данного вида наказания общей частью настоящего кодекса” - здесь будут созданы синтаксические связи: “для (чего)вида” и “вида (чего)наказания”. Но, Мы знаем что у “наказания” бывает “вид” и, поэтому человек свяжет: “для (чего)наказания” и “наказания (чего)вида”. Для того чтобы не было двусмысленностей в Вашем тексте, рекомендую всегда располагать подчиненное слово в родительной связи справа. Для рассматриваемого предложения верным будет написание: “размера, предусмотренного для наказания данного вида общей частью настоящего кодекса”.

Подчинение предлогов. Предлоги могут подчиняться разным словам в зависимости от знаний о мире. Пример. “я ел пирожок с капустой” и “я ел пирожок с удовольствием”. Здесь в первом случае имеем связь “пирожок с капустой”, а во втором случае имеем связь “ел с удовольствием”. Хотя синтаксически оба предложения полностью одинаковые. Поэтому анализатор выдает все возможные связи предлогов, и для обоих предложений получаем связи предлога “с” и к “пирожок” и к “ел”.

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

Сложносставные слова. Сложносоставные слова, написанные через дефис, например: "красно-сине-зеленый" обрабатываются синтаксическим анализатором правильно. Сложносоставные слова, образованные без дефисов, например "красносинезеленый" не будут обработаны правильно, так как такие слова не обработаются морфологическим модулем. Для правильной обработки сложносоставных слов необходимо их писать через дефис. Пример. Допустим, есть предложение "пушка имеет стосорокапятимиллиметровый ствол", для правильной обработки необходимо преобразовать сложносоставное слово "стосорокапятимиллиметровый" в "сто-сорока-пяти-миллиметровый". Также нужно преобразовывать такие общеупотребительные слова как "шестнадцатилетний" в "шестнадцати-летний". Внимание! Дефис обнаруживается только тогда, когда к нему примыкают с обеих сторон буквы, иначе получается тире! Пример. "красно- сине-зеленый" будет преобразовано в последовательность: "красно", "-"(тире), "сине-зеленый".

То, что еще пока не сделано.

Нет связывания подпредложений по связям типа “… то, что …”; “… тогда, когда …”; “… так, что …” и другие.

Нет обработки предложений типа: “…, а …” и “…, но …” (такие предложения кажется называются “элипсис”)

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

Логические связи типа “если …, то …, иначе …”.

Не всегда работает выявление именительных существительных.

 

То, что может содержать ошибки в разборе.

Вложенные списки довольно сложно обрабатывать и их разбор возможен с ошибками.

Некоторые неоднозначные слова и ситуации могут быть разобраны с ошибками.

 
  на главную страницу  
 
HotLog Author
HotLog
HotLog создатель идей