Igår blev jag färdig med den sista uppgiften för terminen. Det var en programmeringslabb som gick ut på att skriva en parser (vilket inom språkteknologi är ett program som gör en syntaktisk analys av meningar) som nyttjar en så kallad shift & reduce-algoritm. Den innebär att man börjar med två listor av ord där den ena från början innehåller orden i den givna meningen (lista 1) och den andra är tom (lista 2). Detta kan vi kalla för starttillståndet. Därifrån är det programmets uppgift att räkna ut alla möjliga sluttillstånd, vilket innebär ett tillstånd där meningen har fått en analys som är korrekt enligt en mängd regler.
För att ta sig dit kan algoritmen använda sig av en kombination av de två alternativen som kallas shift respektive reduce. Shift innebär att ett ord tas från lista 1 och läggs i lista 2. Inga konstigheter. Reduce innebär att man tittar på de senast tillagda orden (eller egentligen kanske man borde säga enheterna) i lista 2 och kontrollerar om det finns någon regel som kan binda ihop dessa till en ny enhet. T ex kanske de två senaste tillagda orden är ”en hund”, och i så fall skulle dessa kunna bytas ut mot en nominalfras (NP) om det finns en regel som tillåter det.
Om vi antar att programmet ska parsa meningen ”en hund springer” så skulle alltså den mest uppenbara analysen göras genom att först shifta två gånger, sedan reduce:a ”en hund” till ”NP”, sedan shifta en gång till, reduce:a ”springer” till ”VP” (verbfras) och till slut reduce:a ”NP VP” till ”S” (för sats, eller sentence). För varje steg samlas också information om alla dittils byggda delträd i en tredje lista, så att man kan komma åt den informationen senare, ifall parsningen når ett accepterat sluttillstånd.
Sådana här analyser används i de allra flesta språkteknologiska områden, där den allra mest uppenbara är grammatikhjälpen i ordbehandlingsprogram som Microsoft Word.
Men nu är jag färdig med det. Rapporten är färdig och inskickad och jag fick VG på den kursen vilket känns otroligt bra. Nu har jag sommarlov, åtminstone från skolan. Det enda jag behöver göra nu är att njuta av en stunds ledighet och vänta på att de ringer från jobbet och vill boka in mina första pass. Det ska bli ganska skönt med ett fysiskt arbete. Sådana har det inte direkt kryllat av i mitt liv.
Hmmm, hur många fattade det här tror du:)?
Hehe, ja tanken var ju att det skulle vara begripligt, men det kanske bara blev förvirrande egentligen?
Jag förstod!! Och när jag läste försökte jag lista ut hur programmet skulle göra sen!! :’)
Grattis till VG! Du är bäst! Minna också! Kraam!
Vad skönt att jag åtminstone har EN läsare som förstår vad jag skriver <3
Först: grattis till ditt VG!
Sen måste jag erkänna att jag tillhör de av dina läsare som inte förstår, mer än att du kan komma att programmera rättstavningsprogram i framtiden (?), och för det är jag tacksam!