Natural Language Processing

Download Report

Transcript Natural Language Processing

Inteligenta Artificiala
Universitatea Politehnica Bucuresti
Anul universitar 2008-2009
Adina Florea
http://turing.cs.pub.ro/ia_08 si
curs.cs.pub.ro
1
Curs nr. 13
Prelucrarea limbajului natural
2
2
Comunicare


Definitie: schimbul intentional de informatie
generat de producerea si perceperea
semnelor dintr-un sistem partajat de semne
conventionale
Componentele comunicarii
– Intentie: decide
– Generare: formeaza
– Sinteza: produce
–
–
–
–
Emitator
Limbaj de reprezentare intern
Limbaj de comunicare
Perceptie: percepe (P1 ..Pn)
Receptor
Analiza: lexic, sintactic, semantic, pragmatic
eliminare ambiguitate: alege Pi
Incorporare: convingere Pi
3
Acte de comunicare
J. Austin - How to do things with words, 1962, J. Searle - Speech acts, 1969
Un act de comunicare:
 locutie = fraza spusa de locutor
 illocutie = intelesul dorit spre a fi comunicat de locutor (performativa)
 prelocutie = actiunea care rezulta din locutie
Maria i-a spus lui Gigel: "Te rog inchide usa"
locutie
illocutie
prelocutie: usa inchisa
Categorii ilocutionale
 Asertive
 Directive
 Comisive (angajamente)
 Permisive (permit)
 Prohibitive (interzic)
 Declarative
 Expresive
Definire limbaj









Lexicon
Analiza lexicala
Gramatici
Analiza (pars oratoris)
Terminale, neterminale, reguli de rescriere
Simbol de inceput
LHS  RHS
Analza semantica
Analiza pragmatica
5
Lexicon
Noun  breeze | wumpus | ball
Verb  is | see | smell | hit
Adjective  right | left | smelly …
Adverb  here | there | ahead …
Pronoun  me | you | I | it
RelPronoun  that | who
Name  John | Mary
Article  the | a | an
Preposition  to | in | on
Conjunction  and | or | but
6
Gramatica

Neterminale – diferite categorii din
propozitie
– sentence S
– noun phrase NP
– verb phrase VP
– prepositional phrase PP
– relative clause RelClause
7
Exemplu
S  NP VP | S Conjunction S
NP  Pronoun | Noun | Article Noun |
NP PP | NP RelClause
VP  Verb | VP NP | VP Adjective |
VP PP | VP Adverb
PP  Preposition NP
RelClause  RelPronoun VP
8
Analiza sintactica
– top-down parsing
– bottom-up parsing
9
Top-Down Parsing
"John hit the ball"
1. S
2. S  NP, VP
3. S  Noun, VP
4. S  John, Verb, NP
5. S  John, hit, NP
6. S  John, hit, Article, Noun
7. S  John, hit, the, Noun
8. S  John, hit, the, ball
10
Bottom-Up Parsing
1. John, hit, the, ball
2. Noun, hit, the, ball
3. Noun, Verb, the, ball
4. Noun, Verb, Article, ball
5. Noun, Verb, Article, Noun
6. NP, Verb, Article, Noun
7. NP, Verb, NP
8. NP, VP
9. S
11
Definite Clause Grammar (DCG)





Gramatici BNF - probleme
Utilizare LP – clauze Horn definite
Gramatici cu clauze definite (DCG)
Fiecare regula din gramatica poate fi
vazuta ca o regula din DCG
Fiecare categorie sintactica se
reprezinta printr-un predicat cu un
argument sir
12
Definite Clause Grammar (DCG)

NP(s) este adevarat daca s este NP
S  NP VP
devine
NP(s1)  VP(s2)  S(append(s1,s2))




Analiza (parsing) = inferenta logica
Bottom-up parsing – foreward chaining
Top-down parsing – backward chaining
Aceeasi gramatica utilizata atat pentru
analiza cat si pentru generare
In BNF
S  NP VP
Reguli de corespondenta
In LP / DGC
NP(s1)  VP(s2)  S(append(s1, s2))
In BNF
NP  Pronoun | Noun
In LP / DGC
Pronoun(s)  Noun(s)  NP(s)
BNF
Noun  ball | book
In LP / DGC
(s = “ball”  s = “book”)  Noun(s)
BNF, DCG, Prolog
BNF
FOPL/DCG
PROLOG
S  NP VP
NP(s1)  VP(s2) 
S(append(s1,s2))
sentence([S1, S2]) :np(S1), vp(S2).
NP  Noun
Noun(s)  NP(s)
np(S):- noun(S).
Noun  stench
Noun 
wumpus
(s = “stench”  s = “wumpus”)  noun(stench).
Noun(s)
noun(wumpus).
VP  Verb
Verb  smells
Verb  kills
Verb(s)  VP(s)
(v = “smells”  v = “kills”) 
Verb(v)
vp(S):- verb(S).
verb(smells).
verb(kills).
?- sentence([wumpus,
smells]).
?-sentence([S1, S2]).
Imbogatire DCG


Imbogatesc neterminale cu argumente
suplimentare
Rol argumente:
– Ataseseaza semantica
– Verifica corectitudinea gramaticala
– Adauga expresii / functii care se
testeaza
16
Argument pt semantica
BNF
FOPL/DCG
PROLOG
S(sem)  NP(sem1) VP(sem2)
{compose(sem1, sem2, sem)}
NP(s1, sem1)  VP(s2, sem2)

