SkÃ¥ne Sjælland Linux User Group - http://www.sslug.dk Forside   Tilmelding   Postarkiv   Forum   Kalender   Søg
MhonArc Dato: [Date Prev] [Kronologisk oversigt] [Date Next]   TrÃ¥d: [Date Prev] [Oversigt trÃ¥de] [Date Next]   MhonArc
 

Korpus teknikker



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



 
Forside   Tilmelding   Postarkiv   Oversigt   Kalender   Søg

 
 
Henvendelse vedrørende websiderne til <www_admin>. Senest ændret 2005-08-10, klokken 20:52
Denne side vedligeholdes af MHonArc .