Sagedusloend

Mõnikord läheb ikka vaja sõnade sagedusloendit. Mul hiljuti just niimoodi juhtus, mistõttu lugesin Eesti keele ühendkorpus 2017 põhjal kokku lemmade sagedused. Panen tulemuse ka siia üles, äkki kellelgi läheb veel vaja, siis ei pea sama uuesti tegema.

Lugesin lemma ja sõnaliigi kombinatsioone nii, nagu nad seal korpuses märgendatud on. See märgendus ei ole ideaalne, mis ilmselt mõjutab eriti vormihomonüümiaga sõnade asukohta sagedusloendis, aga suur pilt peaks küll enamvähem usutav olema. Üksiksõnade keelsust ma ei kontrollinud kuidagi, üksnes filtreerisin dokumenditasemel lang=”Estonian”.

Tulemus on 115.5 MB csv-fail kahe veeruga, lemma-sõnaliik ja absoluutsagedus 600 miljoni tekstisõna hulgas. Sõnaliikide koodid leiate nt EstNLTK dokumentatsioonist.

Erinevaid sõnatüüpe on 6637121, millest ligi kaks kolmandikku ehk 4160924 esineb kogu korpuses ainult ühe korra. Nende hulgas on täiesti legitiimseid sõnu nagu “konjunktuuriküsitlus” või “ekspordipartnerriik”, aga peamiselt koosneb sagedusloendi tagumine ots pärisnimedest, veebiaadressidest, võõrkeelsetest sõnadest, näpukatest, märgendusvigadest jne, Seetõttu tundus mõistlik tekitada ka oluliselt väiksem fail (17,7 MB) sõnadest, mis esinevad korpuses vähemalt viis korda. Selliseid on umbes miljon.

Loendi algus näeb välja selline (lisasin siin reanumbrid lihtsama jälgimise huvides):

1	olema-v	27833907
2	ja-j	18448429
3	see-p	12753094
4	mina-p	8021600
5	et-j	7976525
6	ei-v	7011141
7	tema-p	5944028
8	kui-d	5708611
9	mis-p	5552597
10	ka-d	5175649
11	saama-v	4490006
12	ning-j	3481612
13	aga-j	3034451
14	oma-p	2759364
15	aasta-s	2758520
16	või-j	2593644
17	sina-p	2448283
18	pidama-v	2400376
19	tegema-v	2385359
20	kes-p	2287497
21	nii-d	2227424
22	Eesti-h	2069520
23	ise-p	2037612
24	võima-v	2021749
25	tulema-v	2014093
26	kõik-p	1914466
27	siis-d	1824888
28	teine-o	1656755
29	üks-p	1581771
30	inimene-s	1532808
31	siis-j	1502329
32	aeg-s	1498793
33	väga-d	1409343
34	kas-d	1361319
35	minema-v	1320872
36	andma-v	1276486
37	veel-d	1227452
38	võtma-v	1214083
39	juba-d	1194785
40	välja-d	1166872
41	kuid-j	1149756
42	selline-p	1137018
43	uus-a	1115348
44	jääma-v	1095713
45	nagu-d	1075027
46	ütlema-v	1067971
47	teadma-v	1064900
48	suur-a	1035756
49	hakkama-v	1028617
50	hea-a	1026505
51	kus-d	991814

Miljoni sõna või vähemalt viie esinemiskorra piir on täiesti suvaline. Nagu öeldud, leidub legitiimseid sõnu sellest veel palju allpool ja sodi veel palju ülevalpool. Lühema faili lõpp on selline:

1068514	Ta-Ladu-h	5
1068515	tähtsustkas-d	5
1068516	MAX1999-y	5
1068517	tööturusubsiidium-s	5
1068518	aadlitalupoeg-s	5
1068519	Violiino-h	5
1068520	11-01-06-n	5
1068521	GBB-60NSYXE-y	5
1068522	miinimumsoovitus-s	5
1068523	Borõsenko-h	5
1068524	Valeväide-h	5
1068525	aastalõpuprassing-s	5
1068526	Rootsisõja-aegne-a	5
1068527	Metrô-h	5
1068528	Karakin-h	5
1068529	linnaasjandus-s	5
1068530	Tomcy-h	5
1068531	Momin-h	5
1068532	automaataparaat-s	5
1068533	Snoozebaby-h	5
1068534	haritlaslugeja-s	5
1068535	TRIMside-s	5
1068536	Traneksama-h	5
1068537	konspirituaalsus-s	5
1068538	2007-03-25-n	5
1068539	Manjaana-kompetents-s	5
1068540	tagasivõtmisprogramm-s	5
1068541	IGAD-y	5
1068542	jumbo-muffinipann-s	5
1068543	Yüksel-h	5
1068544	Erul-u-y	5
1068545	ENCU-y	5
1068546	ravipass-s	5
1068547	Ficer-h	5
1068548	G.M.Schmidt-h	5
1068549	rüütliriik-s	5
1068550	bivalent-s	5
1068551	loovutuskampaania-s	5
1068552	kosmonaudipension-s	5
1068553	Åsenlöv-h	5
1068554	Ðelda-h	5
1068555	Neijens-h	5
1068556	Petrolandia-h	5
1068557	Maruusjas-h	5
1068558	seguhenna-s	5
1068559	Losurdo-h	5
1068560	salahämar-a	5
1068561	sigimiskord-s	5
1068562	lähtekohamaa-s	5

Sõna definitsiooni üle annab muidugi vaielda. Mina tahtsin tõesti kõiki sõnataolisi nähtusi, aga mõnes teises rakenduses oleks ehk mõistlik vähemalt pärisnimed ja arvud välja filtreerida.

