deler: Fig. 1 3rd Nordic Conference of Computational Linguistics NODALIDA 1981 64



Like dokumenter
3rd Nordic Conference of Computational Linguistics NODALIDA

Ordliste. Obligatorisk oppgave 1 - Inf 1020

Øvingsforelesning i Python (TDT4110)

Brukerveiledning for import av publikasjoner ved UiTø

UNIVERSITETET. Indeksering. Konvensjonelle indekser B-trær og hashing Flerdimensjonale indekser Hashliknende strukturer.

NORSK TEKSTARKIV J o s t e in H. Hauge

En ordbok som den du skal jobbe med nå, kan gi deg svar på mange spørsmål, og ikke bare lære deg mange nye ord.

NORSK 1.periode Ukene 34-40

Soloball. Steg 1: En roterende katt. Sjekkliste. Test prosjektet. Introduksjon. Vi begynner med å se på hvordan vi kan få kattefiguren til å rotere.

Om oppgaveteksten på noe punkt er uklar eller upresis, kan du gjøre egne presiseringer. Formulér i så fall disse tydelig i oppgavebesvarelsen din.

Hva er en algoritme? Har allerede sett på mange algoritmer til nå i IT1101. Forholdet mellom en algoritme og et program. Algoritme program prosess

Del 1: Overgang fra gammel hjemmeside til ny hjemmeside

De fleste velger DUPLOSTAG med suveren slaglengde til sin traktor! Når toppstaget er inne og trekkstengene er i vater bør hurtigkoblingen helle 5-10.

Straffespark Introduksjon Scratch Lærerveiledning

Kanter, kanter, mange mangekanter

LITT OM OPPLEGGET. INF1000 EKSTRATILBUD Stoff fra uke September 2012 Siri Moe Jensen EKSEMPLER

Dette dokumentet beskriver feilrettinger og endringer gjort i patcher til versjon 7.42 (Oracle) og 7.43 (MSSQL)

TDT4102 Prosedyreog objektorientert programmering Vår 2016

Utførelse av programmer, metoder og synlighet av variabler i JSP

STYREMØTE: BI STUDENTSAMFUNN

Vi sier også at for eksempel 16 er kvadratet av 4. Kvadrattallene kan vi framstille som figurtall av kuler på denne måten:

Algoritmer og datastrukturer Kapittel 9 - Delkapittel 9.2

Python: Oppslagslister (dictionaries) og mengder 3. utgave: Kapittel 9

Matematikk 15 V-2008

Et eksempel: Åtterspillet

INNHOLD Spillebrett, 126 bokstavbrikker, 14 plastskinner, pose i fløyel, elektronisk timer (med batterier) og spilleregler.

Chapter 6 - Discrete Mathematics and Its Applications. Løsningsforslag på utvalgte oppgaver

Korteste vei i en vektet graf uten negative kanter

TURNERINGSREGLEMENT NORSK SCRABBLEFORBUND

Slik administrerer du Ståstedsanalysen

HOPPlæring i Hortenskolen AKTIVITETER TIL IDÈBANK

Algoritmer og datastrukturer Assignment 11 Side 1 av 5

INF109 - Uke 1b

LO118D Forelesning 3 (DM)

GAB INNSYN... 1 INNSTILLINGER... 1 Database... 1 Søk... 4 GENERELT... 5 Søkeutvalg... 5 GAB menyen... 6 VIS MENYEN... 6 Generelt...

Oblig 4 (av 4) INF1000, høsten 2012 Værdata, leveres innen 9. nov. kl

MAT1140: Kort sammendrag av grafteorien

Matematikk Øvingsoppgaver i numerikk leksjon 8 Matriser. Løsningsforslag

Kompleksitetsanalyse Helge Hafting Opphavsrett: Forfatter og Stiftelsen TISIP Lærestoffet er utviklet for faget LO117D Algoritmiske metoder

