You are on page 1of 10

Grammaire Regulus – TP1 – INGENIERIE LINGUISTIQUE 2019

ROSNEN OROZCO

% Declarations for Regulus course toy 1 grammar

feature_value_space(mode_value, [[imperative, indicative]]).


feature_value_space(rection_value, [[transitive, intransitive]]).
feature_value_space(number_value, [[sg, pl]]).
feature_value_space(person_value, [[1, 2, 3]]).
feature_value_space(tyn_value, [[item, animate, non_animate, location, building,day]]).

feature(mode, mode_value).
feature(rection, rection_value).
feature(number, number_value).
feature(person, person_value).
feature(tyn, tyn_value).
feature(tyn_subject, tyn_value).
feature(tyn_object, tyn_value).

top_level_category('.MAIN').

category('.MAIN', []).
category(p, []).
category(sn, [number, person, tyn]).
category(sv, [mode, number, person, tyn]).
category(sp, [tyn]).
category(verb, [mode, person, number, rection, tyn_subject, tyn_object]).
category(noun, [number, tyn]).
category(det, [number]).
category(prep, [tyn]).
category(pron, [person, number, tyn]).

% Grammar

'.MAIN':[] -->
p:[].

p:[] -->
sv:[mode=imperative, tyn=O].

p:[] -->
sn:[number=N, person=P, tyn=S],
sv:[number=N, person=P, mode=indicative, tyn=S].

sv:[mode=VF,number=N, person=P, tyn=O] -->


verb:[mode=VF, number=N, person=P, rection=transitive, tyn_subject=S, tyn_object=O],
sn:[tyn=O].
sv:[mode=VF,number=N, person=P] -->
verb:[mode=VF, number=N, person=P, rection=intransitive].

sn:[number=N, person=P, tyn=S] -->


pron:[number=N, person=P, tyn=animate].

sn:[number=N, person=3, tyn=O] -->


?det:[number=N],
noun:[number=N, tyn=O],
?sp:[].

sp:[] -->
prep:[tyn=O],
sn:[tyn=O].

% Lexicon

%%VERB
verb:[mode=imperative, person=2, number=sg, rection=intransitive] --> repeat.
verb:[mode=indicative, person=1, number=sg, rection=intransitive] --> repeat.
verb:[mode=indicative, person=3, number=pl, rection=intransitive] --> repeat.
verb:[mode=indicative, person=3, number=sg, rection=intransitive] --> repeats.
verb:[mode=imperative, person=2, number=sg, rection=transitive] --> book.
verb:[mode=indicative, person=1, number=sg, rection=transitive] --> book.
verb:[mode=indicative, person=3, number=pl, rection=transitive] --> book.
verb:[mode=indicative, person=3, number=sg, rection=transitive] --> books.
verb:[mode=imperative, person=2, number=sg, rection=transitive] --> list.
verb:[mode=indicative, person=1, number=sg, rection=transitive] --> list.
verb:[mode=indicative, person=3, number=pl, rection=transitive] --> list.
verb:[mode=indicative, person=3, number=sg, rection=transitive] -->lists.
verb:[mode=imperative, person=2, number=sg, rection=transitive, tyn_subject=animate,
tyn_object=building\/item] --> show.
verb:[mode=indicative, person=1, number=sg, rection=transitive, tyn_subject=animate,
tyn_object=building\/item] --> show.
verb:[mode=indicative, person=3, number=pl, rection=transitive, tyn_subject=animate,
tyn_object=building\/item] --> show.
verb:[mode=indicative, person=3, number=sg, rection=transitive, tyn_subject=animate,
tyn_object=building\/item] -->shows.
verb:[mode=indicative, person=1, number=sg, person=1, rection=transitive, tyn_subject=animate,
tyn_object=item] --> want.
verb:[mode=indicative, person=3, number=pl, rection=transitive, tyn_subject=animate,
tyn_object=item] --> want.
verb:[mode=indicative, person=3, number=sg, rection=transitive, tyn_subject=animate,
tyn_object=item] --> wants.

%%NOUN

noun:[number=sg, tyn=building] --> hotel.


