Model de llenguatge

De Viquipèdia
Dreceres ràpides: navegació, cerca

En processament de llenguatge natural (PLN), anomenem model de llenguatge al model probabilístic P(e) que assigna a cada possible frase "e" la probabilitat que pertanya a una determinada llengua. Per exemple, si tenim un model de llenguatge del català, ens donaria la probabilitat que la frase "Són les dues de la matinada" siga una frase del català.

Aquestos models poden ser útils en diverses tasques del PLN, com el reconeixement de la parla, la desambiguació lèxica, traducció automàtica estadística, etc.

Com fer un model de llenguatge[modifica | modifica el codi]

Una primera aproximació[modifica | modifica el codi]

Una forma senzilla, intuïtiva, que ens permeta generar un model del llenguatge seria utilitzar un gran corpus de frases de la llengua que volem modelar. En aquest corpus estarien totes les frases que qualsevol persona haja dit mai en eixa llengua.

Suposem que tenim una base de dades de mil milions de frases que s'han dit, i que la frase "Com va?" apareix 76.413 vegades en la base de dades. Llavors podríem dir que P("Com va?") = 76.412 / 1.000.000.000 = 0,000076413. Açò ens permetria, en un primer moment, distingir si una frase pertany o no a una llengua, o distingir a quina llengua pertany (comparant les probabilitats donades pel model de llenguatge), etc.

Però aquesta aproximació presenta un problema evident. Moltes frases que serien totalment vàlides en una llengua tindrien una probabilitat P(e) de zero, perquè no s'han vist mai. I açò no seria correcte.

Agafem com a exemple la frase "M'agrada cuinar com a dinar serps blaves que no siguen verinoses.". És molt probable que mai ningú no haja dit aquesta frase. Vol dir això que no és una frase correcta en català? Segons el model que hem definit prèviament, és exactament això el que significaria: al obtenir una probabilitat de 0, no la contemplaríem com a una frase correcta en català.

Les persones fem alguna cosa més que recordar si hem sentit mai o no una determinada frase per determinar si forma part o no d'una llengua. Semble que som capaços de dividir una frase en parts més menudes i, si els components semblen correctes i a més s'uneixen d'una manera raonable, llavors diem que la frase és correcta o pertany a eixa llengua.


Models basats en n-grames[modifica | modifica el codi]

Article principal: «N-grama».

La forma més fàcil de dividir cadenes de paraules és considerar subcadenes. Una subcadena de n paraules s'anomena n-grama. Concretament, utilitzem unigrama per a n=1, bigrama per a n=2, trigrama en el cas de n=3, etc.

Si una cadena té molts n-grames raonables, possiblement siga una cadena vàlida. No necessàriament, però és possible que siga vàlida.

Si definim xy com la cadena formada per x seguida de y, podem dir

P(y \mid x) = \frac{ocurrencies(xy)}{ocurrencies(x)},


és a dir, que la probabilitat que y vinga darrere de x depèn de la quantitat de vegades que hem vist la cadena xy i de la quantitat de vegades que hem vist la subcadena x. Igual que passava amb l'aproximació intuïtiva, aquest model també pot proporcionar probabilitats zero. Però aquestes es resolen amb tècniques de suavitzat.

Aquest mètode també s'anomena Model de Markov (no-ocult).

Models basats en Models ocults de Markov[modifica | modifica el codi]

Article principal: «Model ocult de Markov».

En aquest cas, el mètode probabilístic que ens proporciona el model de llenguatge és el Model ocult de Markov. En aquest cas, a diferència del que passava amb els n-grames, no disposem d'informació de en quin estat ens trobem en cada moment. Abans sabíem, donat un estat, quines eren les probabilitats de transició als altres estats. I en tot cas, sabíem en quin estat ens trobàvem. Ara, per contra, aquestos valors no són públics, i només disposem dels observables que emet el model per saber les probabilitats.

S'utilitza molt en desambiguació lèxica.

Vegeu també[modifica | modifica el codi]

Referències[modifica | modifica el codi]

A Statistical MT Tutorial Workbook, de Kevin Knight