Husk at du skal ha to vinduer åpne. Det ene er 'Python Shell' og det andre er for å skrive kode i.

TDT4102 Prosedyre og Objektorientert programmering Vår 2014

Importere referanser fra databaser

Ge i r Berge 47. En d a t a s t r u k t u r f o r o rd b ø k e r f o r n a t u r lig e sp råk. 1. In n le d n in g

-HQVHQ&XS. Årets nest viktigste 7RUULGDOVYHLHQ.5,67,$16$1'

while-økker while-løkker gjentar instruksjonene så lenge en betingelse er oppfylt Eksempel 1: en enkel while-løkke

<?php. count tar en array som argument, og returnerer et tall som uttrykker antallet innførsler i arrayen.

En oppsummering (og litt som står igjen)

Karen og Gabe holder på å rydde bort etter middagen.

Hemmelige koder. Kodeklubb-koden. Steg 1: Alfabetet. Sjekkliste. Introduksjon

Diverse eksamensgaver

Obligatorisk oppgave 1 INF1020 h2005

TOD063 Datastrukturer og algoritmer

APPENDIKS D Geminittisk språk/grammatikk

Løsningsforslag, Ukeoppgaver 10 INF2310, våren 2011 kompresjon og koding del II

Romlig datamanipulering

Slides til 12.1 Formelt språk og formell grammatikk

G høgskolen i oslo. Emne: Algoritmer og datastrukturer. Emnekode: 80131A. Faglig veileder: UlfUttersrud. Gruppe(r) : Dato:

1. Opprett betalinger uten bruk av mappe 2. Opprett betalinger med bruk av mappe

En liten rekap. Spørrespråk. I dag SELECT

Jobbe med ord og begreper gjennom hele året. Følge bokstavinnlæringsprogrammet og hjertetimen. Høytlesing. Ord og begreper.

Algoritmer og datastrukturer Kapittel 1 - Delkapittel 1.3

DEN GODE HYRDE / DEN GODE GJETEREN

NORSK ANDRESPRÅKSKORPUS KURSHEFTE. ASK, kurshefte Hilde Johansen (2011) 1

WinTid. Nyheter versjon

Twitter på Slik kommer du i gang!

1. Mer om oppbyning av XML-dokument

2009 Thomas Haugland Rudfoss. PowerPoint 2007 En rask introduksjon

Løse reelle problemer

Niels Henrik Abels matematikkonkurranse Løsninger

"Det er fort gjort og skrive feil." En presentasjon av en automatisk grammatikkontroll for bokmål

Prosjektoppgave, FYS-MEK1110 V06 ROBERT JACOBSEN

Elektronisk utlånskontroll

Lese fra fil. INF1000 : Forelesning 5. Eksempel. De vanligste lesemetodene. Metoder:

EKSAMEN (Konvertert fra en gammel PHP-eksamen)

Veiviser til vilbli.no for rådgivere

I denne oppgaven blir du introdusert for programmeringsspråket JavaScript. Du skal gjøre den klassiske oppgaven Hei verden, med en katt.

Hvordan behandle Lipo

TURNERINGSREGLEMENT NORSK SCRABBLEFORBUND

Veileder i bruk av GoodReader

Fasit teorioppgaver. Kapittel 1: Bli kjent med Word. Oppstart. Maksimering. Hva skjer ved oppstart av Word?

Nybegynner i WordPress

Høringsnotat forslag til forskrift om bruk av kjøretøy 2-6 nr. 4 andre ledd andre setning

ITF20006 Algoritmer og datastrukturer Oppgavesett 7

versjon 1.1 Brukermanual

Den er nettbasert, og man trenger derfor ikke installere et eget program for å bruke den.

Algoritmer og datastrukturer Kapittel 9 - Delkapittel 9.1

GruNot '95. Notatsystem for gruppeterapi. Versjon

HJELPEGUIDE TIL WEB-TIME