noun:[number=pl, tyn=building] --> hotels.

noun:[number=sg, tyn=location] --> town.


noun:[number=pl, tyn=location] --> towns.

noun:[number=sg, tyn=item] --> fare.


noun:[number=pl, tyn=item] --> fares.

noun:[number=sg, tyn=item] --> price.


noun:[number=pl, tyn=item] --> prices.

noun:[number=sg, tyn=item] --> flight.


noun:[number=pl, tyn=item] --> flights.

noun:[number=sg, tyn=animate] --> man.


noun:[number=pl, tyn=animate] --> men.

noun:[number=sg, tyn=day] --> monday.

%%DET
det:[number=N] --> the.
det:[number=sg] --> this.
det:[number=pl] --> these.
det:[number=sg] --> an.
det:[number=sg] --> a.

%%PREP
prep:[tyn=building\/location] --> in.
prep:[tyn=day ] --> on.
prep:[] --> of.

%%PRON
pron:[number=sg,person=1] --> i.
pron:[number=sg, person=3] --> he.
pron:[number=pl, person=3] --> they.
INGÉNIERIE LINGUISTIQUE 2019

ROSNEN OROZCO AGUDELO

TP1 – RAPPORT FINAL

Grammaires d’unification

Dans les systèmes linguistiques de TAL, l’objectif principal consiste à créer des grammaires qui
permettent aux ordinateurs de traiter le langage naturel, le comprendre et le traduire. Pour ce faire, il
faut d’abord doter les ordinateurs de toutes les connaissances nécessaires pour identifier et analyser
le plus grand nombre de phrases correctes et bien formées dans une langue donnée. Les grammaires
hors contexte ou CFG ont constitué une première tentative de description formelle des règles de
fonctionnement de la langue. Nonobstant, la description des langues avec ce type de grammaire s’est
avérée excessivement longue et complexe pour intégrer toutes les possibilités et les restrictions
combinatoires des éléments linguistiques dans une phrase (par exemple, les accords en genre et en
nombre dans un syntagme nominal, en personne et nombre entre le verbe et son sujet ou le choix
entre les différents types de complément en fonction du verbe, etc.)

C’est ainsi que, dans un souci d’abréger l’expression des règles grammaticales tout en intégrant la
complexité des combinaisons linguistiques, les grammaires d’unification ont été développées dans les
années 80. Aux règles pour la réécriture des phrases et des différents constituants syntaxiques, s’est
alors ajoutée la description des variables qui conditionnent les combinaisons linguistiques entre les
différentes catégories grammaticales et syntagmatiques. Ces variables seraient incluses dans la
description des constituants linguistiques et des règles grammaticales sous la forme de structures de
traits qui ne s’unifient que lorsque les constituants censés devoir partager les mêmes traits sont
compatibles selon la logique de la théorie des ensembles.

Phénomènes traités dans le TP1

Les grammaires d’unification permettent alors de simplifier l’expression de règles grammaticales


telles que l’accord dans le syntagme nominal, l’accord entre le syntagme verbal et le sujet, la rection
des verbes, et le type sémantique des sujets et des objets que les différents verbes peuvent accepter.

Dans notre exercice, nous avons traité ces phénomènes en ajoutant les variables et les traits qui les
conditionnent en fonction des niveaux linguistiques concernés dans le cas de l’anglais.

Accord dans le syntagme nominal

En anglais, le syntagme nominal s’accorde essentiellement en nombre (singulier ou pluriel) entre le


nom, son déterminant et les adjectifs qui le modifient . Dans l’exercice, nous n’avons traité que
l’accord entre le nom et le déterminant. Pour cette raison, nous avons d’abord créé une variable
« number » qui comporte les traits singulier et pluriel.

- feature_value_space(number_value, [[sg, pl]]).

Nous avons ensuite déclaré que cette variable peut être exprimée dans la grammaire en indiquant la
soit la variable ou une de ses valeurs :

- feature(number, number_value).
Nous avons également inclus la variable « number » dans la description des catégories « noun » et
« det » :

- category(noun, [number, tyn]).


- category(det, [number]).

