Palavras-chave: lingüística formal, lingüística computacional

Propaganda
Palavras-chave: lingüística formal, lingüística computacional, processamento computacional da linguagem
natural, processamento automático das línguas naturais, lingüística comparada, lingüística contrastiva,
lingüística geral, teoria lingüística, lingüística teórica, lingüística descritiva
Grupo de Estudos em Lingüística Formal, Computacional e Comparada – GELFOCO
http://www.geocities.com/Athens/Crete/1546/gelfoco.htm
Exercício para a aula de 28.09.05 - Autor: Leonel F. de Alencar
Tarefa 1: Elaboração de fragmentos de gramática computacional
O exercício anterior tratou da regência verbal de verbos divalentes. No programa latim01.txt,
implementei a distinção entre verbos monovalentes (intransitivos) e divalentes. Também
mostrei como dar conta da seleção do caso (nominativo ou acusativo) dos verbos divalentes.
(Ver também o programa femina2.txt.) Desenvolva agora em Prolog uma ou mais
minigramáticas capazes de dar conta dos seguintes dados do português (padrão), latim,
alemão e inglês, envolvendo verbos trivalentes.
Português
(1)
(2)
(3)
(4)
(5)
(6)
Ele a viu.
*Ele lhe viu.
Ela lhe deu um livro.
*Ela o deu um livro.
Ele a deu à Maria.
*Ele lhe deu à Maria
Latim
(7)
(8)
(9)
(10)
(11)
magistra reginae rosam dat
magistrae reginis rosas dant
pirata feminis rosas dat
magistra reginis invidet
magistrae reginae invident
Alemão
(12)
(13)
(14)
(15)
Die Prinzessin gibt dem Prinzen den Vogel.
*Die Prinzessin gibt den Vogel an den Prinzen.
Die Prinzessin schickt dem Prinzen den Vogel.
Die Prinzessin schickt den Vogel an den Prinzen.
Inglês
(16)
(17)
Mary gives him the book.
Mary gives the book to him.
Tarefa 2
Nas gramáticas desenvolvidas até o momento, o léxico contém apenas formas
flexionadas. Desse modo, no latim, para cada uma das formas de um substantivo como pirata,
é necessária uma entrada lexical. Conseqüente, cada substantivo do latim implica a elaboração
de 12 entradas lexicais, conforme o quadro a baixo:
1
Caso
Nominativo
Singular
pirata
Plural
piratae
Vocativo
pirata
piratae
Acusativo
piratam
piratas
Genitivo
piratae
piratarum
Dativo
piratae
piratis
piratis
Ablativo
Um léxico nesses moldes contém muita informação redundante. De fato, todo
substantivo da primeira declinação apresenta o mesmo leque de terminações, conforme se
destaca no seguinte quadro:
Caso
Nominativo
Singular
regin-a
Plural
regin-ae
Vocativo
regin-a
regin-ae
Acusativo
regin-am
regin-as
Genitivo
regin-ae
regin-arum
Dativo
regin-ae
regin-is
Ablativo
regin-
regin-is
Comparando as formas piratam e reginam, observamos que duas informações não
redundantes desses itens estão contidas nas respectivas raízes: a forma fonológica e o gênero
gramatical. Em Prolog, é possível eliminar essas redundâncias por meio do predicado
atom_concat, que opera de modo semelhante a append. No entanto, ao invés de listas,
atom_concat tem átomos como argumentos.
Assim como palavras correspondem, em Prolog, a listas de um único elemento,
morfemas equivalem a átomos. Desse modo, uma forma como piratam resulta da
concatenação dos átomos pirat e am, para formar o átomo piratam. Esse átomo, por sua vez, é
uma palavra latina, constituindo, portanto, a lista [piratam]. Nessa operação de
concatenação, devem ser juntadas também as informações morfossintáticas da raiz e da
terminação, de modo que a sintaxe "saiba" que piratam é uma forma de substantivo
masculino, singular e acusativa.
No fragmento (18), essas observações são implementadas. Amplie o inventário de
morfemas de modo que o programa possa gerar todas formas da 1a declinação (i.e. classe
flexional 1) para os substantivos pirata, nauta, regina, magistra e poëta. Faça o mesmo para a
1a classe dos adjetivos (femininos e masculinos) e para verbos da 1a conjugação.
Se você sabe alemão ou grego, pode fazer uma minigramática nos mesmos moldes.
2
(18) Morfologia flexional do latim
%léxico
%inventário de morfemas
% o número indica a classe flexional (declinação)
raiz_nom (pirat,[1,masc]).
raiz_nom (naut,[1,masc]).
raiz_nom (regin,[1,fem]).
raiz_nom (mens,[1,fem]).
des_nom(am,[1,sg,ac]).
%regras da morfologia flexional
n([Z],[Gen,Num,Caso]):- raiz_nom (X,[Classe_Flex,Gen]),
des_nom(Y,[Classe_Flex,Num, Caso]),
atom_concat(X,Y,Z).
3
Download