Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
отчёт Колосова.doc
Скачиваний:
5
Добавлен:
18.11.2019
Размер:
462.85 Кб
Скачать

Отчет по программе pc-patr

При изучении синтаксического анализатора «PC-PATR» перед нами стояла задача познакомиться с работой программы и её возможностями, провести синтаксический анализ предложений из карточки с заданиями средствами данной программы.

«PC-PATR» позволяет описывать синтаксис языка как совокупность правил, описываемых при помощи грамматики непосредственных составляющих. Также программа PC-PATR осуществляет  разложение предложения на части речи, определяемые пользователем в лексиконе программы.

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

  • He explained that under a cease-fire agreement between the Taliban and the army, all civilians were required to get out of their cars when an army convoy approached.

  • The soldier was in the lead vehicle of a Pakistani Army supply convoy in North Waziristan.

  • The Taliban guard beside me loaded his rifle and ordered me to put a scarf over my face.

  • The trip confirmed suspicions I had harbored for years as a reporter.

  • My captors assailed the West for killing civilians, but they celebrated suicide attacks orchestrated by the Taliban that killed scores of Muslim bystanders.

Для работы с программой необходимо было создать несколько файлов:

  • 1.lex (файл лексикона),

  • 1.grm (файл грамматики),

  • 1.sen (содержит предложения для анализа)

  • 1.par (остается пустым, служит для передачи данных анализа)

  • 1.tak (содержит заранее прописанную последовательность команд и во многом облегчает дальнейшую работу).

Содержание файла 1.tak:

set trim off

set failure on

l g 1.grm

l l 1.lex

file parse 1.sen 1.par

Содержание файла 1.grm:

LET sg be <head number> = SG

LET proper be <head proper> = +

LET acc be <head case> = ACC

LET wh be <head wh> = +

LET 1 be <head person> = 1

<head agr 3sg> = -

LET 2 be <head person> = 2

<head agr 3sg> = -

LET 3 be <head person> = 3

<head agr 3> = +

LET s be [head: [tense: PRES

agr: [3sg: +]

finite: +

vform: S]]

LET neg be <head neg> = +

LET vbase be [head: [finite: -

vform: BASE]]

LET N be <cat> = N

<head pos> = N

<head agr 3sg> = !+

<head number> = !SG

<head proper> = !-

<head verbal> = !-

<root_pos> = !N

LET PR be <cat> = PR

<head pos> = PR

<head agr 3sg> = !+

<head person> = !3

<head number> = !SG

<head case> = !NOM

<head reflex> = !-

<head wh> = !-

LET V be <cat> = V

<head pos> = V

<root_pos> = !V

LET AUX be <cat> = AUX

<head pos> = AUX

<head neg> = !-

<root_pos> = !AUX

<head auxform> = <gloss>

LET AUX-NEG be <cat> = AUX

<head pos> = AUX

<head neg> = !+

<root_pos> = !AUX

<head auxform> = <gloss>

LET AJ be <cat> = AJ

<head pos> = AJ

<head verbal> = !-

<root_pos> = !AJ

<head aform> = !POS

LET DT be <cat> = DT

<head pos> = DT

LET CJ be <cat> = CJ

<head pos> = CJ

LET Vform be <cat> = Vform

<head pos> = Vform

LET Prep be <cat> = Prep

<head pos> = Prep

RULE

S = (NP) VP (SubC1)

<NP head agr> = <VP head agr>

<NP head case> = NOM

<S subj> = <NP>

<S head> = <VP head>

RULE

S = VP_1 NP VP

<NP head case> = NOM

<S subj> = <NP>

<S head> = <VP head>

RULE

NP = Vform NP_1

RULE

PrepP = Prep NP

RULE

NP = (Det) (AdjP) N / PR

<NP head> = <N head>

<NP head> = <PR head>

RULE

Det = DT

RULE

VP = VerbalP (NP / AdjP)

<NP head case> = ACC

<NP head verbal> = -

<VP head> = <VerbalP head>

RULE

VerbalP = AUX V / (PR) AUX

<V head finite> = -

<VerbalP head> = <AUX head>

<VerbalP head partform> = <V head vform>

RULE

VerbalP = V

<V head finite> = +

<VerbalP head> = <V head>

RULE

VerbalP = V

<V head finite> = -

