Processament de llenguatge natural (II) - Les tècniques 1

Continuem amb el tema de processament de Llenguatge Natural que vam iniciar a la Intro (aquí per veure l'entrada).
Tant des del punt de vista computacional com lingüístic, s'utilitzen tècniques de la
intel·ligència artificial com són:

>> Models de representació del coneixement i del raonament,
>>Llenguatges de programació declarativa,
>>Algoritmes de cerca, i
>>Estructures de dades.
Nivells i tècniques per tractar el LN
Volem destacar dintre les tècniques de representació i processament que ens enfrontem a dos punts claus entrellaçats entre ells: per una part tractem el problema de representació lingüística i, per l'altra, el problema de tractament mitjançant recursos informàtics. No podem tractar les tècniques computacionals sense entendre de manera clara la part lingüística.

Distingim en l'anàlisi de la llengua quatre nivells bàsics:
  • Nivell Morfològic (lèxic)
  • Nivell Sintàctic
  • Nivell semàntic
  • Nivell pragmàtic
No obstant, podem trobar altres nivells com el nivell fonològic (referent a la relació de les paraules amb els sons i la seva pronunciació), l'anàlisi del discurs (que estudia com un fragment d'informació pot ajudar a la comprensió d'altres fragments d'informació expressats a continuació), i per acabar, la cultura general que tots els parlants tenimsobre el món.

2.1 -Nivell Lèxic i Morfològic: Algorismes d’etiquetatge

El lèxic d'una llengua consisteix en el conjunt de mots o paraules d'aquesta. Correspon
de manera estàndard a les entrades que et pots trobar en un diccionari i tantes entrades com significats tingui. Dintre el lèxic trobem la informació morfològica, la qual analitza la forma de les paraules, és a dir, per totes aquelles paraules que varien, determinar el gènere, el nombre, el temps verbal, prefixes, sufixes... (blanc, blanca, dona, dones, estudia, estudiar,...). Per altra banda, també hi ha els mots que no canvien de cap manera (i, però, doncs, diàriament...). Tot i ser dos nivells diferents, amb funcions separades, dintre el processament de llenguatges naturals, el nivell lèxic no pot treballar per separat del nivell morfològic, tant com el morfològic no pot del lèxic.
Hi ha diversos algoritmes d’anàlisi morfològics relacionats amb les gramàtiques: es diferencien els analitzadors que funcionen de dalt a baix, de baix a dalt, o la combinació dels dos i les seves variants.
Una tècnica lingüística seria, per exemple, la morfologia derivacional, procés mitjançant el qual es creen paraules noves.
Es realitza unint un morfema a una formabase:
Les parts del llenguatge poden subdividir-se tant com faci falta en funció de les
necessitats. Les etiquetes de Part of Speech del Brown Corpus i de Penn Treebank són
les més utilitzades, per exemple:
Etiquetarem cada paraula d’una frase segons a la part del llenguatge que pertany:
Time (NN) flies (VBZ) like (IN) and (DT) arrow (NN)
L’estudi de la morfologia es basa en les llistes de transformació i els models de Markov que utilitzen l’etiquetat explicat anteriorment per analitzar millor les paraules d’un text.
Per exemple tenim el cas bàsic de SI precondició LLAVORS canvia l’etiqueta a XXX

All (NN) the (NN) boys (NN) and (NN) the (NN) girls (NN) came (NN)
SI la paraula és etiquetada com NN
I acaba amb ‘s’
LLAVORS canvia l’etiqueta a NNS

All(NN) the (NN) boys (NNS) and (NN) the (NN) girls (NNS) came (NN)

Com podem observar si apliquem l’algorisme de manera repetitiva amb diferents condicions, les paraules anirien canviant l’etiquetat inicial per un de més específic, així la màquina podria analitzar la frase entrant i donar una resposta més coherent. La pregunta seria, i quan parem aquest algorisme? Es diu que “aquesta millora” d’etiquetatge hauria de ser igual a un cert llindar, aquest l’especifica el programador segons la correcció i les condicions.
Si a més a més utilitzem les cadenes de Markov podríem preveure l’etiquetat de les futures paraules basant-nos en les prèviament canviades. Si ho combinem amb les lleis de Laplace com hem pogut veure en exemples online, podríem arribar a obtenir la probabilitat de precisió abans fins i tot d’inicialitzar el nostre algorisme. Això però, ja és un nivell més alt de precisió.