Puis, au niveau de la grammaire nous avons inclus la variable « nombre=N » dans la règle qui décrit le
syntagme nominal comme déterminant plus nom et aussi dans chacun de ces éléments pour indiquer
que les deux constituants doivent partager la même valeur de la variable pour satisfaire à cette règle.

- sn:[number=N, person=3, tyn=O] -->

?det:[number=N],

noun:[number=N, tyn=O],

?sp:[].

Et finalement, au niveau du lexique, nous avons défini le trait correspondant à chaque nom et
déterminant.

- noun:[number=sg, tyn=building] --> hotel.


- noun:[number=pl, tyn=building] --> hotels.
- det:[number=sg] --> a.
- det:[number=N] --> the.

Par conséquent, notre grammaire acceptera les phrases « book a hotel » et en fera l’analyse en lui
assignant un arbre syntaxique :

.MAIN [TOY1_COURSE_RULES:31-36]

p [TOY1_COURSE_RULES:37-39]

sv [TOY1_COURSE_RULES:44-47]

/ verb lex(book) [TOY1_COURSE_RULES:73-73]

| sn [TOY1_COURSE_RULES:54-58]

| / det lex(a) [TOY1_COURSE_RULES:117-117]

| | noun lex(hotel) [TOY1_COURSE_RULES:88-92]

\ \ null

Et elle rejettera la phrase « book a hotels ».

Les segments de phrase « a hotel » ou « the hotels » ne seront pas acceptés par la grammaire car
elles ne correspondent pas à des phrases complètes.

Accord entre le syntagme verbal et le sujet

En anglais le verbe s’accorde avec le sujet selon la personne (1 ère, 2e, 3e) et le nombre (singulier ou
pluriel).Mais dans la pratique et dans le cadre restreint de notre grammaire qui n’inclut pas le verbe
« to be », le verbe ne varie qu’à la troisième personne du singulier « he » ou lorsque le sujet est un
syntagme nominal au singulier.
Pour réussir à ce que notre grammaire ne reconnaisse que les phrases bien accordées entre le sujet
et le verbe, nous avons créé la variable « person » en lui attribuant les valeurs 1, 2 et 3 :

- feature_value_space(person_value, [[1, 2, 3]]).

Nous avons ensuite déclaré que cette variable peut être exprimée dans la grammaire en indiquant la
soit la variable ou une de ses valeurs :

- feature(person, person_value).

Puis, nous avons inclus les variables « number » et « person » dans les catégories syntagme nominal
« sn », syntagme verbal « sv » et le verbe « verb » :

- category(sn, [number, person, tyn]).


- category(sv, [mode, number, person, tyn]).
- category(verb, [mode, person, number, rection, tyn_du_sujet, tyn_de_objet]).

Nous avons aussi créé la catéegorie « pron » pour les pronoms en lui attribuant les variables
« number » et « person » :

- category(pron, [person, number, tyn]).

Au niveau de la grammaire, nous avons inclus ces variables dans la règle qui établit qu’une phrase est
constituée d’un syntagme nominal et un syntagme verbal :

- p:[] -->

sn:[number=N, person=P, tyn=S],

sv:[number=N, person=P, mode=indicative, tyn=S].

Dans les syntagmes verbaux:

- sv:[mode=VF,number=N, person=P, tyn=O] -->


verb:[mode=VF, number=N, person=P, rection=transitive, tyn_du_sujet=S,
tyn_de_objet=O],
sn:[tyn=O].

- sv:[mode=VF,number=N, person=P] -->


verb:[mode=VF, number=N, person=P, rection=intransitive].

Et dans les syntagmes nominaux :

- sn:[number=N, person=P, tyn=S] -->


pron:[number=N, person=P].

- sn:[number=N, person=3, tyn=O] -->


?det:[number=N],
noun:[number=N, tyn=O],
?sp:[].

 Dans le cas particulier des syntagmes nominaux constitués par un nom, nous l’avons restreint
à la troisième personne car le verbe se conjugue toujours à la 3 e personne dans ce cas.
Au niveau du lexique, nous avons alors spécifié les traits correspondant à la personne de chaque
forme du verbe et des pronoms :

