210 likes | 360 Views
CSA4050: Advanced Topics in NLP. Semantics V NL Access to Databases Semantics of Questions and Answers Simple Interpreters for Questions. Access to Databases: 3 approaches. DB Query Language Form Interface Natural Language. DB Query Language. range of C is countries
E N D
CSA4050: Advanced Topics in NLP Semantics V NL Access to Databases Semantics of Questions and Answers Simple Interpreters for Questions csa4050: Semantics V
Access to Databases:3 approaches • DB Query Language • Form Interface • Natural Language csa4050: Semantics V
DB Query Language range of C is countries range of Cont is continents range of I is inclusions retrieve( Cont.name, count(C.name where C.name = I.inside and I.outside = Cont.name)) csa4050: Semantics V
Form Interface csa4050: Semantics V
Natural Language • How many countries are there in each continent? csa4050: Semantics V
Issues • Accessibility • Type of query language • What needs to be learned to make a query? • Data input vs. data output • Flexibility • Can types of question be predicted? • Can types of question be easily changed? • Expressivity • Limitations on kinds of information present • What types of query is possible csa4050: Semantics V
ENGLISH LOGICAL FORM PROLOG ANSWER Chat 80 Pereira and Warren (1983)General Architecture Translation: what does the question mean Planning: how shall I answer it Execution: what is the answer? csa4050: Semantics V
Different Types of Sentence csa4050: Semantics V
Sentences and Assertions • Assertions are usually expressed by declarative sentences. • Our grammar/lexicon deals with very simple examples , e.g. John saw Fido • More complex declarative sentences includeAll candidates for CSA4050 failed.Candidates who fail more than four credits shall not be allowed to take resits. csa4050: Semantics V
Sentences and Questions • Questions are usually expressed by interrogative sentences. • Our simple grammar/lexicon does not yet deal with interrogative sentences. • To handle them we must modify the grammar • Issue: how do we recognise interrogative sentences? csa4050: Semantics V
Execution ofCommunicative Acts • Assertions add information to the database.The meaning of a declarative sentence involves execution an appropriate assert operation • Questions query information in the database.The meaning of an interrogative sentence involves execution of an appropriate query operation • Commands identify actions to be carried out. csa4050: Semantics V
Assertions and Questions: Semantic Representation csa4050: Semantics V
Basic Processing process(Sent,Result) :- s(SEM,Sent,[]), interpret(SEM,Result). In other words: to process the sentence: • Parse it to produce semantic representation SEM • Interpret SEM and give back RESULT • Next we must define the interpret predicate csa4050: Semantics V
Defining the Interpreter interpret(a1(X),A) :- a1(X,A). interpret(q1(Q),A) :- q1(Q,A). csa4050: Semantics V
Very Basic Intepretation a1(SEM,ok) :- asserta(SEM). • In the case of an assertion, just assert it. • N.B. no check for previous assertion. q1(SEM,yes) :- call(SEM), !. q1(SEM,no). • If it’s a yes-no question, see if it’s true csa4050: Semantics V
Dealing with Syntax • We now have a primitive interpretation mechanism in place. • It remains to modify the grammar/lexicon to handle the syntax of these very simple questions. • To begin with, we will limit ourselves to yes/no questions csa4050: Semantics V
Yes/No Questions:Grammar Rules for S % Declarative sentence s --> np, vp. John sees Fido % interrogative sentence s --> aux, np, vp. does John see Fido ? csa4050: Semantics V
S Rule with Arguments :- [process]. s(a1(S)) --> np(VP^S), vp(VP). s(q1(S)) --> aux, np(VP^S), vp(VP). csa4050: Semantics V
Complete Grammar s(a1(S)) --> np(VP^S), vp(VP). s(q1(S)) --> aux, np(VP^S), vp(VP). np(NP) --> n(NP). np(NP) --> d(N^NP), n(N). vp(VP) --> v(VP). vp(Z^P) --> v(V2), np(NP), {reduce(V2,Z,V1), reduce(NP,V1,P)}. % lexicon aux --> [does]. aux --> [did]. v(X^walk(X)) --> [walk]. v(X^walk(X)) --> [walked]. v(X^Y^chased(X,Y)) --> [chase]. v(X^Y^chased(X,Y)) --> [chased]. n(X^cat(X)) --> [cat]. n(VP^S) --> [suzie], {reduce(VP,suzie,S)}. n(VP^S) --> [felix], {reduce(VP,felix,S)}. d(RL^SL^some(X,R,S)) --> [a], {reduce(RL,X,R),reduce(SL,X,S) }. csa4050: Semantics V
Demo ?- process([does,john,see,fido],A). A=no ?- process([john,sees,fido],A). A=ok ?- process([does,john,sees,fido],A). A=yes csa4050: Semantics V
Improving the Interpreter dbq :- readLine(L), dbq1(L), !, dbq. dbq. dbq1([halt]) :- nl, write(bye), !, fail. dbq1(Sent) :- process(Sent,A). csa4050: Semantics V