Eesti keele ühendkorpus 2017

Praegu suurim eesti keele korpus on Eesti keele ühendkorpus ehk Estonian National Corpus 2017:
https://entu.keeleressursid.ee/shared/7058/I5b9fRw71Av4kvq4PigkR4OjffANq3ubF3JJdxIJVhROJUFEKKj4IQl85skINmNV

Korpuse kogumaht on ligi 1 miljard tekstisõna, aga kui hakata täpsemalt sisse vaatama, siis see sisaldab ka muudes keeltes tekste. Ainult eestikeelseid (<doc lang=”Estonian”>) on umbes 600 miljonit.

Korpuse on EstNLTK ja vabamorfi abil morfoloogiliselt märgendanud Lexical Computing. Kasutatud on vaikimisi lausetaseme ühestamist, mis on andnud rohkem vigu kui vältimatult tarvis. Nt sõna “mais” on läbivalt märgendatud kui mitmuse seesütlev sõnast “maa”, mille asemel korrektsem oleks peaaegu alati maikuu, pluss mõni üksik teravili. Seega, kui vormiinfo on oluline, võiks kaaluda EstNLTK abil uuestimärgendamist koos dokumenditaseme ühestamisega. Vigu see ei kaota, aga vähendada võib.

Uuestimärgendamisel on ka see eelis, et nii saab korpus loetud EstNLTK andmestruktuuridesse. Olemasoleva märgenduse otse lugemine praegu ei õnnestu, sest korpus kasutab eelmistega võrreldes muutunud vormingut ja 2018 sügise seisuga on selle lugemine EstNLTK tegijatel rubriigis “kunagi peaks kindlasti ära tegema”.

Vorming näeb välja selline:

<doc id="1070432" src="web17" title="Haigekassa lükkab ümber Pealtnägija saates kõlanud süüdistused | Eesti Haigekassa" length="5k-10k" crawl_date="2017-09-27 03:05" lang_old="Estonian" lang_diff="0.28" ip="185.147.120.115" url="http://haigekassa.ee/en/node/2578" enc_meta="utf-8" enc_chared="utf_8" lang="Estonian" lang_scores="Estonian: 3913.12, Russian: 0.00, English: 711.05, Finnish: 1022.45, Ukrainian: 0.00, Belarusian: 0.00, Serbian: 0.00, Bulgarian: 0.00, Macedonian: 0.00">
<p heading="yes" langdiff="0.81">
<s>
Haigekassa      S.sg.n  haigekassa-s    sg_n    haige kassa     haige_kassa     0       
lükkab  V.b     lükkama-v       b       lükka   lükka   b       
ümber   K       ümber-k         ümber   ümber   0       
Pealtnägija     S.sg.g  pealtnägija-s   sg_g    pealt nägija    pealt_nägija    0       
saates  S.sg.in saade-s sg_in   saade   saade   s       
kõlanud V.nud   kõlama-v        nud     kõla    kõla    nud     
süüdistused     S.pl.n  süüdistus-s     pl_n    süüdistus       süüdistus       d       
</s>
</p>
<p langdiff="0.47">
<s>
Saade   H.pl.g  Saa-h   pl_g    Saa     Saa     de      
Pealtnägija     S.sg.n  pealtnägija-s   sg_n    pealt nägija    pealt_nägija    0       
pöördus V.s     pöörduma-v      s       pöördu  pöördu  s       
haigekassa      S.sg.g  haigekassa-s    sg_g    haige kassa     haige_kassa     0       
poole   K       poole-k         poole   poole   0       
seoses  K       seoses-k                seoses  seoses  0       
Eesti   H.sg.g  Eesti-h sg_g    Eesti   Eesti   0       
Hemofiiliaühingu        S.sg.g  hemofiiliaühing-s       sg_g    hemofiilia ühing        hemofiilia_ühing        0       
esitatud        V.tud   esitama-v       tud     esita   esita   tud     
kahtlustega     S.pl.kom        kahtlus-s       pl_kom  kahtlus kahtlus tega    
<g/>
.       Z       .-z             .       .               

Dokumendi alguses on tema metainfo, mis tõenäoliselt võiks olla üsna iseseletuv. Seejärel tulevad lõigud p ja laused s, nende sees igal real sõna koos oma analüüsiga. Veerud on järgmised, koos näidetega:

  • tekstisõna: “veepudeliga”, “toimus”
  • posgram ehk sõnaliik ja vormikood: “S.sg.kom”, “V.s”
  • lempos ehk lemma ja sõnaliik: “veepudel-s”, “toimuma-v”
  • vormikood: “sg_kom”, “s”
  • eraldatud tüved: “vee pudel”, “toimu”
  • liitsõna tüvi: “vee_pudel”, “toimu”
  • muutelõpp: “ga”, “s”

<g/> nagu glue tähistab kohta, kus tokeniseerimisel on kirjavahemärgi ette tühik lisatud.

Tasub tähele panna, et perioodika alamkorpuses esineb ka <info> element, nii et <doc> on ajalehenumber ja <info> üksikartikkel. Nii satuvad mõned andmed, mis üldiselt on <doc>is, ajalehtede puhul <info>sse, nt:

<doc id="3850" src="NC" filename="aja_EPL_2007_06_01.ma" balanced="no" texttype="periodicals">
<info id="224313" author="Kalle Kulbok, kuningriiklane" newspaperNumber="Eesti Päevaleht 01.06.2007" heading="Kolumnistid" article="KALLE KULBOK : kuluhüvitise uus kord on põhiseaduse vastane">

Ühendkorpuse järgmist versiooni on Lexical Computingult oodata 2019.

Arvi Tavast