verb:[mode=indicative, person=1, number=sg, person=1, rection=transitive, tyn_du_sujet=animate,


tyn_de_objet=item] --> want.

verb:[mode=indicative, person=3, number=pl, rection=transitive, tyn_du_sujet=animate,


tyn_de_objet=item] --> want.

verb:[mode=indicative, person=3, number=sg, rection=transitive, tyn_du_sujet=animate,


tyn_de_objet=item] --> wants.

%%PRON

pron:[number=sg,person=1, tyn=animate] --> i.

pron:[number=sg, person=3, tyn=animate] --> he.

pron:[number=pl, person=3, tyn=animate] --> they.

En conséquence, notre grammaire accepte et fait l’analyse des phrases « I want a flight », « they want
a flight », et « the man wants a flight », et elle rejette les phrases « I wants a flight », « he want a
flight », et « the man want a flight ».

La rection des verbes


Dans notre corpus, le verbe « repeat » est intransitif et n’accepte donc pas d’objet direct. Pour que
notre grammaire, rejette des phrases du type « repeat a flight » et accepte la phrase « repeat » sans
objet direct, il nous a fallu spécifier la rection des verbes de notre corpus et l’intégrer aux règles de la
grammaire.

Nous avons donc inclut le trait « intransitive » dans la la variable « rection »:

- feature_value_space(rection_value, [[transitive, intransitive]]).

Puisque cette variable ne concerne que le verbe, nous l’avons intégré à la description de la catégorie
verbe :

- category(verb, [mode, person, number, rection, tyn_du_sujet, tyn_de_objet]).

Ensuite, au niveau de la grammaire, nous avons spécifié la rection « intransitive » dans la structure
des traits du verbe du syntagme verbal sans objet direct :

- sv:[mode=VF,number=N, person=P] -->


verb:[mode=VF, number=N, person=P, rection=intransitive].

Alors que pour le syntagme verbal avec objet direct, nous avons spécifié le trait « transitive ».

- sv:[mode=VF,number=N, person=P, tyn=O] -->

verb:[mode=VF, number=N, person=P, rection=transitive, tyn_du_sujet=S,


tyn_de_objet=O],
sn:[tyn=O].

Et au niveau du lexique, nous avons spécifié la valeur « intransitive » dans la structure des traits du
verbe « repeat » et la valeur « transitive » pour les autres verbes :

- verb:[mode=imperative, person=2, number=sg, rection=intransitive] --> repeat.


- verb:[mode=indicative, person=1, number=sg, rection=intransitive] --> repeat.
- verb:[mode=indicative, person=3, number=pl, rection=intransitive] --> repeat.
- verb:[mode=indicative, person=3, number=sg, rection=intransitive] --> repeats.

- verb:[mode=imperative, person=2, number=sg, rection=transitive] --> book.


- verb:[mode=indicative, person=1, number=sg, rection=transitive] --> book.
- verb:[mode=indicative, person=3, number=pl, rection=transitive] --> book.
- verb:[mode=indicative, person=3, number=sg, rection=transitive] --> books.

Type sémantique des verbes

En anglais, comme dans d’autres langues, les verbes ne se conjuguent pas avec tout type de sujet ou
n’acceptent que certains types d’objet. Par exemple, le verbe « to want » n’accepte comme sujet que
des personnes ou, à la limite, quelques animaux. Tout autre type de sujet serait possible seulement
dans un sens figuré ou poétique de ce verbe. Par exemple, dans le cadre de notre exercice, le verbe
« to want » n’accepterait que des personnes comme sujet. De même, le verbe « to show » n’accepte
pas le nom « a town » comme objet.

C’est aussi le cas de certains noms qui ne peuvent être combinés qu’avec quelques noms, comme par
exemple les jours de la semaine qui vont toujours avec la préposition « on » en anglais ou le
nom « flight » qui ne peut pas s’accorder avec la préposition « in » dans le cadre de notre exercice.

Pour restreindre ces possibilités combinatoires, il a fallu créer la variable « tyn » pour définir le type
sémantique des objets et des sujets du verbe et des prépositions et leur avons attribué des variables
correspondantes aux mots de notre corpus :