2.2 Nivell sintàctic: bottom-up algorithm i Chomsky

En el nivell sintàctic es proporciona l'anàlisi de les relacions de concordança i jerarquia que tenen cada mot d'una oració. Segons quines llengües s'analitzin, poden haver-hi confusió entre el límit que separa la sintaxi i la morfologia, passant a denominar-se anàlisis morfosintàctic.
Aplicant el nivell morfològic, ens podem trobar amb un grup de paraules correctes individualment però sense cap relació o significat coherent al llegir-les com a grup o oració. El resultat d'aquest procés genera una estructura corresponent a les categories sintàctiques formades per cada una de les unitats lèxiques que formen l'oració. En altres paraules, obtindrem un arbre sintàctic.

Les gramàtiques, tal com podem veure en l’exemple anterior, estan formades per un
conjunt de regles:

O ----> SN, SV
SN ----> det, N’
N’ ----> N’, SP | SAdj, N’ | N
SAdj ----> Adj
SP ----> P, SN
SV ----> V, SN

Aquest és només un exemple, però poden haver-hi infinites combinacions i moltes més regles que les nomenades anteriorment.
De teories de sintaxi per treballar en matèria computacional n’hi ha moltes, les més conegudes (no les explicarem, es troben fàcilment a la wikipedia) algunes són:

- Context- Free Grammars (CFG)
- Definitive-Clause Grammars (DCG)
- Head-driven phrase structure grammar (HPSG)
- Stochastic context-free grammar (PCFG)

Totes aquestes proposen models d’estudi i implementació diferents, segons models basats en probabilitat i estadística.
Una tècnica de IA seria la de bottom-up on es comença analitzant les paraules d’una oració. Si una sub-cadena de símbols coincideix amb la part dreta d’una regla, la reemplaça per la part esquerra. S’acaba quan s’han reduit totes al símbol inicial S, exemple:

El problema és que és poc eficient si existeix ambigüetat lèxica. També te el problema
de ser exponencial, és per aquest motiu que van sorgir els algorismes Chart basats en
la Forma Normal de Chomsky:
Una gramàtica està en FNC si totes les regles es basen en alguna d’aquestes dues formes:

1- Regles binàries amb símbols no terminals A :: = B C
2- Regles unaries que generen símbols terminals A :: = w

El Teorema diu que per a tota CFG existeix una gramàtica equivalent en FNC.
Tot i que el Teorema és important, no entrarem en algorismes Chart perquè no els
podem desenvolupar en AIML.

2.4 Nivell semàntic : classificador basat en T.I.

La semàntica fa referència al significat o contingut de les paraules o mots. Dintre la semàntica distingim dos tipus de mots, els que de per si ens proporcionen informació, anomenats lexicals o plens (edifici, menjar, negre,...), i els que individualment no ens proporcionen informació, anomenats gramaticals o buits (tu, aquell, a...).
En els darrers anys, l’anàlisi semàntic ha experimentat avenços importants, resolent els principals problemes amb què ens trobàvem. No obstant, a la representació del significat no ha arribat als resultats desitjats, deixat sense resoldre satisfactòriament nombroses qüestions. Un exemple que s’ha volgut tractar al llarg dels últims anys, i que sembla que ha comportat molt de moviment dintre els grups de recerca, és la cerca intel·ligent a la web a través de motors de cerca o agents que, no ens trobin informació segons la coincidència de les paraules a cercar, sinó que ens trobi contingut relacionant a aquell “concepte” que volem trobar. És a dir, que entenguin què volem.

Donar significat a les paraules, inclòs disposant d’un diccionari complet, és molt difícil, i
 pot donar lloc a diverses interpretacions segons les paraules a tractar (cap, roba,...). Per facilitar el processament, la modularitat és una de les propietats desitjables a obtenir, cas que ens permet distingir entre els significats independents i significats dependents dintre el context.
