Korpuslingvistik vt 2007 Föreläsning 2: Korpusannotering, textkodning, textnormalisering Eva Pettersson evapet@stp.lingfil.uu.se 1
Föreläsningsöversikt Korpussammanställning Textkodning Textnormalisering Annotering Flerspråkiga korpusar 2
Korpussammanställning Att tänka på innan man påbörjar själva korpusinsamlingen: 1. Vad är syftet med korpussammanställningen? 2. Vilka genrer vill jag täcka? 3. Hur gör jag min korpus representativ för den/de genrer jag vill täcka? 4. Hur stor bör min korpus vara för att vara relevant? 5. Vilken hierarkisk struktur ska jag ha på korpusen? 6. Upphovsrätt till de texter jag samlar in? Var laglig! 3
Korpusurval (sampling) Val av element ur en större mängd Mängden man väljer ifrån kallas population Den valda mängden kallas sampel Syftet är oftast att åstadkomma ett representativt sampel, d.v.s. ett sampel som speglar populationen med avseende på vissa relevanta variabler Genom att undersöka ett representativt sampel kan man dra slutsatser om populationen i stort 4
Samplingsmetoder utan slump Lättillgänglighetsampling (convenience sampling) man tar det som är närmast till hands, frågar släkt och vänner Styrd sampling (purposive sampling) forskaren själv väljer ut element som passar bra Snöbollssampling (snowball sampling) valet av ett element bidrar till att andra element väljs (kedjebrev) Kvotsampling (quota sampling) populationen delas in i olika kategorier (t.ex. kön och ålder) och man letar reda på element för varje kategori Problem med icke-slumpmässiga metoder: dåliga på att åstadkomma representativa sampel 5
Samplingsmetoder med slump Enkel slumpmässig sampling (simple random sampling) alla element har lika stor chans att dras Systematisk slumpmässig sampling (systematic random sampling) börjar på slumpmässigt ställe och drar sedan var i:te element Stratifierad sampling (stratified sampling) populationen delas in kategorier, strata (t.ex. kön, ålder, region) från vilka slumpmässiga sampel dras. Problem: Känner vi till hela populationen? 6
Textkodning Att märka upp texten med information om t.ex. författare, dokumenttyp, meningsgränser, styckeindelning etc. Inte trivialt om man vill göra korpusen lättillgänglig för utomstående! Finns det någon standard för detta? 7
Tidig textkodningsstandard: COCOA Word COunt and COncordance on Atlas Mycket tidig textkodningsstandard 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 8
Modern textkodningsstandard: TEI Text Encoding Initiative 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, XHTML etc.) 9
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> 10
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> 11
TEI - format (3) Entiteter omges av & och ; Entiteterna kan vara t.ex. taggar: polished&vvd; eller speciella tecken: båt - båt bär - bär snö - snö 12
Teckenkodning Hur tecknen representeras i datorn, d.v.s. att översätta tecken till bits och bytes Varje tecken får en unik kod som motsvarar tecknet (i en teckentabell) Olika språk kräver olika teckenuppsättningar beroende på alfabetet Viktigt vid överföring av texten från ett system till ett annat Finns det någon standard? Ja, flera... IANA - Internet Assigned Numbers Authority 13
ASCII-kodning ASCII - American Standard Code for Information Interchange Utvecklat 1968 1 byte per tecken 7 bit för teckenkoderingen (128 möjliga tecken) + en paritetsbit för att kontrollera teckenöverföringen Kontrolltecken för speciella funktioner (backspace, tab, new line) 14
ASCII-kodning ------------------------------------------------------------------- 32 SP 33! 34 " 35 # 36 $ 37 % 38 & 39 40 ( 41 ) 42 * 43 + 44, 45-46. 47 / 48 0 49 1 50 2 51 3 52 4 53 5 54 6 55 7 56 8 57 9 58 : 59 ; 60 < 61 = 62 > 63? 64 @ 65 A 66 B 67 C 68 D 69 E 70 F 71 G 72 H 73 I 74 J 75 K 76 L 77 M 78 N 79 O 80 P 81 Q 82 R 83 S 84 T 85 U 86 V 87 W 88 X 89 Y 90 Z 91 [ 92 \ 93 ] 94 ^ 95 _ 96 97 a 98 b 99 c 100 d 101 e 102 f 103 g 104 h 105 i 106 j 107 k 108 l 109 m 110 n 111 o 112 p 113 q 114 r 115 s 116 t 117 u 118 v 119 w 120 x 121 y 122 z 123 { 124 125 } 126 ~ 127 DEL ------------------------------------------------------------------- 15
Alternativ? ASCII utvecklat för engelska Problem för språk med annat alfabet, t.ex. ryska, kinesiska eller arabiska Problem för språk med speciella tecken, t.ex. å, ä, ö, é, ü Lösningar: 1. Använd ASCII och ge speciella tecken specialkoder, t.ex. ä för ä i HTML 2. Utöka den ursprungliga ASCII-tabellen med fler tecken - språkberoende teckenkodningstabeller 3. Unicode - en enda standard för alla världens språk 16
Språkberoende teckenkodning Utvecklat av Internationella StandardiseringsOrganisationen (ISO) ISO 8859-1 (Latin 1) Västeuropeiska språk ISO 8859-2 (Latin 2) Östeuropeiska språk med det latinska alfabetet ISO 8859-3 (Latin 3) Sydeuropeiska språk ISO 8859-4 (Latin 4) Nordeuropeiska språk ISO 8859-5 Östeuropeiska språk med det kyrilliska alfabetet ISO 8859-6 Arabiska ISO 8859-7 Modern grekiska ISO 8859-8 Hebreiska ISO 8859-9 (Latin 5) Turkiska ISO 8859-10 (Latin 6) Nordeuropeiska språk, inkl. grönländska och samiska 17
Unicode En enda teckenkodning för alla världens språk Plats för mer än en miljon tecken i samma tabell Kräver mer än 1 byte per tecken i lagringsutrymme: UTF-8 1 byte/tkn för ASCII, 2-4 bytes för övriga UTF-16 2 bytes/tkn för vanligaste tecknen, 4 bytes för övriga UTF-32 4 bytes/tkn UTF = Unicode Transformation Format 18
Textnormalisering Att ge texten ett enhetligt format, t.ex. inför annotering Meningssegmentering Tokenisering, d.v.s. att dela upp texten i de ingående orden Inte trivialt vad som räknas som ett ord! 19
Tokeniseringsproblematik (1) Punkter Kan utgöra del av förkortning, som i 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. Apostrofer Kan fungera som citationstkn eller som del av ordet: the boys vs the boys toys Är isn t att betrakta som ett eller två ord? 20
Tokeniseringsproblematik (2) Mellanslag utgör inte alltid ordavgränsare särskrivna sammansättningar - insurance company egennamn - New York fraser - i alla fall sifferuttryck - 100 000 21
Textnormalisering - TnT TnT-taggaren: ett ord per rad tom rad markerar meningsslut We re going. Are you? 22
Textnormalisering - Brill Brill-taggaren: en mening per rad separera skiljetecken från ord We re going today, are you? I m hungry, he said. 23
Annotering Att märka upp korpusen med lingvistisk information ordklasstaggning lemmatisering syntaktisk annotering (parsning) semantisk annotering textlingvistisk annotering fonetisk annotering 24
Ordklasstaggning Vad menas med ordklasstaggning? ren ordklassinformation: substantiv, adjektiv, verb etc. Dock ej trivialt vilka ordklasser som faktiskt existerar! Traditionell svensk grammatik: 9 ordklasser SUC: 23 ordklasser morfosyntaktisk information: genus, numerus, person etc. Vad avgör graden av specificitet? syftet med taggningen språkets uppbyggnad (rik morfologi - rik tagguppsättning) 25
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) 26
Morfosyntaktiska särdrag i SUC genus (utrum/neutrum/maskulin) numerus bestämdhet kasus (nominativ/genitiv) tempus diates (aktiv/s-form) modus (konjunktiv) participform komparationsgrad pronomenkasus (subjekt/objekt) 27
SUC <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> 28
BNC BNC - British National Corpus ca 100 miljoner löpord talad och skriven brittisk engelska automatiskt taggad utan manuell efterredigering 61 olika taggar ca 4.7% flervalstaggar 2 miljoner ord stor delmängd rikare taggad och manuellt efterredigerad - 139 olika taggar 29
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 30
EAGLE EAGLE - Expert Advisory Groups on Language Engineering Standards Grupp inom EU som bl.a. arbetar med EU-standard för korpusuppmärkning 31
EAGLEs taggningsrekommendationer Obligatoriska särdrag - de stora ordklasserna: nomen, verb, adjektiv, pronomen/determinerare, artikel, adverb, adposition, konjunktion, numeral, interjektion, unik, rest, interpunktion Rekommenderade särdrag För nomen: 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 nomen språkspecifika: t.ex. definithet för nomen 32
Lemmatisering Att byta ut alla ordformer i texten mot ordets grundform Varför är detta av vikt inom korpuslingvistiken? Exempel på lemmatiserade korpusar: Susanne (engelska) Susanne - Surface and Underlying Structural Analysis of Natural English delmängd av Brown-korpusen 130 000 löpord skriven amerikansk engelska SUC (svenska) 33
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] 34
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> 35
Syntaktisk annotering Parsning, d.v.s. grammatisk analys av texten Automatisk parsning ger mycket lägre precision än t.ex. automatisk ordklasstaggning - ofta manuell inblandning Trädbanker = parsade korpusar Två huvudsakliga typer av parsning: frasstruktur skeleton parsing full parsing dependensrelationer (subjekt, objekt etc.) 36
Frasstrukturparsning 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 37
Dependensparsning i Talbanken (Nivres MALT-parser) <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 SUB subjekt DET determinerare PR komplement till preposition IP interpunktion 38
Semantisk annotering Två typer: 1. uppmärkning av semantiska relationer såsom agent, patient etc. FrameNet (http://framenet.icsi.berkeley.edu/) 2. uppmärkning av ordbetydelse, t.ex. hyponymirelationer WordNet (http://wordnet.princeton.edu/) 39
Textlingvistisk annotering Diskurstaggar London-Lund Corpus of Spoken English (Stenström): ursäkter, sorry hälsningar, hello artighetsfraser, please m.fl. Anaforisk annotering (pronomenreferens) 40
Fonetisk annotering Transkribering MARSEC - The Machine Readable Spoken English Corpus Prosodi London-Lund Corpus of Spoken English Ska man märka upp hostningar, skratt etc.? 41
Flerspråkiga korpusar Parallellkorpusar: Korpusar bestående av samma texter på flera olika språk. Jämförbara korpusar: Korpusar bestående av texter på flera språk. Det är inte samma texter på de olika språken, men de bör tillhöra samma domän. 42
Parallellkorpusar Hansard Engelsk-fransk parallellkorpus bestående av kanadensiska parlamentsprotokoll Många miljoner löpord Delvis taggad och parsad EUROPARL Parallellkorpus bestående av officiella Europaparlamentstexter utgivna april 1996-december 2001 Tillgängliga på 11 olika EU-språk Ca 20 miljoner löpord - 740 000 meningar per språk http://people.csail.mit.edu/koehn/publications/europarl/ 43
Länkning (alignment) Att para ihop segment i källspråket (originaldokumentet) med motsvarande segment i målspråket (den översatta texten) meningslänkning ord- och fraslänkning 44
Meningslänkning Att para ihop meningar i källspråket med motsvarande meningar i målspråket Mycket hög precision Ledtrådar: styckeindelning, längdmått, lexikon, sifferuttryck etc. Inte alltid ett-till-ett-förhållande mellan antalet meningar på de olika språken. Exempel från Jörg Tiedemann (2003): 1:1 I didn t know what to say. - Jag visste inte vad jag skulle säga. 2:3 Her brother said to her, Why does Ras always say longwedge for - language, he talks about African longwedges? Sounds so funny. Hur kommer det sig att Ras alltid säger sprak i stället för språk? Han talar om afrikanska sprak. Det låter så roligt. 2:1 Go to hell. Emanuelle sat up straight. Dra åt skogen! sade Emanuelle och satte sig kapprak. 45
Ordlänkning Att para ihop ord och fraser i källspråket med motsvarande ord och fraser i målspråket Oftast statistiska metoder, såsom samförekomst och stränglikhet Jörg Tiedemann använder därutöver lingvistiska metoder, såsom ordklasstaggning och lemmatisering Exempel på ordlänkningssystem: GIZA++, bygger helt på statistik Clue Aligner, både statistik och lingvistiska ledtrådar (där GIZA++ är en av de statistiska ledtrådarna) 46
Parallellkorpusar - användningsområden statistisk/exempelbaserad maskinöversättning extrahera flerspråkiga lexikon för t.ex. maskinöversättning (inte bara statistisk maskinöversättning) flerspråkig informationssökning andraspråksinlärning 47