Parsigsalgoritmer OH-serie 1: itroduktio http://stp.ligfil.uu.se/~matsd/uv/uv12/pa/ Mats Dahllöf Istitutioe för ligvistik och filologi April 2012 Parsigsalgoritmer: iledig Vad är parsig? Vad är e algoritm? Allmäa aspekter hos algoritmer för sytaktisk aalys: Represetatio av grammatiska utsagor operatioer som bygger dem. Modell av språket (t.ex. grammatik, statistisk modell). trategier för läsig och strukturkostruktio. Öskvärda egeskaper Tillämpigar 1 2 Algoritmer e systematisk procedur som i ett ädligt atal steg ager hur ma utför e beräkig eller löser ett givet problem (NE). De abstrakta pricipe bakom ett program. E algoritm ka implemeteras på olika sätt. De ses oftast som ermiistiska: de väljer i varje läge ett bestämt ästa steg. Iblad räkas äve icke-ermiistiska system som algoritmer (exempel på kurse: trasitiossystem). Blir ermiistiska i kombiatio med e styrade mekaism. Parsigalgoritmer I Parsig egelska or för satslösig. Tekisk bemärkelse i sveska: sytaktisk aalys i dator, både av aturligt och artificiellt språk. Parsigsalgoritm: E algoritm som givet e typ av grammatisk aalys, räkar ut e mägd aalyser (typiskt sytaxträd) av e give sträg av symboler. Ka t.ex. bygga på e formell grammatik eller e statistisk modell. 3 4
Parsigsalgoritmer II Olika urval aalyser: alla (om grammatike tillåter ambiguitet), bästa (utifrå ågo ragordig), e eda, etc. Måga parsigsalgoritmer beskrivs i icke-ermiistiska termer: de tillåter då olika vägar till olika aalyser (vid ambiguitet) eller till e och samma aalys. (Exempel: shift-reduce-algoritmera som vi skall se på lägre fram.) Recogitio är ma bara får ett ja eller ej till fråga om grammatike ka geerera sträge. Tillämpigar av parsig Måga språktekologiska tillämpigar ikluderar parsig: pråkgraskig (stavig, grammatik, stil etc.) Dokumetsökig Iformatiosextraktio Maskiöversättig Talsytes ytaktisk iformatio är ästa alltid värdefull. Fråga är om de är värd priset i tid/datorkraft och kostade för själva parser. 5 6 Parsig: två problem/förtjäster Parsigskompoeter i tillämpigar, typiska öskemål: Ma vill alltid ha e aalys: Om ma haterar autetiskt språk stöter ma på tidigare ej sedda feome. Robusthet: systemet gör ågot vettigt med allt hittar. Ma vill ite ha måga aalyser: pråk är geuit flertydigt och ofta artficiellt (och mågfaldigt) flertydigt givet e grammatik. Disambiguerig: ystemet väljer e eda aalys att gå vidare med (på ågot smart sätt). Grammatiker Formella deklarativa grammatiker: e typ av regelsystem. Valigt iom DL/T: CFG. Iblad kompletterade med särdrag. E grammatik är ett (mycket komplext) villkor på hur grammatiska strukturer får se ut. De grammatiska formalisme begräsar hur ta villkor får se ut. Idirekt tillåts/förbjuds strägar av termialsymboler (ord). CFG är kategoriskt tillåtade/förbjudade. 7 8
Iterpreterade parsigsalgoritmer Kompilerade parsigsalgoritmer grammatik sträg algoritm sytaxträd grammatik kompilator Grammatike: deklarativ och läses som de är som e resurs i e databas. sträg parser sytaxträd Algoritme är geerell för e viss typ av grammatik. Grammatike kompileras, och ses ite mer av parser. Abstrakt algoritm och grammatik sammavävs. 9 10 eparatio mella grammatik och algoritm Både iterpreterade och kompilerade parsig håller grammatik och algoritm åtskilda. Fördel: Grammatik och parsigsmjukvara ka utvecklas, avädas, köpas och säljas oberoede av varadra. Detta arbetssätt stödjer och förutsätter stadardiserig (i elighet med valda grammatikformalismer). Grammatike ka asluta till aat språkveteskapligt arbete. tatistisk parsig Parsigsalgoritmer ka äve bygga på statistiska modeller, t.ex. av e klassificerare som bedömer vilke operatio som är smartast att göra i varje givet läge (beskrivet av lämpliga särdrag). Bakomliggade resurser: icke-ermiistisk parser (trasitiossystem) data i form av parsade uttryck (trädbak) maskiilärigsalgoritmer 11 12
Klassifikatio/aalys av parsigsalgoritmer Parsigsalgoritmer ka beskrivas ur ett atal syviklar. Priciper för regeltillämpig. Djupet eller bredde först? Alterativhaterig. Läsordig (i praktike ästa alltid väster-höger). Miesutyttjade. Vi förutsätter fortsättigsvis att grammatike är e CFG. Regelapplikatio top-dow Top-dow/prediktivt/förvätasdrivet. Vi bygger träde uppifrå; vi börjar med startsymbolsode. När vi läser iputord så får de e bestämd (hypotetisk) plats i meige. Vi tillämpar regler utifrå vilke kategori vi letar efter. (Vi ser på regleras västerled.) T.ex. om vi söker efter e och har regel, så letar vi utifrå de efter e och e (vid e give plats i iput). 13 14 Top-dow. Först rote, märkt med startsymbole. Buffert: e studet såg e hud. Top-dow. Expaderar med. Buffert: e studet såg e hud. (Dea exempelparsig förutsätter att grammatike iehåller de regler och lexikoigågar vi tillämpar. De förutsätter också att vi i varje läge väljer rätt i först väda.) 15 16
Top-dow. Expaderar med. Buffert: e studet såg e hud. Top-dow. er att e är e. Buffert: studet såg e hud. e 17 18 Top-dow. er att studet är e. Buffert: såg e hud. Top-dow. Expaderar med vtr. Buffert: såg e hud. vtr e studet e studet 19 20
Top-dow. er att såg är e vtr. Buffert: e hud. Top-dow. Expaderar med. Buffert: e hud. vtr vtr e studet såg e studet såg 21 22 Top-dow. er att e är e. Top-dow. er att hud är e. Buffert: hud. Buffert:. vtr vtr e studet såg e studet såg e e hud 23 24
Top-dow. Trä termierat (med rot märkt.) Buffert:. Bufferte tom! vtr e studet såg Regelapplikatio top-dow Top-dow/prediktivt/förvätasdrivet. Vid regelapplikatio top-dow ka givetvis grammatike leverera flera möjliga regler, t.ex. om vi skall expadera e -od kaske vi har både p.. Parsige ka då välja fel och processe måste kaske gå tillbaka och expadera utifrå rätt regel. e hud 25 26 Top-dow. Exempel som tidigare, me med applikatio av fel regel. Buffert: e studet såg e hud. Top-dow. Expaderar med p. Buffert: e studet såg e hud. p 27 28
Top-dow. Vi ka varke expadera p eller matcha de mot ord i bufferte. Vi ka omöjligt bygga vidare ett sytaxträd som täcker bufferte. Buffert: e studet såg e hud. Top-dow. Vi gör seaste expasio ogjord (backtrackig). Buffert: e studet såg e hud. p 29 30 Top-dow. Vi expaderar istället med. Buffert: e studet såg e hud. eda ka vi fortsätta som i tidigare exempel. Regelapplikatio bottom-up Bottom-up, datadrivet. Vi bygger träde edifrå; vi börjar med orde. Träde är lokalt fullstädiga. Vi har e sekves av färdiga fraser. Vi applicerar regler utifrå de kostitueter vi lyckats verifiera i iputsträge. (Vi ser på regleras högerled.) T.ex. om vi fuit e och e (i direkt följd) och har regel så ka vi dra slutsatse att de bildar e. 31 32
Djup eller bredd först? Djupet-först : Bygga så mycket av trä som går ia ma går vidare i iputsträge. Djupet-först blir (så gott som) automatiskt följde av e top-dow strategi. (Ma ka ite avgöra vilke del av iput e prediktio borde avse förrä föregåede kostituet är verifierad.) Bredde-först : Bygga struktur på bredde. ( Bottom-up mer flexibelt.) Alterativhaterig Vid alterativa möjligheter, t.ex. är två regler ka tillämpas, eller två lexikoigågar fis: Determiistisk strategi: Gör ett val, och struta i alterative. Backtrackig : pröva första bästa alterativ, och gå tillbaka seare (om behövs). Parallellprocessig : Udersök alla vägar, som jämbördiga möjlligheter. Look ahead : Välj geom att kika framåt. 33 34 ystemets sätt att mias vad gjort Miimalt mie : edast träd som är uder uppbyggad hålls i miet. T.ex. vid backtrackig där avvisade delträd ite sparas. Problem: risk för dubbelarbete. Delaalyser bokförs i s.k. (välformade) delsträgstabeller eller charts (diagram). Chartparsig : alla täkbara delaalyser lagras. Problem: viss kostad för lagrig och åtkomst. Värderig av parsigssystem Korrekthet: Aalysera bör stämma med aktuell grammatisk teori. Effektivitet, m.a.p. tid och mieskrav. (Komplexitet: Hur påverkas tidsåtgåge av lägre iput?) Praktiska spekter: töd för ligvistiskt utveckligsarbete. Begriplighet. Möjlighet att utyttja befitliga aalyser, etc. Tillgåg på implemetatioer och verktyg. 35 36
Parsig av artificiella språk Parsig är också viktigt för tillämpigar som programspråk, HTML-tolkig, TEX-kompilerig. Etydiga språk, apassade för datorbearbetig. Typiskt utformade så att alterativa aalyser elimieras sabbt. Gör dem sabbparsade. Krav på att stora texter skall bearbetas o-lie. Adra typer av algoritmer aväds ä för DL/T. Mycket sabba. Behöver ej hatera ambiguitet, t.ex. 37