Tekstikaeve

**Tekstikaeve** ehk **tekstikaevandamine** (inglise keeles *text mining*) on automaatne protsess, millega eraldatakse tekstiandmetest mittetriviaalset informatsiooni ja kasulikke teadmisi. Selle käigus kogutakse struktureerimata loomuliku keele tekste, mille analüüsimiseks viiakse need masinloetavale kujule, mis võimaldab rakendada andmekaeve tehnikaid. Seega põimub tekstikaeve erinevate valdkondadega, nagu näiteks: loomuliku keele töötlus, andmekaeve ja infootsing.

## Eripärad
Tekstikaeve erineb teistest sarnastest valdkondadest eelkõige seetõttu, et: 
* Tegeleb teksti analüüsimisega võrdlemisi pealiskaudsemalt, kui loomuliku keele töötlus (inglise keeles *natural language processing*). Tekstikaeve ei arvesta näiteks semantiliste seostega ega lausete ülesehitusega. See tähendab, et tekstikaevel rakendatavad meetodid loeks näiteks lause "mul ei ole paha olla" negatiivseks, samas kui loomuliku keele töötluse meetodid võimaldavad seda konteksti põhjal positiivseks tuvastada.
* Tekstikaeve süsteemid võimaldavad sisendina kasutada loomulikul keelel põhinevaid struktureerimata tekstiandmeid. Andmekaeve süsteemid seevastu nõuavad tüüpiliselt aga struktureeritud arvandmeid.
* Tekstiandmed esitatakse esialgselt dokumendi kujul vormingutes, mis tihti põhinevad XML-il. Andmekaeve meetodid seevastu nõuavad, et andmed paikneksid arvutustabelis.

## Etapid
Tekstiandmetest oluliste mustrite ja teabe kaevandamiseks on tüüpiliselt vaja läbida järgnevad etapid:
* **Dokumentide (laused, tekstiosad, failid jne.) ehk tekstiandmete kogumine** – mida, kui palju ja kust, sõltub lahendatavast ülesandest. Selles etapis kasutatakse tihti klasterdamise meetodeid (k-keskmiste klasterdamine ja hierarhiline klasterdamine) selleks, et suurtest andmemassidest leida lähtuvalt ülesandepüstitusele täpsemaid vasteid.
* **Teksti eeltöötlus** – üleliigse informatsiooni eemaldamine ja tekstiandmete normaliseerimine. Viimase puhul kasutatakse erinevaid võtteid, nagu näiteks: sõnapiiride tuvastamine (inglise keeles *tokenization*), sõnaliikide märgendamine (inglise keeles *part-of-speech tagging*) ja lemmatiseerimine (inglise keeles *lemmatizing*).
* **Teksti muundamine (atribuutide genereerimine)** – puhastatud dokumendid viiakse üle kujule, mis väljendab sõnu ja nende esinemise sagedusi. Selleks kasutatakse ''bag-of-words'' meetodit või vektorruumi.
* **Atribuutide valik** – valitakse välja kõige olulisemad atribuudid, mille põhjal hakatakse järgnevalt teadmisi kaevandama. 
* **Andmete (mustrite) kaevandamine** – eelnevate etappide tulemusena on tekkinud struktureeritud andmebaas, mida saab kasutada sisendina andmekaeve süsteemides. Teisisõnu hakatakse rakendama andmekaeve tehnikaid, leidmaks kasulikke teadmisi.
* **Tulemuste hindamine** – selgub, kas vastused on rahuldavad. Saadud teadmisi kasutatakse ka järgmiste sarnaste ülesannete lahendamiseks.

### Alamprotsessid
Järgnevalt mõningad spetsiifilised võtted, millega puututakse kokku tekstikaevandamisel:
* **Infootsing** – dokumentide ja korpuste (tekstikogude) otsing ja ladustamine
* **Sõnapiiride tuvastamine** (*tokenization*) – tekst jaotatakse sõnavormideks ja sõnaühenditeks, eraldades üleliigsed sümbolid ja tühikud.
* **Lemmatiseerimine** (*lemmatizing*) – sama tüvega sõnad taandatakse algvormi kujule. Näiteks sõnavormid "pidu, peo, pidutsesid" viiakse kujule "pidu", et neid oleks võimalik analüüsida kui samasisulisi termineid.
* **Sõnaliikide märgendamine** (*part-of-speech tagging*) – sõnadele omistatakse sõnaliigid. Sõltub lähtekeelest ja selle reeglistikust.
* **Ebaselgete sõnade eristamine** (inglise keeles *word sense disambiguation*) – konteksti põhjal tuvastatakse mitmeti mõistetavate sõnade tähendus. Näiteks lauses "printeris sai tint otsa" peab masin tundma ära, et tegemist on värvipigmente sisaldava vedelikuga, mitte kalaga. 
* **Meelestatuse analüüs** (inglise keeles *sentiment analysis*) – tuvastatakse subjektiivse määratlusega sõnad või fraasid, mis väljendavad emotsioone, arvamusi, tuju jne. 
* **Nimega üksuste tuvastamine** (inglise keeles *named entity recognition*) – tekstist eristatakse isikute, organisatsioonide ja asukohtade nimetusi väljendavad nimisõnad.
* **Samaviiteliste üksuste leidmine** (inglise keeles *coreference extraction*) – tuvastatakse väljendid, mis viitavad mõnele nimisõnale. Näiteks lauses "mees kõndis metsas, ta ei teadnud kuhu minna" saaks luua suhte nimisõna "mees" ja asesõna "ta" vahel.

## Rakendusvaldkonnad
### Haridus
Tekstikaevet saab hariduses kasutada hilisemate trendide tuvastamiseks ja tagasisidestamiseks. Näiteks on võimalik läbi kvalitatiivsete meetodite uurida sotsiaalmeedia põhjal õpilaste meelestatust kooli vastu ning teha selle põhjal järeldusi . Samuti on võimalik tekstikaeve võtteid kasutada relevantsete uurimistööde ja materjalide leidmiseks suurtest ning mitmekülgsetest andmehulkadest. 
### Turundamine
Tekstikaeve vahendeid ja meetodeid (meelestatuse analüüs kooskõlas nimega üksuste tuvastamisega) kasutatakse tänapäeval näiteks kliendisuhete korraldamiseks. 
### Julgeolek
Tekstikaeve tarkvarapaketid võimaldavad monitoorida ja analüüsida veebis leiduvaid tekste riikliku julgeoleku otstarbeks. 
### Biomeditsiin
Tekstikaeve tehnikad, näiteks nimega üksuste tuvastamine, võimaldavad klassifitseerida ja tuvastada kirjandusest haigustega seotud biomarkereid. Veebikaeve, mis on osa tekstikaevest, aitab tuvastada haiguspuhanguid. Biomeditsiini valdkonnas kasutatakse tekstikaevet veel seoste leidmiseks näiteks olemasolevate ravimite ja uute haiguste vahel. Kasutusel on spetsiifilised tarkvarad, nagu BioClass ja BioLMiner.

## Tarkvara
* **Angnoss Text Analytics** – võimaldab nimega üksuste tuvastamist, meelestatuse analüüsi jm.
* **Autonomy** – tekstikaeve, klasterdamise ja kategoriseerimise tarkvara
* **RapidMiner** – eraldi tekstitöötluse moodul
Avatud lähtekoodiga programmid, nagu näiteks **Orange**, **OpenNLP**, **Gensim** ja **InfraNodus**

## Viited