- feature_value_space(tyn_value, [[item, animate, non_animate, location, building,day]]).

Étant donné que les verbes peuvent comporter des types sémantiques pour le sujet

Dans le cas des verbes dont on doit spécifier le type sémantique du sujet et de l’objet, nous avons
déclaré également que la variable « tyn » peut aussi s’exprimer comme « tyn_subject » et «
tyn_object » afin de pouvoir faire la différence entre les deux, ou tout simplement comme « tyn »
dans le cas où cette distinction n’est pas nécessaire.

feature(tyn, tyn_value).

feature(tyn_subject, tyn_value).

feature(tyn_object, tyn_value).
Nous avons ensuite inclus cette variable dans les catégories syntagme nominal, syntagme verbal,
syntagme prépositionnel, le nom, la préposition et les pronoms :

- category(sn, [number, person, tyn]).


- category(sv, [mode, number, person, tyn]).
- category(sp, [tyn]).
- category(noun, [number, tyn]).
- category(prep, [tyn]).
- category(pron, [person, number, tyn]).

Pour la catégorie « verb », nous avons dû spécifier le type sémantique du sujet et de l’objet :

category(verb, [mode, person, number, rection, tyn_subject, tyn_object]).

Au niveau de la grammaire, nous avons spécifié le « tyn =S » pour la règle qui décrit les phrases
comme « sn + sv » pour que la grammaire unifie le type sémantique du sujet avec le type sémantique
du sujet admis par le verbe :

- p:[] -->
sn:[number=N, person=P, tyn=S],
sv:[number=N, person=P, mode=indicative, tyn=S].

Et dans la règle qui décrit le syntagme verbal comme « sv + sn » » pour que la grammaire unifie le
type sémantique de l’objet avec le type sémantique de l’objet admis par le verbe :

- sv:[mode=VF,number=N, person=P, tyn=O] -->


verb:[mode=VF, number=N, person=P, rection=transitive, tyn_subject=S,
tyn_object=O],
sn:[tyn=O].

De même, pour les syntagmes nominaux constitués par des pronoms, nous avons spécifié le
« tyn=S » :
- sn:[number=N, person=P, tyn=S] -->
pron:[number=N, person=P].

Pour les syntagmes nominaux du type « ?det + noun + ? sp » et le syntagme prépositionnel, nous
avons spécifié le « tyn=O » :

- sn:[number=N, person=3, tyn=O] -->


?det:[number=N],
noun:[number=N, tyn=O],
?sp:[].

- sp:[] -->
prep:[tyn=O],
sn:[tyn=O].
Au niveau du lexique, nous avons inclus cette variable pour les verbes concernés :

- verb:[mode=imperative, person=2, number=sg, rection=transitive, tyn_subject=animate,


tyn_object=building\/item] --> show.
- verb:[mode=indicative, person=1, number=sg, rection=transitive, tyn_subject=animate,
tyn_object=building\/item] --> show.
- verb:[mode=indicative, person=3, number=pl, rection=transitive, tyn_subject=animate,
tyn_object=building\/item] --> show.
- verb:[mode=indicative, person=3, number=sg, rection=transitive, tyn_subject=animate,
tyn_object=building\/item] -->shows.
- verb:[mode=indicative, person=1, number=sg, person=1, rection=transitive,
tyn_subject=animate, tyn_object=item] --> want.
- verb:[mode=indicative, person=3, number=pl, rection=transitive, tyn_subject=animate,
tyn_object=item] --> want.
- verb:[mode=indicative, person=3, number=sg, rection=transitive, tyn_subject=animate,
tyn_object=item] --> wants.

Pour les noms:

Exemples:

- noun:[number=sg, tyn=building] --> hotel.


- noun:[number=pl, tyn=building] --> hotels.

- noun:[number=sg, tyn=location] --> town.


- noun:[number=pl, tyn=location] --> towns.

Et pour les prépositions

- prep:[tyn=building\/location] --> in.


- prep:[tyn=day ] --> on.
- prep:[] --> of.

You might also like