27
1 Inteligenta Inteligenta Artificiala Artificiala Universitatea Politehnica Bucuresti Anul universitar 2008-2009 Adina Florea http://turing.cs.pub.ro/ia_08 si curs.cs.pub.ro

Prelucrarea limbajului natural

  • Upload
    vuthien

  • View
    240

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Prelucrarea limbajului natural

1

Inteligenta ArtificialaInteligenta Artificiala

Universitatea Politehnica BucurestiAnul universitar 2008-2009

Adina Floreahttp://turing.cs.pub.ro/ia_08 si curs.cs.pub.ro

Page 2: Prelucrarea limbajului natural

2

Curs nr. 13

Prelucrarea limbajului natural

2

Page 3: Prelucrarea limbajului natural

3

ComunicareComunicare Definitie: schimbul intentional de informatie generat de

producerea si perceperea semnelor dintr-un sistem partajat de semne conventionale

Componentele comunicarii– Intentie: decide Emitator– Generare: formeaza– Sinteza: produce

– Perceptie: percepe (P1 ..Pn) Receptor– Analiza: lexic, sintactic, semantic, pragmatic– eliminare ambiguitate: alege Pi

– Incorporare: convingere Pi

Limbaj de reprezentare internLimbaj de comunicare

Page 4: Prelucrarea limbajului natural

Acte de comunicareActe de comunicareJ. Austin - How to do things with words, 1962, J. Searle - Speech acts, 1969Un 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 inchisaCategorii ilocutionale

Asertive Directive Comisive (angajamente) Permisive (permit) Prohibitive (interzic) Declarative Expresive

Page 5: Prelucrarea limbajului natural

5

Definire limbajDefinire limbaj Lexicon Analiza lexicala Gramatici Analiza (pars oratoris) Terminale, neterminale, reguli de rescriere Simbol de inceput LHS RHS

Analza semantica Analiza pragmatica

Page 6: Prelucrarea limbajului natural

6

Lexicon

Noun breeze | wumpus | ballVerb is | see | smell | hitAdjective right | left | smelly …Adverb here | there | ahead …Pronoun me | you | I | itRelPronoun that | whoName John | Mary Article the | a | an Preposition to | in | on Conjunction and | or | but

Page 7: Prelucrarea limbajului natural

7

GramaticaGramatica

Neterminale – diferite categorii din propozitie– sentence S– noun phrase NP– verb phrase VP– prepositional phrase PP– relative clause RelClause

Page 8: Prelucrarea limbajului natural

8

Exemplu

S NP VP | S Conjunction SNP Pronoun | Noun | Article Noun |

NP PP | NP RelClauseVP Verb | VP NP | VP Adjective |

VP PP | VP AdverbPP Preposition NPRelClause RelPronoun VP

Page 9: Prelucrarea limbajului natural

9

Analiza sintacticaAnaliza sintactica

– top-down parsing– bottom-up parsing

Page 10: Prelucrarea limbajului natural

10

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

Page 11: Prelucrarea limbajului natural

11

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

Page 12: Prelucrarea limbajului natural

12

Definite Clause Grammar (DCG)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

Page 13: Prelucrarea limbajului natural

Definite Clause Grammar (DCG)Definite Clause Grammar (DCG)

