Språk, datorer och textbehandling Föreläsning 2: Korpusannotering, textkodning, textnormalisering eva.pettersson@lingfil.uu.se 1
Föreläsningsöversikt Textkodning Teckenkodning Textnormalisering Korpusannotering 2
Textkodning 3
Textkodning Att märka upp texten med information om t.ex. författare, dokumenttyp, meningsgränser, styckeindelning etc. Viktigt att veta vilka texttyper som ingår i korpusen och hur texterna är uppbyggda Inte trivialt hur uppmärkningen ska se ut, om man vill göra korpusen lättillgänglig för andra! Finns det någon standard för hur det ska se ut? 4
COCOA Word COunt and COncordance on Atlas Mycket tidig textkodningsstandard (1965) Används bl.a. i Longman-Lancaster Corpus och Helsinki Corpus Format: näbbparenteser innehållande dels en fördefinierad variabel, dels värdet för variabeln Exempel från Helsinki Corpus: <N LET TO HUSBAND> N = titel <A BEAUMONT ELIZABETH> A = författare <X FEMALE> X = kön <H HIGH> H = social status 5
TEI Text Encoding Initiative Modern textkodningsstandard Syfte: att ange en standard för uppmärkning av texter, så att alla följer samma riktlinjer Har tillhandahållit SGML Standard Generalised Markup Language (underkategorier: XML, HTML) 6
TEI format (1) Överst i dokumentet: header med information om författare, titel, datum etc. Exempel ur SUC: <titlestmt> <title level=a>smygrustning av raketvapen</title> <title level=j>dagens Nyheter</title> <author>mats Lundegård</author> </titlestmt> 7
TEI format (2) Varje element (ord, meningar, stycken etc.) omges av en starttagg (< >) och en sluttagg (</ >). Exempel ur SUC: <p> <s id=aa01a 009> <w n=91>hur<ana><ps>ha<b>hur</w> <w n=92>är<ana><ps>vb<m>prs AKT<b>vara</w> <w n=93>det<ana><ps>pn<m>neu SIN DEF SUB/OBJ<b>det</w> <w n=94>då<ana><ps>ab<b>då</w> <w n=95>i<ana><ps>pp<b>i</w> <name type=place> <w n=96>mellanöstern<ana><ps>pm<m>nom<b>mellanöstern</w> </name> <d n=97>?<ana><ps>mad<b>?</d> </s> </p> 8
Teckenkodning 9
Teckenkodning All text som lagras i en dator har en viss teckenkodning Teckenkodning handlar om hur tecknen (bokstäver, siffror, mellanslag, interpunktioner etc.) representeras i datorn, dvs att översätta mänskliga tecken till datorspråk Varje tecken får en unik kod, som motsvarar tecknet (i en teckentabell) Olika språk kräver olika teckenuppsättningar, beroende på vilket alfabet som används 10
Bits och bytes Vad är en byte? den minsta informationsbärande enheten i en dator en byte består av 8 bit varje bit kan ha värdet 0 eller 1, vilket ger sammanlagt 256 olika kombinationsmöjligheter i en byte varje tecken (bokstav, interpunktion etc) brukar lagras i en byte 256 olika tecken räcker inte till för att lagra alla tecken som finns i alla möjliga språk 11
Teckenkodning för olika språk olika språk har olika teckenkodningssystem om en dator är inställd på en viss teckenkodning, och tar emot en text som är skriven med en annan teckenkodning, så ser texten konstig ut vissa tecken är svårare än andra för datorn att visa upp korrekt för svenska är å, ä och ö extra besvärliga hänger samman med att de bokstäver som är gemensamma för många språk ofta lagras på samma sätt i de olika teckenkodningarna 12
Teckenkodning för språkspecifika tecken För att undvika problem med tecken som man vet kan vara svårtolkade, kan man skriva just dessa tecken som entiteter istället för som vanliga bokstäver I TEI-format skrivs entiteter inom & och ; båt skrivs som båt bär skrivs som bär snö skrivs som snö Så gör man ofta i html-kod, när man skapar hemsidor Webbläsaren tolkar html-koden, så att å i koden ser ut som å när det visas på skärmen 13
Teckenkodning Viktigt att tänka på vilken teckenkodning man använder, när man ska överföra texter mellan olika datorer och olika språk Om man vill att ens korpus ska vara lättillgänglig för andra, bör man följa en standard för teckenkodningen Finns det någon standard? Ja, flera... IANA Internet Assigned Numbers Authority 14
ASCII-kodning ASCII - American Standard Code for Information Interchange Utvecklat 1968 1 byte per tecken 7 bit för teckenkodningen (128 möjliga tecken) + en paritetsbit för att kontrollera teckenöverföringen Kontrolltecken för speciella funktioner (backspace, tab, new line) 15
ASCII-kodning 16
Problem med ASCII-kodning? ASCII är utvecklat för engelska Hanterar inte språk med annat alfabet, t.ex. ryska, kinesiska eller arabiska dessa tecken saknas helt i ASCII-tabellen! Hanterar inte språk med samma alfabet, men med vissa avvikande tecken, t.ex. å, ä, ö, é, ü 17
Hur gör man med andra språk än engelska? 1)Använd ASCII ändå och ge avvikande tecken specialkoder (entitetsbeteckningar): ä istf ä 2) Utöka den ursprungliga ASCII-tabellen med fler tecken = språkberoende teckenkodningstabeller 18
Språkberoende teckenkodning Utvecklat av Internationella StandardiseringsOrganisationen (ISO) ISO 8859 1 (Latin 1) ISO 8859 2 (Latin 2) ISO 8859 3 (Latin 3) ISO 8859 4 (Latin 4) ISO 8859 5 ISO 8859 6 ISO 8859 7 ISO 8859 8 ISO 8859 9 (Latin 5) ISO 8859 10 (Latin 6) Västeuropeiska språk Östeuropeiska språk med det latinska alfabetet Sydeuropeiska språk Nordeuropeiska språk Östeuropeiska språk med det kyrilliska alfabetet Arabiska Modern grekiska Hebreiska Turkiska Nordeuropeiska språk, inkl. grönländska och samiska 19
Olika språk i samma korpus Parallellkorpusar innehåller texter på två eller flera olika språk Om korpusen innehåller språk med olika alfabet, t.ex. svenska och turkiska, kan man inte använda ASCII-kodning, eftersom det inte finns någon ASCII-kodning som hanterar både svenska och turkiska tecken 20
Teckenkodning: Unicode En enda teckenkodning för alla (levande och döda) språk Plats för mer än en miljon tecken i samma tabell Kräver mer än 1 byte i lagringsutrymme: UTF-8 UTF-16 UTF-32 1 byte/tecken för ASCII, 2-4 bytes för övriga tecken 2 bytes/tecken för vanligaste tecknen, 4 bytes för övriga tecken 4 bytes/tecken UTF = Unicode Transformation Format 21
Textnormalisering 22
Textnormalisering Att ge texten ett enhetligt format, t.ex. inför annotering (uppmärkning av ordklass etc): Program som automatiskt annoterar en text, kräver att formatet på texten ser ut på ett visst sätt, t.ex. att varje mening eller varje ord står på en egen rad Meningssegmentering att dela upp en text i de ingående meningarna, t.ex. en mening per rad Tokenisering att dela upp en text i de ingående orden, t.ex. ett ord per rad 23
Meningssegmentering Att dela upp en text i de ingående meningarna, en mening per rad Man vill helst inte manuellt behöva göra detta Det finns datorprogram som automatiskt gör detta Oftast ganska lätt att få datorn att lära sig var en mening slutar och nästa börjar Ledtrådar som datorn utnyttjar: skiljetecken inledande versal 24
Meningssegmentering Det var en gång en liten flicka; flickan kallades Rödluvan. Rödluvan var mycket söt; sötare än en karamell. En dag träffade Rödluvan en varg. Vad söt du är! sa vargen. Rödluvan gick genom skogen och såg många vackra växter, t. ex. smörblommor och midsommarblomster. Hon mötte också många snälla kamrater, t. ex. Hans och Greta. 25
Problem vid automatisk meningssegmentering Vissa tecken fungerar ibland meningsavskiljande och ibland inte, t.ex: kolon Orsaken till trafikkaoset var uppenbar: Det snöade hela natten. De inblandade personerna var: Pelle, Lisa och Eva. punkter Syftet är att minska samhällets utgifter för färdtjänst. Syftet är att minska samhällets utgifter för t. ex. färdtjänst. 26
Tokenisering Att dela upp en text i ingående tokens, dvs ord, ett ord per rad Det finns datorprogram som automatiskt gör detta Hur definierar man ett ord så att datorn förstår? 27
Tokenisering Vad räknas som ett ord? Enkel strategi: mellanslag utgör ordavgränsare Kučera & Francis (1967) definition av ett ord: a string of contiguous alphanumeric characters with space on either side; may include hyphens and apostrophes, but no other punctutation marks Även skiljetecken, sifferuttryck o dyl räknas som egna ord i tokeniseringen 28
Tokenisering EU:s huvudkontor ligger i Belgien. Plats: Bryssel. Där diskuteras många viktiga frågor, t. ex. om man ska få sälja snus i Sverige. I New York kan man inte köpa snus. Det kan man dock i Malmö, Ystad, Borås etc. 29
Problem vid tokenisering Skiljetecken föregås inte av mellanslag, men ska ändå tokeniseras som egna ord Vissa skiljetecken utgör ibland egna ord men är ibland del av ett ord, t.ex kolon EU:s lagar och regler Pris: 1 600 kronor 30
Problem vid tokenisering: Punkter Punkter fungerar oftast som meningsavslut: Syftet är att minska samhällets utgifter för färdtjänst. Utgör ibland del av en förkortning och ska då inte utgöra egna ord: t. ex. Kan utgöra både förkortningspunkt och meningsavslutningspunkt på samma gång: Syftet är att minska samhällets utgifter för färdtjänst, sjukresor etc. 31
Problem vid tokenisering: Apostrofer Kan fungera som citationstecken eller som del av ordet: the boys the boys toys Är isn t att betrakta som ett eller två ord? 32
Problem vid tokenisering: mellanslag Mellanslag utgör inte alltid ordavgränsare: särskrivna sammansättningar insurance company egennamn New York fraser i dag sifferuttryck 10 000 33
Annotering 34
Korpusannotering/taggning Att märka upp korpusen med lingvistisk information, t.ex: Ordklass (part-of-speech) Böjningsinformation (morfo-syntaktisk information) Lemma (grundform, d.v.s. uppslagsord i lexikon) Syntax Fonetik (uttal) - transkription Semantik Annoteringen kan göras för hand eller automatiskt Ett annat ord för annotering är taggning Den uppmärkning ett ord har tilldelats kallas för en tagg 35
Ordklasstaggning Vad menas med ordklasstaggning? ren ordklasstaggning: substantiv, adjektiv, verb etc. morfosyntaktisk information: genus, numerus, person etc. Vad avgör graden av specificitet i taggarna? Syftet med taggningen Språkets uppbyggnad (rik morfologi = rik tagguppsättning) 36
Tagguppsättningar Tagguppsättningarnas storlek varierar mellan 40 och 200 olika taggar Syftet med taggningen avgör tagguppsättning Exempel på tagguppsättningar för engelska: Brown-korpusens tagguppsättning (87 st) Penn Treebanks tagguppsättning (45 st) Vanligaste tagguppsättningen för svenska: Parole (153 st) 37
Mer om tagguppsättningar Ju rikare morfologi ett språk har, desto större tagguppsättning krävs normalt. Jmf svenskans Parole taggar och engelskans Penn Treebank taggar: en DI@US@S determinerare: utr, sing, indef lätt AQPUSNIS adjektiv: pos, utr, sing, nom, indef uppgift NCUSN@IS substantiv: utr, sing, nom, indef an DT determinerare easy JJ adjektiv task NN substantiv: sing 38
Taggningens delsteg Tokenisering Läraren var i alla fall snäll Morfologisk analys Läraren var i alla fall snäll subst subst/verb/adv/pron adv adj Morfologisk disambiguering Läraren var i alla fall snäll subst verb adv adj 39
Hur fungerar automatisk taggning? Man utgår från en manuellt taggad text, t.ex. SUC Man låter ett datorprogram titta på taggarna, och bygga ett lexikon med sannolikheter, t.ex: får 80% av gångerna verb 20% av gångerna substantiv Datorprogrammet tittar också på kontexten, t.ex: får alltid substantiv om det föregås av en artikel oftast verb om det föregås av ett substantiv När datorprogrammet ser nya texter, så utgår det ifrån vad det har lärt sig i sitt lexikon 40
Vad gör taggaren med ord som saknas i lexikonet? Okända ord - möjliga strategier: Versalinledda ord är egennamn, övriga okända ord är substantiv Ordet tillhör någon av de öppna ordklasserna, med den sannolikhet som gäller för korpusen i övrigt Taggdistributionen för ord som bara förekommer en enda gång i korpusen Böjnings- och avledningsändelser Flertydighet Kontexten avgör vilken tagg som ska väljas 41
Vanliga fel som en taggare gör Adjektiv taggas som adverb eller tvärtom Pelle fick snabbt adverb/adjektiv svar från Lisa Preposition taggas som partikel eller tvärtom Pelle slog på preposition/partikel TV:n Verb i perfekt taggas som perfekt particip eller tvärtom Pelle har lagat verb i perfekt huset Pelle har ett lagat perfekt particip hus 42
Välkända taggare Brill-taggaren (Brill, 1995) Vill ha en mening per rad Vill ha mellanslag även mellan skiljetecken och ord TnT-taggaren (Brants, 2000) Vill ha ett ord per rad Tom rad markerar meningsgräns Fungerar bäst i test för svenska (Megyesi, 2001): 93, 55% korrekta taggar 43
Annoteringsprinciper (Leech 1993) En annoterad korpus ska kunna återställas till sin oannoterade form Annoteringen ska gå att extrahera från texten för att sparas separat Annotationsschemat ska vara dokumenterat tillgängligt för slutanvändaren Det ska klargöras hur och av vem annotationen gjordes Slutanvändaren ska informeras om att annoteringen inte är God's truth utan endast ett användbart verktyg Annoteringsscheman ska baseras på accepterade och teori-neutrala principer Inget annoteringsschema är en standard på förhand. Standarder växer fram. 44
SUC SUC = Stockholm Umeå Corpus Ca 1 miljon löpord Manuellt taggad Hög grad av specificitet: 23 ordklasser 11 morfosyntaktiska särdrag 9 typer av named entities (person, djur, myt, ställe, institution, produkt, arbete, händelse, annat) 45
Morfosyntaktiska särdrag i SUC Genus (utrum, neutrum, maskulinum) Numerus Bestämdhet Kasus (nominativ, genitiv) Tempus Diates (aktiv, s-form) Modus (konjunktiv) Participform Komparationsgrad Pronomenkasus (subjekt, objekt) 46
<name type=person> <w n=146>don<ana><ps>pm<m>nom<b>don</w> <w n=147>kerr<ana><ps>pm<m>nom<b>kerr</w> </name> <w n=148>är<ana><ps>vb<m>prs AKT<b>vara</w> <w n=149>mellanösternspecialist<ana><ps>nn<m>utr SIN IND NOM<b>mellanösternspecialist</w> <w n=150>på<ana><ps>pp<b>på</w> <name type=inst> <w n=151>the<ana><ps>pm<m>nom<b>the</w> <w n=152>international<ana><ps>pm<m>nom<b>international</w> <w n=153>institute<ana><ps>pm<m>nom<b>institute</w> <w n=154>for<ana><ps>pm<m>nom<b>for</w> <w n=155>strategic<ana><ps>pm<m>nom<b>strategic</w> <w n=156>studies<ana><ps>pm<m>nom<b>studies</w> </name> <w n=157>i<ana><ps>pp<b>i</w> <name type=place> <w n=158>london<ana><ps>pm<m>nom<b>london</w> </name> 47
BNC BNC = British National Corpus Ca 100 miljoner löpord talad och skriven brittisk engelska Automatiskt taggad utan mänsklig kontroll 61 olika taggar Ca 4,7% flervalstaggar 2 miljoner ord stor delmängd rikare taggad och manuellt efterredigerad 139 olika taggar 48
BNC <w DT0>Each <w NN1>dance <w VVD VVN>followed <w AJ0>particular <w NN2>rules <w VVD VVN>laid <w AVP>down <w PRP>by <w AT0>the <w AJ0 NN1>dancing <w NN2>masters 49
EAGLE Expert Advisory Groups on Language Engineering Standards Grupp inom EU som bland annat arbetar med att ta fram en gemensam EU-standard för korpusuppmärkning 50
EAGLE:s annoteringsrekommendationer Obligatoriska särdrag de stora ordklasserna: substantiv, verb, adjektiv, pronomen/determinerare, artikel, adverb, adposition, konjunktion, numeral, interjektion, unik, rest, interpunktion Rekommenderade särdrag, t.ex. för substantiv: Numerus (singular/plural) Genus (maskulinum/femininum/neutrum) Kasus (nominativ/genitiv/dativ/ackusativ/vokativ) Typ (egennamn eller ej) Valfria särdrag Språkoberoende, t.ex. räknebarhet för substantiv Språkberoende, t.ex. definithet för substantiv 51
Lemmatisering Att byta ut alla ordformer i korpusen mot grundform Exempel på lemmatiserade korpusar: Susanne (engelska) Surface and Underlying Structural Analysis of Natural English Delmängd av Brown-korpusen 130 000 löpord skriven amerikansk engelska SUC (svenska) 52
Lemmatisering i Susanne N01:1660m PPHS2 They they [O[S[Fn:o[Nap:s.Nap:s] N01:1660n VBDR were be [Vwb.Vwb] N01:1660p AT1 a a [Ns:e. N01:1660q NN1c pair pair. N01:1660r IO of of [Po. N01:1660s VVNv lost lose [Np[Tn[Vn[VVNv&. N01:1660t YC +,. N01:1670a VVNv whipped whip [VVNv.VVNv ]VVNv&]Vn]Tn] N01:1670b NN2 kids kid.np]po]ns:e]fn:o] N01:1670c YC +,. N01:1670d NP1s Morgan Morgan [Nns:s.Nns:s] N01:1670e VVDv thought think [Vd.Vd] N01:1670f CSA as as [Fa:t. N01:1670g PPHS1m he he [Nas:s.Nas:s] N01:1670h VVDi went go [Vd.Vd] N01:1670i IIt to to [P:q. N01:1670j NN1c bed bed.p:q]fa:t]s] N01:1670k YF +..O] 53
Lemmatisering i SUC <s id=aa01a 013> <w n=166>han<ana><ps>pn<m>utr SIN DEF SUB<b>han</w> <w n=167>skrattar<ana><ps>vb<m>prs AKT<b>skratta</w> <w n=168>lite<ana><ps>ab<m>pos<b>lite</w> <w n=169>åt<ana><ps>pp<b>åt</w> <w n=170>den<ana><ps>dt<m>utr SIN DEF<b>den</w> <w n=171>avfärdande<ana><ps>pc<m>prs UTR/NEU SIN/PLU IND/DEF NOM<b>avfärdande</w> <w n=172>formuleringen<ana><ps>nn<m>utr SIN DEF NOM<b>formulering</w> <w n=173>och<ana><ps>kn<b>och</w> <w n=174>fördjupar<ana><ps>vb<m>prs AKT<b>fördjupa</w> <w n=175>resonemanget<ana><ps>nn<m>neu SIN DEF NOM<b>resonemang</w> <d n=176>.<ana><ps>mad<b>.</d> </s> 54
Syntaktisk annotering Syntaktisk (grammatisk) analys av korpusen Automatisk syntaktisk uppmärkning ger mycket sämre resultat än t.ex. automatisk ordklasstaggning ofta mänsklig inblandning i parsningen Trädbanker = syntaktiskt uppmärkta korpusar Två huvudsakliga typer av syntaktisk uppmärkning: Frasstrukturer (nominalfraser, verbfraser etc.) Dependenser (subjekt, objekt etc.) 55
Frasstrukturuppmärkning i Spoken English Corpus [S[N Nemo_NP1,_, [N the_at killer_nn1 whale_nn1 N],_, [Fr[N who_pnqs N][V 'd_vhd grown_vvn [J too_rg big_jj [P for_if [N his_app$ pool_nn1 [P on_ii [N Clacton_NP1 Pier_NNL1 N]P]N]P]J]V]Fr]N],_, [V has_vhz arrived_vvn safely_rr [P at_ii [N his_app$ new_jj home_nn1 [P in_ii [N Windsor_NP1 [ safari_nn1 park_nnl1 ]N]P]N]P]V]._. S] S sentence N nominalfras FR relativsats V verbfras J adjektivfras P prepositionsfras 56
Dependensuppmärkning i Talbanken <sentence id="24" user="" date=""> <word id="1" form="dessutom" postag="ab" head="2" deprel="adv"/> <word id="2" form="höjs" postag="vb.prs.sfo" head="0" deprel="root"/> <word id="3" form="åldergränsen" postag="nn.utr.sin.def.nom" head="2" deprel="sub"/> <word id="4" form="till" postag="pp" head="2" deprel="adv"/> <word id="5" form="18" postag="rg.nom" head="6" deprel="det"/> <word id="6" form="år" postag="nn.neu.plu.ind.nom" head="4" deprel="pr"/> <word id="7" form="." postag="mad" head="2" deprel="ip"/> </sentence> ADV adverbiell modifierare PR komplement till preposition SUB subjekt IP interpunktion DET determinerare 57
Semantisk annotering Uppmärkning av semantiska relationer, såsom agent, patient etc. FrameNet: http://framenet.icsi.berkeley.edu/ Uppmärkning av ordbetydelse, t.ex. hyponymi WordNet: http://wordnet.princeton.edu/ Svenskt OrdNät: http://www.lingfil.uu.se/ling/swn.html 58
Textlingvistisk annotering Diskurstaggar London-Lund Corpus of Spoken English Ursäkter, sorry Hälsningar, hello Artighetsfraser, please Anaforisk annotering (pronomenreferens) 59
Fonetisk annotering Transkribering MARSEC The Machine Readable Spoken English Corpus Prosodi London-Lund Corpus of Spoken English Ska man märka upp hostningar, skratt, tvekanden etc? 60
Nästa gång Sökmotorer och korpussökning på Internet Nätresurser 61