3 emner i dag! INF1000 Uke 5. Objekter og pekere. null. Litt om objekter, pekere og null Filer og easyio Litt mer om tekster

Veiledning og tilleggsoppgaver til Kapittel 12 i Her bor vi 1

Arbeid med digitale tekster i akademisk skriving Sist oppdatert

ÅpentGeosynkAPI i sentral forvaltning av FKB. Innspill til viktige avklaringer

Innhold. Arrangementskalender/påmelding: Resultater: Ti på topp for hele landet: Brukerveiledning; Versjon 5.0, oppdatert:

Installasjonsveiledning DDS-CAD 7.3

infotorg Enkel brukermanual

Kristen homofil Av Ole Johannes Ferkingstad

EKSAMENSBOOST - TIPS OG RÅD. Ingrid Sand og Linda Therese Sørensen MN-fakultetet

Oversikt. INF1000 Uke 6. Objekter, pekere og null. Lese og skrive fra/til fil. Litt om objekter, pekere og null Filer og easyio. Litt mer om tekster

Behandling av dokumenter i Microsoft Word. En rask innføring

Kort oversikt over. eksport-/import-programmet for. WinMed

Transkript:

64 T o r S t å l h a n e R U N I T L E K S I K A L S K A N A L Y S E I M J U K E S Y S T E M 0. I N N L E D N I N G M j u k e S y s t e m e r et R U N I T - p r o s j e k t s o m b l i r f i n a n s i e r t a v N o r g e s T e k n i s k - N a t u r v i t e n s k a p e l i g e F o r s k n i n g s r å d. P r o s j e k t e t h a r s o m m å l å l e t t e t i l g a n g e til E D B - s y s t e m e r. M å l g r u p p a b e s t å r a v to deler: - f o l k s o m b a r e s p o r a d i s k b r u k e r E D B - f o l k s o m o f t e b r u k e r EDB, m e n s o m o f t e b y t t e r m a s k i n. D e t t e g j e l d e r s æ r l i g b r u k e r e s o m b e n y t t e r d a t a n e t t. H o v e d p r o b l e m e t for b e g g e d i s s e b r u k e r g r u p p e n e e r a t d e m å h u s k e e n m e n g d e n ø k k e l o r d o g konvensjoner, så s o m p l a s s e r i n g a v p u n k t u m o g k o m m a o.l. B å d e n ø k k e l o r d e n e o g k o n v e n s j o n e n e v a r i e r e r s t e r k t f ra m a s k i n t i l m a s k i n. D et er v å r m e n i n g a t d e t t e p r o b l e m e t l ø s e s b e s t v e d å la b r u k e r n e b e n y t t e et s u b s e t t a v n o r s k til k o m m u n i k a s j o n. D e t s y s t e m e t s o m skal stå m e l l o m b r u k e r e n o g E D B - s y s t e m e t, h a r v i k a l t e t M j u k t S y s t e m e l l e r M j u k t G r e n s e s n i t t. D e t t e s y s t e m e t b e s t å r a v t r e h o v e d d e l e r : - l e k s i k a l a n a l y s a t o r - s y n t a k s - o g s e m a n t i k k - a n a l y s a t o r - s y s t e m - g r e n s e s n i t t Fig. 1 64