NP(s) este adevarat daca s este NPS NP VP devineNP(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

Page 14: Prelucrarea limbajului natural

In BNF S NP VP

In LP / DGCNP(s1) VP(s2) S(append(s1, s2))

In BNF NP Pronoun | Noun

In LP / DGC

Pronoun(s) Noun(s) NP(s) BNFNoun ball | book

In LP / DGC (s = “ball” s = “book”) Noun(s)

Reguli de corespondenta

Page 15: Prelucrarea limbajului natural

BNF, DCG, PrologBNF, DCG, PrologBNF FOPL/DCG PROLOG

S NP VP

NP Noun

Noun stenchNoun wumpus

VP VerbVerb smellsVerb kills

NP(s1) VP(s2) S(append(s1,s2))

Noun(s) NP(s)

(s = “stench” s = “wumpus”) Noun(s)

Verb(s) VP(s)(v = “smells” v = “kills”) Verb(v)

sentence([S1, S2]) :- np(S1), vp(S2).

np(S):- noun(S).

noun(stench).noun(wumpus).

vp(S):- verb(S).verb(smells).verb(kills).

?- sentence([wumpus, smells]).?-sentence([S1, S2]).

Page 16: Prelucrarea limbajului natural

16

Imbogatire DCGImbogatire DCG

Imbogatesc neterminale cu argumente suplimentare

Rol argumente:– Ataseseaza semantica– Verifica corectitudinea gramaticala– Adauga expresii / functii care se

testeaza

Page 17: Prelucrarea limbajului natural

Argument pt semanticaArgument pt semanticaBNF 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

Page 18: Prelucrarea limbajului natural

The dog has legs. (caine parti picioare)The ball is yellow. (minge proprietate galbena)The ball is red. (mine proprietate rosie)The dog bites. (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).noun(ball,minge).noun(legs,picioare).verb(bytes,musca).verb(is,este).verb(has,are).adjective(yellow,galbena).adjective(red,rosie).

?- sentence([the,ball,is,yellow],Sem).Sem = [minge, proprietate, galbena] Yes?- sentence([the,dog,bytes],Sem).Sem = [caine, actiune, musca] Yes?- sentence([is,dog,bytes],Sem).No?- sentence([the,dog,has,legs],Sem).Sem = [caine, parti, picioare] Yes

Page 19: Prelucrarea limbajului natural

19

Verificare corectitudine gramaticalaVerificare corectitudine gramaticala

cazuri subcategorii verbe: complementul pe

care il poate accepta un verb acord subiect predicat etc.

Parametrizarea neterminalelor

Page 20: Prelucrarea limbajului natural

CazuriNominativ (subjective) I take the bus Eu iau autobuzulYou take the bus Tu iei autobuzulHe takes the bus El ia autobuzul Acuzativ (objective)He gives me the book Imi da cartea

S NP(Nominativ) VPNP(case) Pronoun (case) | Noun | Article Noun

// IVP VP NP(Acuzativ) // believe himVP VP PP // turn to the rightVP VP AdjectiveVP VerbPP Preposition NP(Acuzativ)Pronoun(Nominativ) I | you | he | shePronoun(Acuzativ) me | you | him | her  

Page 21: Prelucrarea limbajului natural

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).

Page 22: Prelucrarea limbajului natural

22

Subcategorii verbeSubcategorii 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

Page 23: Prelucrarea limbajului natural

VP(subcat) {subcat = np} VP(np) NP(Acuzativ)| {subcat = adj} VP(adj) Adjective| {subcat = pp} VP (pp) PP| Verb

smell [NP] smell a wumpus[Adjective] smell awfull[PP] smell like a wumpus

is [Adjective] is smelly[PP] is in box[NP] is a pit

give [NP, PP] give the gold in box to me[NP, NP] give me the gold

died [] died

Page 24: Prelucrarea limbajului natural

S NP(Nominativ) VP(subcat)

NP(case) Pronoun (case) | Noun | Article Noun

Pronoun(Nominativ) I | you | he | shePronoun(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

Cazuri si subcategoriiCazuri si subcategorii

Page 25: Prelucrarea limbajului natural

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).

Page 26: Prelucrarea limbajului natural

26

Analiza pragmaticaAnaliza 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

Page 27: Prelucrarea limbajului natural

27

AmbiguitateAmbiguitate

Lexicala – acelasi cuvant diverse intelesuri

Sintactica – arbori diferiti de analiza Referentiala – referire la obiecte

anterioare Pragmatica – referire la loc, timp