Korpus teknikker
- To: sslug@sslug
- Subject: Korpus teknikker
- From: Bo Pedersen <sslug@sslug>
- Date: Wed, 4 Apr 2001 14:16:37 +0200 (METDST)
Hej
Hermed fremsendes en rapport som Dorte Haltrup fra Center for Sprogteknologi har
forfattet.
Det beskrives bl.a. hvordan det edb corpus som denne gruppe har indsamlet
behandles.
Teksten er konverteret fra word så der er formentlig nogle layoutmæssige kiks
ind imellem.
Jeg har gjort de beskrevne værktøjer (vistnok primært perl scripts) tilgængelige
på cst.dk/sto/corpustool.tar.gz
/Bo
---
Any, sufficiently satisfying, translation is indistinguishable from magic :-)
-------------------------------------------
INTERNT NOTAT
TIL: STO-GRUPPEN
FRA: DORTE
EMNE: UDVÆLGELSE AF NYE ORD TIL ET KENDT FAGOMRÅDE
DATO: 04-04-01
OVERORDNET BESKRIVELSE AF PROCESSEN
Dette er et forslag til hvordan man udvælger nye ord til STO (indenfor et kendt
fagområde).
Et af principperne bag forslaget er at alt skal foregå fuldautomatisk. Det fører
til at outputtet fra processen ikke er en liste over nye ord der skal kodes, men
en liste over kandidater til ord der skal kodes. Det er målet at listen skal
være så begrænset at det er muligt at gennemgå den og udvælge de ønskede ord
manuelt.
Udgangspunktet er:
a. et nyt korpus fra et kendt fagområde (domæne)
b. det gamle fagsproglige korpus
c. en fuldformsliste over alle de ord der er kodet i STO
Processen går i korte træk ud på :
1. at sammenligne de 2 fagsproglige korpora og uddrage de ordformer der er i det
nye korpus men ikke i det gamle
2. at normalisere ordene på den fundne liste (fx store til små bogstaver)
3. at frasortere "uinteressante" kandidater (fx "ord" der indeholder andre tegn
end bogstaver og ord med lav frekvens)
4. at sammenholde de fundne kandidater med en fuldformsliste over ord fra
STO-basen for dels at finde almensproglige ord blandt kandidaterne og dels at
frasortere de fagsproglige ord der allerede findes i STO-basen, men ikke er
blevet opdaget før. Grunden til at ord ikke bliver opdaget kan fx være at de er
stavet med stort i ét korpus, men med småt i et andet, eller at de findes i
forskellige bøjningsformer i de to korpora.
I processen gøres brug af 4 programmer:
1. tokenize, der splitter en tekst i tokens
2. words, der sammenligner to korpora og laver en frekvensliste over de
ordformer der er i det ene korpus men ikke i det andet
3. norm, der normaliserer frekvenslisten fundet af words
4. sammenl, der sammenligner den normaliserede frekvensliste fra norm med en
fuldformsliste fra STO-basen
BESKRIVELSE AF PROGRAMMET NORM
Formålet med norm er at reducere antallet af kandidater der skal kodes.
Inputtet er en råliste med frekvensangivelse (fx fra programmet words) og
outputtet er en normaliseret og reduceret frekvensliste.
Reduktionen indebærer at tal, symboler, koder samt ordformer der har en frekvens
mindre end 4(, sorteres fra. Derimod bibeholdes ordformer som indeholder tal,
men ikke udelukkende er tal. Normaliseringen gør at alle store bogstaver bliver
transformeret til små, det oprindelige ord stavet med store bogstaver bliver
gemt i parentes efter ordet, de normaliserede ord bliver sorteret og
frekvenserne for ens ord lægges sammen.
Programmets syntaks:
perl norm filnavn
Inputtets syntaks:
frekvensangivelse space ordform
Outputtet er to lister:
a) filnavn.numsort der er sorteret efter ordenes frekvens således at de mest
frekvente ord kommer først
b) filnavn.alfasort der er sorteret alfabetisk så man har alle bøjningsformer af
et ord samlet (vel at mærke hvis ikke ordet skifter stamme)
BESKRIVELSE AF PROGRAMMET SAMMENL
Programmet sammenl's funktion er at sammenligne en frekvensliste med en ordliste
og få udskrevet de ord fra frekvenslisten som findes (og de som ikke findes) på
ordlisten. Formålet er at lave et ekstra tjek på de kandidater der er fundet til
kodning. Frekvenslisten der blev fundet af programmet words, indeholder kun de
ordformer fra det nye korpus som ikke findes i det gamle korpus. Der gives dog
ingen garanti for at ordet ikke findes i andre bøjningsformer og derfor er kodet
i forvejen. Ved at sammenligne listen af kandidater med en fuldformsliste sikres
at ordet ikke allerede er kodet.
Programmets syntaks:
perl sammenl frekvensliste ordliste
Inputtets syntaks:
Frekvensliste: frekvens tab ordform [evt. space (Ordform)]
Ordliste: ordform [evt. en/flere space]
Outputtet er to filer:
ordliste.fundet: de ord der findes i begge lister
ordliste.nix: de ord der kun er på frekvenslisten og ikke på fuldformslisten
EKSEMPEL PÅ ANVENDELSE AF METODEN
Metoden er anvendt til at supplere STO-basens edb-ordforråd med ord fra et
korpus indsamlet af Linux-gruppen.
Det nye Linux-korpus på 447.671 tokens er først blevet sammenlignet med det
gamle edb-korpus på 664.979 tokens vha. programmet words. Resultatet er en
frekvensliste på 10.728 tokens der ikke alle er ord ; men en blanding af ord,
tal, tegn, symboler og formler.
Ved normalisering af listen med programmet norm er listen reduceret med 7.700
tokens. Der er altså 3.027 tokens tilbage som alle vil være ordformer fordi tal
og "ikke-bogstave-tegn" er frasorteret. Man kan hævde at det er en meget hård
sortering fordi der muligvis er interessante ord blandt de kasserede tokens(.
Sidst er den reducerede liste sammenlignet med en fuldformsliste over alle ord
fra STO-basen vha. programmet sammenl . Fuldformslisten består af 292.748
ortografisk forskellige ordformer, hvilket svarer til 37.718 forskellige
lemmaer. Der er fundet 844 gengangere, dvs. ordformer der allerede er kodet, så
tilbage er en råliste med 2183 forskellige ordformer der kandiderer til kodning.
Blandt de 2183 ordformer vil en del være forskellige bøjningsformer af samme
lemma.
Fra listen af kandidater er 395 ordformer fundet egnede til kodning, hvilket
svarer til ca. 300 lemmaer.
Reduktionen af Linux-korpuset fra korpus til kodede ord ser altså således ud:
Fundet automatisk:
Tokens i alt 449.671
(filen: linux_korpus)
Forskellige tokens 21.750
Tokens der ikke findes i det gamle edb-korpus 10.728
(filen: edb.tok.uni.filt)
Relevante ordformer blandt tokens 3.027
(filen: edb.tok.uni.filt.numsort)
Relevante ordformer der ikke er kodet 2.183
(filen: ordform.lst.nix)
Fundet manuelt:
Ordformer der skal kodes (ca.) 395
(filen: kandidater_red)
Lemmaer der skal kodes (ca.) 300
(filen: kandidater_lemma)
Filerne fra processen ligger i:
/rie/proj/sto/tmp/nye_edbord
 |
 |
 |
| |
|
|
 |
| |
|
Henvendelse vedrørende websiderne til <www_admin>.
|
Senest ændret
2005-08-10, klokken 20:52
Denne side vedligeholdes af
MHonArc
.
|
|
|
 |
 |
 |