1. VOKABULAR Systemet har for øyeblikket et relativt lite vokabular, bare ca. 150 ord. Ordutvalget er bestemt ut fra ei rekke protokollforsøk (1). An dr e undersøkelser som er gjort har k o nkludert med at et generelt vokabular på ca. 400 ord pluss et fagvokabular på ca. 100 ord er tilstrekkelig for de fleste an vendelser (2). 1.1 Ordlister i Mjuke System Vi har valgt i prosjektet: følgende retningslinjer for or dliste-strukturen - notasjonen skal være enkel å forstå - det skal være enkelt å legge inn nye ord og nye skrivemåter for ord som allerede er i ordlista - endringer og tillegg skal kunne gjøres med en vanlig tekst-editor Ut fra disse betingelsene har vi valgt følgende løsning: Vi har en symbolsk fil som inneholder hele ordlista i direkte lesbar form. Lista inneholder to typer informasjon: - generelle bøyningsmønster, som ma n kan referere til seinere i lista. - ord, me d tilhørende bøyninger, eller me d referanse til ei generell bøyning = Et generelt bøyningsmønster har forma navn = <serie av bøyningsregleij». Hver bøyningsregel har følgende form: r 1* ( < e n d i n g > «u t i n f o > <0rdklasse><$>rdforn\>)J ^) Eksempel SUBST_1=(- (- SUBST UBEST. SI NG)) (EN(- SUBST BE S T - S I N G ) ). (ER(- SUBST U B E S T - P L ) ) (ENE(- SUBST B E S T _ P L ) ). Dette bøyningsmønsteret kan nå knyttes til et ord i ordlista. F.eks, ordet BOKSTAV, som følger denne reglen BOKSTAV SU BS T - 1. ' 65

- 66 - Et ord defineres i ordlista på én av to måter: - Ved bruk av de generelle b^ynlngsm^nstrene, f.eks. BOKSTAV SUBST-l. - Ved å definere et bøyningsm«)nster spesielt for dette ordet. Dette skjer ved å sette < o r d > <serie av b^yningsregler>. F.eks.: NAVN (-(- SUBST UBEST-SING) (- SUBST UBEST-PL)) {ET(- SUBST BEST-SING)) (ENE(- SUBST BEST- P L)). Den sistnevnte metoden benyttes også for å behandle uregelmessige verb. Dette vises lettest ved et eksempel: ER (-(VÆR VB P R E S ) ). VÆR (E(- VB INF)) (-(- VB IM PT )) (T(- VB PERF) ). VAR (-(VÆR VB IMPERF)). Vi benytter her ut-info delen til å gi rett informasjon videre i systemet. Dette biir også brukt dersom vi ønsker å bytte ut et ord med et annet, f.eks.: PRINTER (-(LINJESKRIVER SUBST UBEST-SING))... 1.2 Ordlistas laqerstruktur Internt i leksikal-analysatoren biir hvert ord lagra på følgende måte s 66

- 67 - Som ordstamme h a r v i v a l g t å b ru k e r im p e ra tiv sfo r m e n f o r v e r b og u b estem t form é n t a l l f o r s u b s t a n t i v e r. D e tte e r v a l g t u t f r a h e n sy n e t t i l en m est m u lig kom pakt s t r u k t u r. Hadde v i f. e k s. v a l g t i n f i n i t i v s f o r m e n f o r v e r b v i l l e v i V2ert n ød t t i l ha ha e k s t r a i n n s la g i l i s t a f o r im p e ra tiv sfo r m e n. Eksempel ph lagring: 'SY M B O L S K 'E ' Ordlista er delt opp i et sett av balanserte trær. Et t tre b e står av alle ord som begynner på 'A', ett tre består av alle ord som begynner på 'B' osv., til 'A'. Hvert tre er ordna etter tre kriterier: - orda er sortert etter lengde før de settes Inn i treet. - hver ordstamme settes inn ved å leite fram et tomt lenkefelt på følgende måte: Viss ordet vi sammenligner med er lenger ute i alfabetet, følger vi høyre lenke, ellers følger vi den venstre. Dette fortsetter vi med til den lenka vi vil følge, er tom. Det nye ordet bllr så hengt på der. - treet er balansert for hver ordlengde (3) Dette er gjort for å forenkle søkinga etter et ord og for å unngå å måtte gå igjennom treet flere ganger. Ved å sørge for at treet er balansert vil vi trenge gjennomsnittlig ca. ^ l o g 2 (N)+l sammenligninger der N er antall ord i treet. 67