<VerbalP head> = <V head>

RULE

SubC1 = CJ S

RULE

AdjP = AJ (AdjP_1)

Содержание файла 1.lex:

\w a

\c DT

\f sg

\w an

\c DT

\f sg

\w the

\c DT

\f

\w agreement

\c N

\g 'agreement

\ sg

\w army

\c N

\g `army

\f sg acc

\w civilians

\c N

\g `civilian +s

\f pl

\w soldier

\c N

\g `soldier

\f sg

\w guard

\c N

\g `guard

\f sg

\w trip

\c N

\g `trip

\f sg

\w reporter

\c N

\g `reporter

\f sg

\w captors

\c N

\g `captor +s

\f pl

\w cars

\c N

\g 'car +s

\f pl acc

\w vehicle

\c N

\g `vehicle

\f sg acc

\w Taliban

\c N

\g 'Taliban

\f proper

\w Pakistani

\c N

\g 'Pakistani

\f proper

\w Army

\c N

\g 'Army

\f proper

\w North

\c N

\g 'North

\f proper

\w Waziristan

\c N

\g 'Waziristan

\f proper

\w West

\c N

\g 'West

\f proper

\w Muslim

\c N

\g 'Muslim

\f proper

\w rifle

\c N

\g `rifle

\f sg acc

\w convoy

\c N

\g 'convoy

\f sg acc

\w scarf

\c N

\g 'scarf

\f sg acc

\w face

\c N

\g 'face

\f sg acc

\w suspicions

\c N

\g 'suspicion +s

\f pl acc

\w years

\c N

\g 'year +s

\f pl acc

\w civilians

\c N

\g 'civilian +s

\f pl acc

\w attacks

\c N

\g 'attack +s

\f pl acc

\w scores

\c N

\g 'score +s

\f pl acc

\w bystanders

\c N

\g 'bystander +s

\f pl acc

\w he

\c PR

\g

\w they

\c PR

\g

\w me

\c PR

\g

\w were

\c AUX

\g `be +plPAST

\f vbase

\w had

\c AUX

\g `have +PAST

\f vbase

\w was

\c AUX

\g `be+sgPAST

\f vbase

\w when

\c CJ

\g

\w and

\c CJ

\g

\w that

\c CJ

\g

\w between

\c CJ

\g

\w but

\c CJ

\g

\w explained

\c V

\g `explain +ed

\f vbase

\w required

\c V

\g 'require +ed

\f vbase

\w get

\c V

\g `get

\f vbase

\w approached

\c V

\g `approach +ed

\f vbase

\w loaded

\c V

\g `load +ed

\f vbase

\w ordered

\c V

\g `order +ed

\f vbase

\w put

\c V

\g `put

\f vbase

\w confirmed

\c V

\g `confirm +ed

\f vbase

\w harbored

\c V

\g `harbor +ed

\f vbase

\w assailed

\c V

\g `assail +ed

\f vbase

\w celebrated

\c V

\g `celebrate +ed

\f vbase

\w killed

\c V

\g `kill +ed

\f vbase

\w cease-fire

\c AJ

\g 'cease-fire

\w army

\c AJ

\g 'army

\w lead

\c AJ

\g 'lead

\w supply

\c AJ

\g 'supply

\w killing

\c AJ

\g 'killing

\w suicide

\c AJ

\g 'suicide

\w orchestrated

\c AJ

\g `orchestrated

\w his

\c AJ

\g `his

\w their

\c AJ

\g `their

\w my

\c AJ

\g `my

\w all

\c AJ

\g `all

\w in

\c Prep

\g `in

\w over

\c Prep

\g `over

\w out

\c Prep

\g `out

\w under

\c Prep

\g `under

\w to

\c Prep

\g `to

\w of

\c Prep

\g `of

\w beside

\c Prep

\g `beside

\w for

\c Prep

\g `for

\w as

\c Prep

\g `as

\w by

\c Prep

\g `by

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

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

В ходе выполнения задания мы столкнулись с рядом трудностей, а именно, тэг /f (features) вызвал большое количество проблем, а также где и каким образом декларировать назначенные в лексиконе features. Как выяснилось, features необходимо прописывать в файле грамматики .grm с помощью команды LET перед написанием правил. Features используются для детализации грамматических правил анализируемого языка.

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