S(append(s1, s2)),
compose(sem1, sem2, sem)
slide urmator
semantica compozitionala
The dog has legs.
The ball is yellow.
The ball is red.
The dog bites.
(caine parti picioare)
(minge proprietate galbena)
(mine proprietate rosie)
(caine actiune musca)
sentence(S, Sem) :- np(S1, Sem1), vp(S2, Sem2), append(S1, S2, S),
Sem = [Sem1 | Sem2].
np([S1, S2], Sem) :- article(S1), noun(S2, Sem).
vp([S], Sem) :- verb(S, Sem1), Sem = [actiune, Sem1].
vp([S1, S2], Sem) :- verb(S1,_), adjective(S2, Sem1), Sem = [proprietate, Sem1].
vp([S1, S2], Sem) :- verb(S1,_), noun(S2, Sem1), Sem = [parti, Sem1].
noun(dog,caine).
?- sentence([the,ball,is,yellow],Sem).
noun(ball,minge).
Sem = [minge, proprietate, galbena]
noun(legs,picioare).
Yes
?- sentence([the,dog,bytes],Sem).
verb(bytes,musca).
Sem = [caine, actiune, musca]
verb(is,este).
Yes
verb(has,are).
?- sentence([is,dog,bytes],Sem).
adjective(yellow,galbena).
No
adjective(red,rosie).
?- sentence([the,dog,has,legs],Sem).
Sem = [caine, parti, picioare]
Yes
Verificare corectitudine gramaticala

cazuri
subcategorii verbe: complementul pe
care il poate accepta un verb
acord subiect predicat
etc.

Parametrizarea neterminalelor



19
Cazuri
Nominativ (subjective)
I take the bus
You take the bus
He takes the bus
Eu iau autobuzul
Tu iei autobuzul
El ia autobuzul
Acuzativ (objective)
He gives me the book
Imi da cartea
S  NP(Nominativ) VP
NP(case)  Pronoun (case) | Noun | Article Noun
//
I
VP  VP NP(Acuzativ)
//
believe him
VP  VP PP
//
turn to the right
VP  VP Adjective
VP  Verb
PP  Preposition NP(Acuzativ)
Pronoun(Nominativ)  I | you | he | she
Pronoun(Acuzativ)  me | you | him | her
sentence(S) :- np(S1,nominativ), vp(S2), append(S1, S2, S).
np([S], Case) :- pronoun(S, Case).
np([S], _ ) :- noun(S).
np([S1, S2], _ ) :- article(S1), noun(S2).
pronoun(i, nominativ).
pronoun(you, _ ).
pronoun(he, nominativ).
pronoun(she, nominativ).
pronoun(me, acuzativ).
pronoun(him, acuzativ).
pronoun(her, acuzativ).
noun(ball).
noun(stick).
article(a).
article(the).
Subcategorii verbe

Lista de subcategorii: ce complemente
accepta verbul
depinde de verb

S  NP(Nominativ) VP(subcat)



VP(subcat)  VP(subcat) PP
| VP(subcat) Adverb
I smell the wumpus now
22
VP(subcat)  {subcat = np} VP(np) NP(Acuzativ)
| {subcat = adj} VP(adj) Adjective
| {subcat = pp} VP (pp) PP
| Verb
smell
[NP]
[Adjective]
[PP]
smell a wumpus
smell awfull
smell like a wumpus
is
[Adjective]
[PP]
[NP]
is smelly
is in box
is a pit
give
[NP, PP] give the gold in box to me
[NP, NP] give me the gold
died
[]
died
Cazuri si subcategorii
S  NP(Nominativ) VP(subcat)
NP(case)  Pronoun (case) | Noun | Article Noun
Pronoun(Nominativ)  I | you | he | she
Pronoun(Acuzativ)  me | you | him | her
VP(subcat)  {subcat = np} VP(np) NP(Acuzativ)
| {subcat = adj} VP(adj) Adjective
| {subcat = pp} VP (pp) PP
| Verb
| VP(subcat) PP
| VP(subcat) Adverb
VP(subcat)  {subcat = np} VP(np) NP(Acuzativ)
| {subcat = adj} VP(adj) Adjective
| {subcat = pp} VP (pp) PP
| Verb
| VP(subcat) PP
| VP(subcat) Adverb
sentence(S) :- np(S1,nominativ), vp(S2, Subcat),
append(S1, S2, S).
VP(Subcat)  VP(Subcat) … !!!
vp(S, Subcat) :- Subcat = np, vp1(S1, np),np(S2, acuzativ),
append(S1, S2, S).
vp(S, Subcat) :- vp1(S1, Subcat), pp(S2), append(S1, S2, S).
vp1([S],np):-verb(S).
verb(give).
verb(make).
Analiza pragmatica





Analiza semantica
Eliminare ambiguitate
Interpretare pragmatica
– Mod de utilizare si efect asupra
receptorului;
– Completeaza interpretarea semantica prin
considerarea informatiilor despre situatia
curenta
Indexical – refera situatia curenta
Anafora – refera obiecte deja mentionate 26
Ambiguitate




Lexicala – acelasi cuvant diverse
intelesuri
Sintactica – arbori diferiti de analiza
Referentiala – referire la obiecte
anterioare
Pragmatica – referire la loc, timp
27