- 68 Uten balansering vil vi kunne risikere å må tt e foreta N/2 sammenligninger. Det ferdige treet vil kunne se f.eks, slik ut må måned mange hmax = 4, N = 10 Flg. 4 1 3 S^kemetode For å finne ut om et ord er 1 ordlista benytter vi følgende metode (4): - Første bokstav viser hvilket tre vi skal søke 1. Lengda av første ordstamme i treet viser hvor stor del av ordet vi må begynne med i søkinga. Resten av ordet blir b e handla som el ending. - Deretter leter vi i treet til vi finner den aktuelle ordstammen eller vi finner en stamme som er lenger enn den vi har for øyeblikket-.- Dersom vi har kommet fram til en lengere ordstamme enn den vi søker med, forlenger vi stammen med neste bokstav i søkeordet. Endinga blir da forkorta tilsvarende. Viss det ikke er flere bokstaver igjen, finnes ikke søkeordet, ellers fortsetter vi søkinga til vi finner ordet, eller vi når slutten på treet. 68

69 - Når vi har funnet en ordstamme som passer, må vi sjekke om resten av ordet (endinga) finnes som ei lovlig ending til denne stammen. Dersom det er tilfelle, er alt ok og vi kan returnere den informasjonen vi har funnet. Dersom resten av ordet ikke er ei lovlig ending, må vi forlenge stammen og fortsette søkinga. Et par enkle eksempler vil vise hvordan metoden fungerer i p r a k s i s : 1 ) ' m å ' 'mi' / \ Fig. 5 'måned' Leter etter ordet 'måned'., begynner med 'må' - 'ned' '. finner 'må' først i treet, men denne stammen har ikke 'ned' som tillatt ending. utvider til 'mån' - 'ed', men treet har ingen ordstammer langs denne greina med tre bokstaver. Det samme gjelder for 'måne'-- 'd'.. først når vi utvider ordstammen til 'måned' - ' ' finner vi ordet og kan returnere 'måned subst ubest-sing' 2 ) 'bli' / \ t 1 ^. j.' ^ ^ t t ' 1 1 i v e r b v^rb i ' v e r b im p e r a tiv p re s e n s p e r f J 1 ± v e rb ~ i n f i n i t i v F i g. 6 I 69

- 70 Leter etter ordet 'blitt'. Siden første ordstammen har tre bokstaver, starter vi med 'bli'- 'tt'. Vi finner at 'bli' er en lovlig ordstamme og søker langs kjeda av lovlige endinger med 'tt'. Som vi ser i fig. 6, finner vi denne endinga sist i kjeda o g returnerer derfor 'blitt bli verb perf. Som tidligere sagt under 1.1 blir uregelmessige verb og substantiver knytta til stammen via den delen vi kaller ut-info. Dersom vi f.eks, skulle leite eller 'blei' Istedenfor 'blitt' ville vi ha funnet dette som et eget innslag i tabellen og fått returnert 'blei bli verb I m p e r f 2. HANDTERING A V STAVEFEIL Eksperimenter og innsamla erfaringsdata Indikerer at den alt overveiende delen av skrive/stave-feil tilhører en av følgende kategorier (5): - én ekstra bokstav - én manglende bokstav - én feil bokstav I tillegg har det vist seg at feilraten for alle disse feiltypene er langt større "inne i" ordet enn i starten og slutten. Disse forholda har gjort at vi har valgt følgende metode for handtering av stavefeil (6): - for hvert ord som er lagra i ordlista blir det laga en b i t vektor som forteller hvilke bostaver som finnes i ordet. E k s. ALLE nijihumin r j a b c d e f g h i j k l m n o p q r s t u v w x y z æ ø å I tillegg tar vi vare på ordlengden. Den samme informasjonen blir generert for et ord som ikke er blitt funnet i ordlista etter et vanlig gjennomløp. ' 70

