Fonaments de Processament del Llenguatge Natural

13305 – UPF - Lingüística

 

Pràctica 4

 

Preparació de la pràctica 4

 

  1. En aquesta i en les properes pràctiques usarem el llenguatge de programació PROLOG. PROLOG és el llenguatge en el qual escriurem el programa de processament, les instruccions. Necessitem instal·lar al nostre ordinador un intèrpret: un altre programa que tradueixi les instruccions que escrivim en PROLOG al llenguatge de la màquina.

Aquest intèrpret (tècnicament en diem un ‘compilador’) és el que heu de descarregar i instal·lar a l’ordinador on vulgueu fer la pràctica. Als ordinadors de Rambla, podeu trobar-lo des de la finestra “Novell delivered applications”, i instal·lar-lo fent clic a sobre de la icona (triga uns 5 minuts).

 

2.     Per instal·lar-lo a casa el podeu descarregar a: http://www.swi-prolog.org/dl-stable.html triant la versió d’acord amb l’ordinador en el qual l’heu d’instal·lar. El cas més comú és Windows. Un cop descarregat el fitxer , l’heu d’executar  (Inicio/Ejecutar) per tal que s’auto-instal·li.

 

3.     En l’ordinador de casa a  ‘Programas’ i en Rambla a ‘Programes’, trobareu la icona de ‘swi-prolog’, l’executable que s’ha d’obrir en una pantalla com aquesta:

 

 

  1. Aquesta és la interfície (la pantalla per al qual podem donar instruccions al compilador de PROLOG) que usarem per tal d’executar els nostres programes (les instruccions) amb la instrucció ‘consult(XXX).’ on ‘XXX’ és el nom (amb tota l’especificació del camí) del fitxer on hem escrit el programa i on no podeu oblidar-vos de posar el punt al final. Per exemple, descarrega’t el fitxer automat.pl, i carrega’l a l’intèrpret de PROLOG de la següent manera:

 

 

Tingueu el compte que l’especificació del camí (‘c:/FPLN/pract4/’) dependrà d’on tingueu el fitxer, i en el cas del treball a les aules del disc (t:). En el meu cas tinc el fitxer en el directori ‘c:/tmp/FPLN/automat.pl’ i per això, el compilador de PROLOG em confirma que l’ha pogut compilar.

 

 

  1. Un cop el compilador ha llegit el programa, pot executar les ordres que li donem per pantalla gràcies a la interfície. Per exemple, li demanem que reconegui la paraula ‘casa’ de la següent manera:

 

 

Recordeu que aquest és l’autòmat que hem vist a classe i que ‘0’ correspon a l’estat inicial i ‘[c,a,s,a]’ és la llista (conjunt ordenat) de lletres que fan la paraula que volem comprovar. Podeu provar la capacitat generativa d’aquest autòmat dient-li:

 

?- automat(0,A).

 

Ara, estem demanant totes les llistes de lletres que conformen paraules, segons aquest autòmat, i com volem que ens digui totes les possibles li donem una variable, A, perquè ens les emmagatzemi aquí. Veureu que el resultats ens els dóna com a valors d’aquesta variable (com si preguntéssim ‘dóna’m tot el que pugui ser A’).

 

 

Per obtenir TOTES les possibilitats, l’hem de contestar amb un signe de punt i coma per pantalla (prémer la tecla de punt i coma, ‘;’).

 

 

Quan ja no tingui més resultats ens dirà ‘No’.

 

1. Exercici amb autòmats

 

 

  1. Ara podeu descarregar-vos el fitxer automat_parse.pl i el fitxer associat diccionari.pl.
  2. El motor que està al fitxer automat_parse.pl està fet per donar-nos una mica més d’informació que el que teníem a ‘automat.pl’. Ara ens dirà els estats pels quals ha passat d’aquesta manera:

 

 

Fixeu-vos que:

 

x   a la interfície donem la instrucció ‘test()’, amb la paraula que volem reconèixer en forma de llista de lletres: entre claus i cada lletra separada per un coma, i

x   no necessitem dir-li l’estat inicial, ara prendrà aquesta dada del fitxer on temin les declaracions del lèxic: ‘diccionari.pl’ que ara és així:

 

transicio(0,1,c).

transicio(1,2,a).

transicio(2,3,s).

transicio(3,4,a).

 

inicial(0).

final(4).

 

Treballeu (editeu amb ‘Bloc de notas’) solament el fitxer diccionari.pl, fent atenció que Windows no us canviï el nom a ‘diccionari.txt’ o diccionari.pl.txt’ perquè ja no funcionaria !!! i recordeu que cada canvi l’heu de desar (Guardar) i que heu de re-consultar el programa, per tal que el compilador tingui en compte els canvis. (Podeu usar les fletxes d’amunt i avall del teclat per recuperar instruccions anteriors).

 

 

 

  1. Heu de fer un autòmat que pugui analitzar de la manera més eficient (en forma de ‘trie’) les següents paraules del castellà:

 

casa, casas

caso, casos

casado, casada, casados, casadas

cansado, cansada, cansados, cansadas

calado, calada, calados, caladas

calmado, calmada, calmado, calmadas

 

  1. Verifica que solament analitzi/reconegui les paraules correctes i no les incorrectes. Comprova que no dóna cap anàlisi per les no-paraules:

 

calsado, canadas, camo.

 

Preguntes:

 

  1. Envia’m el fitxer ‘diccionari.pl’ on està l’autòmat
  2. Envia’m també un fitxer on l’autòmat final estigui descrit en forma de taula

 

 

 

 

RECORDEU:

 

Els exercicis s’hauran de lliurar en un fitxer adjunt per correu_e i el termini és les 23:59 del dia assenyalat. El nom del fitxer ha de ser:

 

            COGNOM_INICIALNOM_[Nom del exercici].extensió, per exemple:

 

            SERRA_J_practica1.doc

 

            En cas de dificultats, els alumnes podran utilitzar l’hora de tutoria del curs per resoldre-les amb el professor.