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

Автор работы: Пользователь скрыл имя, 03 Апреля 2013 в 17:47, контрольная работа

Краткое описание

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

Содержимое работы - 1 файл

Теоретическая часть.doc

— 49.00 Кб (Скачать файл)

Введение

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

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

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

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

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

Падежи Гилмора:

1.      объектный  падеж

2.      агентный  падеж

3.      инструментальный  падеж

4.      целевой  падеж

5.      локутивный падеж (падеж места действия)

6.      временной  падеж

7.      коагентный падеж (помощник агента)

8.      падеж источника и назначения

9.      падеж  траектории «я прошел через лес и вышел на опушку»

10.  Падеж носителя («он проехал в машине через мост»)

и т.д.

Объект – это то, на что направлено действие агента. Инструмент – ресурс, с помощью которого достигается цель.

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

Например:

   Студент четвертого курса ФБИ написал интересную программу с помощью языка Пролог в качестве курсового проекта, сидя в вагоне скорого поезда в ноябре месяце 2008 года, двигаясь из Иркутска в Новосибирск, и проезжая при этом через города Тайга и Красноярск.

 

 

Объект – интересная программа

Агент – студент четвертого курса ФБИ

Инструмент – язык пролог

Цель – курсовой проект

Локация - Вагон скорого  поезда

Время – в ноябре месяце 2008 года

Источник и назначение – Иркутск, Новосибирск

Траектория – через города Тайга и Красноярск

Носитель – совпадает с метом

Список падежей открыт. Существующие падежи выделены исключительно эмпирическим путем

 

Семантика языков программирования

     Семантика языка программирования - это смысл, который закладывается в каждую конструкцию языка.

     Семантический анализ - это проверка смысловой правильности конструкции. Например, если в выражении используется переменная, то она должна быть определена ранее по тексту программы, а из этого определения может быть получен ее тип. Исходя из типа переменной, можно говорить о допустимости операции с данной переменной.

    Существует несколько подходов к определению семантики языков программирования.

Наиболее широко распространены разновидности следующих трёх:

  • операционный
  • деривационный (аксиоматический)
  • денотационный (математический).

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

Деривационная семантика описывает  последствия выполнения конструкций  языка с помощью языка логики и задания пред- и постусловий.

Денотационная семантика  оперирует понятиями, типичными  для математики — множества, соответствия, а также суждения, утверждения и др. 
Понятие семантического анализа

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

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

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

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

     Грамматика семантического уровня в чистом виде (вне связи с синтаксисом) представлена в семантическом анализаторе Й. Уилкса. Его модель семантической предпочтительности включает такие инструменты семантического анализа, как тезаурусная информаци, правила вывода “по здравому смыслу”, понятие псевдотекста, декомпозицию лексем на семантические примитивы, что позволяет доказывать семантическую связность даже в трудном лингвистическом материале (метафорические словоупотребления).

 

Этапы семантического анализа

Семантический анализатор выполняет следующие основные действия:

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

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

Примерами таких соглашении являются следующие требования

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

 

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

 

Понятие семантической  цепи

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

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

1. узлы семантических  сетей представляют собой концепты предметов, событий, состояний;

2. различные узлы одного  концепта относятся к различным  значениям, если они не помечено, что они относятся к одному концепту;

3. дуги семантических  сетей создают отношения между  узлами-концептами (пометки над дугами указывают на тип отношения);

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

 

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

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

 

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

    Семантический словарь русского языка — словарь, составленный проф. В. А. Тузовым из СПбГУ для решения проблемы семантического анализа текстов на русском языке.

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

 

Список литературы

  • Тузов В.А. Компьютерная семантика русского языка. // СПб.: Изд-во СПбГУ, 2004. — 400 с.
  • Л. А. Новиков. Избранные труды. Том I. Проблемы языкового значения, Л. А. Новиков
  • Бураков М.В. Язык логического программирования ПРОЛОГ
  • Серегин А. Ю., Лисов О. И Семантический анализатор М.: МИЭТ, 2002. 12 с
  • Практическое введение в технологию искусственного интеллекта и экспертных систем с иллюстрациями на Бейсике / Р.Левин, Д. Дранг

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