El significat independent fa referència al significat que cada mot té per separat sense considerar el significat obtingut segons l’ús d’una determinada situació, de manera que ignora la influència del context o les intencions de l’emissor. Per altra banda, el component significatiu d’una frase associada a les circumstàncies en què s’emet, s’estudia per la pragmàtica i és conegut pel seu significat dependent dintre el context.
L’estudi dels textos on es distingeix estructures modulars per obtenir informació i propietats complexes del mateix, expressades mitjançant l’anàlisi de diversos eixos o mòduls independents, permet l’estudi d’una manera més profunda. No obstant, tot i ser línies independents, es poden entrellaçar entre ells per obtenir una informació encara més complexa. Alguns mòduls estudiats són: els d’events-Factivitat (amb l’objectiu de detectar els events dels quals es parla en el text), temporalitat, estructura retòrica,...

Alguns problemes que ha de resoldre la interpretació semàntica són:
>>Eliminar significats de paraules utilitzant restriccions independents del context.
>>Identificar el paper semàntic de cada paraula a la frase.
>>Identificar restriccions creuades derivades de l’estructura de la frase.

Procés en el desenvolupament de la interpretació semàntica
Pel què fa l’estructura semàntica que es generarà, ens pot interessar distingir o comparar l’estructura obtinguda en l’anàlisi sintàctic amb aquesta per determinar si existeix o no una simetria. En cas que hi hagi simetria, a partir de l’arbre sintàctic es generarà una estructura idèntica amb les mateixes característiques, a la qual es realitzarà l’anàlisi semàntic. En cas contrari, si no hi hagués simetria entre ambdues estructures, a l’estructura generada per l’anàlisi sintàctic es produirà un conjunt de
modificacions on es representarà la semàntica.

Cada opció esmentada pot implementar-se de manera seqüencial o paral·lela.
Per acabar, la combinació de les dues opcions pot donar lloc a un model on hi hagi relació entre les regles sintàctiques i semàntiques, donant lloc que cada regla sintàctica contingui una regla semàntica corresponent, tot i que no cal dur-lo a terme.
El resultat obtingut, conegut amb el nom de knowledge representation, representa de manera formal el significat representat pel lèxic de cada paraula i interpretat pel semàntic.
Un cop plantejats els problemes i els objectius, quines regles s’apliquen a la semàntica? Existeixen vàries tècniques com hem comentat on podríem resoldre els principals problemes de significat: consultem a un diccionari o a una Base de Dades. També podríem utilitzar Classificadors Bayesians per estimar el significat d’una paraula en un context partint de la probabilitat en casos anteriors. Però, com es de compendre, no disposem d’un agent tant extèns i amb una capacitat d’estimació de paraules. Així que ens basarem en el classificador basat en la Teoria de la Informació (TI). Es tracta d’agrupar les característiques utilitzades per a la classificació de manera que ens donin la màxima informació possible per a distingir els sentits. Per exemple:

Volem desambiguar la paraula (Prendre) que es podria traduir en anglès a (take, make, rise, speak) utilitzant com a característica de la classificació, el seu objecte directe (mesure, note, exemple, decision, parole).
Aplicarem un algosimes flip-flop (Brown 1991) on tinguent dos conjunts de característiques:

T = {t1...tm} = {take,make,rise,speak}
X = {x1...xn} = {nesure, note, example, decision, parole}

1- Començarem amb una partició aleatòria de T, que serà P = {P1,P2}
2- Mentres es produeixi una millora en I
          a. Trobar una partició de X, que serà Q = {Q1,Q2} que maximitzi I(P;Q) 
          b. Trobar P ={P1,P2} que maximitzi I(P;Q)
L’exemple podria concloure (independentment de l’assignació de les particions aleatòria) amb:
P1 = {take}
P2 = {make, rise, speak}
Q1 = {mesure, note, example}
Q2 = {decision, parole}

[ Processament de Llenguatge Natural - Llambí, Sau, Pozo, Ruiz ]


Previous
Next Post »