71 - for hvert ord i det treet vi gjennomløper, sjekker vi så differansen mellom ordet i ordlista og det ordet vi tror er et feilstava ord. Denne differansen kommer fram ved å sammenligne de to bit-vektorene og summere alle bitene som ikke finnes i begge orda. Til dette tallet legger vi så absoluttverdien av forskjellen i ordlengdene. E k s.: ALLE (trykkfeil for ALLE) for at et ord skal bil godtatt som en feilstaving av et annet, må differansen være mindre enn en forhandssatt terskel, dmax. Det er lett å forvisse seg om at de tre vanlige formene for skrivefeil alle vil gi en differanse på ma ks im um 2. Vi har derfor valgt dmax lik 2, unntatt når ordet har færre enn fire bokstaver. I de tilfellene benytter vi dmax lik 1. Metoden har så langt vist seg relativt tilfredsstillende. Det eneste problemet har vært at metoden ofte kommer opp med alt for mange tolkningsalternativer. Dette problemet vil kunne øke etter hvert som vi får flere ord i ordlista. 3. KOBLING TIL PROLOG Den syntaktiske og semantiske analysen av inndata foregår i et PROLOG- program (7). PROLOG benytter listestruktur til å representere inn- og u t data. I Mjuke System kommer data inn som fri-format tekst. Leksikalanalysatoren deler opp teksten i ord, tall og skilletegn og henger på en del informasjon om hver tekstenhet. Denne informasjonen har følgende format:. ( ;.inn-data> j(<indikator> ' s t a m m e X t o l k i n g» j. ) indikator kan være: I : ordet er funnet i ordlista? : ordet er ikke funnet i ordlista, men vi har funnet rimelig tolking ut fra fellstavingsalgoritma tolking ::= v o t d k l a s s o ^bøyning > 71

- 72 - Dersom bøyning ikke er relevant, blir den erstatta med I _ I Noen eksempler vil vise hvordan denne blir brukt: vil gi: "Hvilke filer har jeg?" (HVILKE (! HVILKE PRON PL )) (FILER (1 FIL SUBST UBEST- PL )) (HAR C HA VB PRES )) (JEG C JEG PRON - )) ti n (? (1 TEGN SPØRSMÅL )) Filler" (trykkfeil for Filer) vil gi: (FILLER (? FILLER IDENT - ) (? FLER ADJ PL ) (? FINN VB PRES ) (? FEIL SUBST BEST-SING) (7 FIL SUBST BEST-PL ) (? FIL SUBST UBEST- PL )) 4. OPPSUMMERING Det er vår mening at den implementerte løsninga tilfredsstiller alle viktige krav til en leksikal-analysator for et naturlig.språk:. Det er lett å legge inn nye ord. Det er lett å legge på nye tolkninger av ord som allerede finnes. Det er lett å legge inn nye former og skrivemåter. Systemet er rimelig tolerant overfor de vanligste skrivefeil Det videre arbeidet med leksikalanalysen i Mjuke System vil konsentrere seg om to områder: - utvidelse av vokabularet etter hvert som vi får m e r brukererfaring - forsøk på å dele vokabularet i én generell norsk-del som er brukeruavhengig, og en fagterm-del som må byttes ut når systemet skal handtere andre fagfelt/ universer. 72

73 5. REFERANSER (1) Amble, Tore Mjuke System,. Arbeidsnotat nr. 2, RUNIT 1981 (2) Kelly, Michael Limited Vocabulary Natural Language Dialogue Int. J. Man- Machine Studies, 1977 no. 9 (3) Wirth, Niklaus Algorithms + Datastructures = Programs Prentice-Hall, Englewood Cliffs NJ, 1976 (4) Stålhane, Tor Mjuke System, Ar beidsnotat nr. 5, RUNIT 1981 (5) Morgan, H.L. Spelling Error Correction in Systems Programs Comm A C M 13, 1970 (6) Tenczar, P. Spelling, Word and Concept Recognition University of Illinois, Urbana, 111. 1972 (7) Amble, Tore Introduction to Logic Programming RUNIT, 1981 73