Tf–idf

[thumb|[Karen Spärck Jonesek (1935-2007) indexazio automatizatuaren garapena lideratu zuen.]]
Informazioaren berreskurapenean, **tf–idf** edo **TFIDF**, **terminoen maiztasuna–alderantzizko dokumentu maiztasuna** (ingelesez term frequency–inverse document frequency), zenbakizko estatistika bat da eta hitz bat zein garrantzitsua den adieraztea du helburu, dokumentu bilduma batean edo corpus batean. Sarri erabili oi da ponderazio-faktore modura, informazioaren berreskurapeneko bilaketetan, testu-meatzaritzan, eta erabiltzaile modelaketa.
Tf-idf balioa proportzionalki hazten da hitz bat dokumentuan agertzen den kopuruarekiko, eta hitzaren corpuseko maiztasunekin orekatzen da, zeinak hitz batzuk, oro har sarriago agertzen direla erakusten duen. Gaur egun, tf-idf da termino-ponderazio-eskema ezagunenetako bat; liburutegi digitaletan, testuetan oinarritutako gomendio-sistemen % 83k erabiltzen du tf-idf.

Tf–idf ponderazio-eskemaren aldaerak askotan erabiltzen dituzte bilaketa-motoreek, erabiltzailearen kontsulta batetarako, dokumentu baten garrantzia puntuatu eta ranking bat osatzeko tresna gisa. Tf–idf arrakastaz erabili daiteke hainbat eremutan hitz-hutsen (stopwords) iragazketarako, testu laburpena eta sailkapena barne.

Ranking funtzio sinpleenetariko bat kontsultako termino bakoitzeko TF-IDFak batuz kalkulatzen da; sofistikatuagoak diren sailkapen funtzioetariko ugari eredu sinple honen aldaerak besterik ez dira.

## Motibazioak 
###   Terminoen maiztasuna 
Suposa dezagun Euskerazko testu dokumentu batzuk ditugula eta "behi marroia" kontsultarako, dokumentu adierazgarriena zein den jakin nahi dugula. Abiapuntu gisa "behi" eta "marroi", hitz biak ez dituzten dokumentuak baztertu ditzakegu, baina, hala ere, dokumentu asko geratzen zaizkigu.
Bilaketan aurrera jo nahi izanez gero, termino bakoitza dokumentu bakoitzean zenbatetan agertzen den kontatu genezake; termino jakin bat dokumentu batean zenbat aldiz ageri den, terminoen maiztasuna deritzo. Hala eta guztiz ere, dokumentuen luzera asko aldatzen den kasuetan, doikuntzak egin behar izaten dira (ikusi definizioa behean). Terminoen ponderazioaren lehen forma, Hans Peter Luhnri (1957) zor zaio, honela laburbilduz:
* Dokumentu batean ageri den termino baten pisua terminoen maiztasunarekiko proportzionala da.

### Alderantzizko dokumentu maiztasuna 
"Behia eta astoa" kontsultarako, "eta" terminoa oso arrunta izanik, hau sarri ageri den testuak azpimarratzeko joera okerra izango du, "behia" eta "astoa" termino esanguratsuei dagokien pisua eman gabe. "Eta" terminoa ez da hitz-gako egokia dokumentu esanguratsuak bereizteko, "behia" eta "astoa" hitz ez horren arruntak egokiakoak diren bitartean. Hori dela eta, *alderantzizko-dokumentu-maiztasuna* faktorea gehitzen zaio eta horrela dokumentuetan zehar maiz azaltzen den termino horri pisua murrizten zaio, termino ezohikoagoen pisua handitu bitartean.

Karen Spärck Jones (1972) asmatutako interpretazio estatistiko batek, Alderantzizko Dokumentu Maiztasuna (IDF) deiturikoak, terminoen espezifikotasuna neurtzeko balio zuen, eta hau giltzarri bilakatu zen terminoen ponderazioan:
* Termino baten espezifikotasuna dokumentu horrentako agerpen kopuruaren alderantzizko funtzio gisa kuantifikatua izan daiteke.

## Definizioa 
Tf–idf bi estatistikoren biderketaren emaitza da, terminoen maiztasuna eta alderantzizkoa dokumentu maiztasunarena. Hainbat modu daude estatistiko bakoitzaren balio zehatzak zehazteko.

###   Terminoen maiztasuna 
**Terminoen maiztasunaren** tf(*t*,*d*) kasuan, aukerarik errazena dokumentuan hitzaren *kontaketa gordina* erabiltzea da, hau da, *d* dokumentu batean *t* terminoa zenbatetan ageri den. Kontaketa  *f**t*,*d*, bidez adierazten badugu,  tf(*t*,*d*) = *f**t*,*d* da tf eskema errazena. Beste aukera batzuk, besteak beste
* "maiztasun" Boolearrak: tf(*t*,*d*) = 1 da,   -n agertzen bada, eta 0 bestela;
*  Terminoen maiztasuna dokumentuaren luzerara egokitua: *f**t*,*d* ÷ (hitz-kopurua d-n)
*  Eskala logaritmikoko maiztasuna: tf(*t*,*d*) = log ( 1 + *f**t*,*d*), (edo zero, *f**t*,*d* zero bada);

* Maiztasun areagotuak, dokumentu luzeetan bias-a ekiditeko, adibidez, maiztasuna zati dokumentuan gehien agertzen den terminoaren maistasuna:
:\mathrm{tf}(t,d) = 0.5 + 0.5 \cdot  \frac{f_{t, d}}{\max\{f_{t', d}:t' \in d\}}

### Alderantzizko dokumentu maiztasuna 
**Alderantzizkoa dokumentu maiztasuna** hitz batek zenbat informazio ematen duen adierazteko neurri bat da, hau da, ea terminoa ohikoa edo arraroa den dokumentu guztietan zehar. Hitza barne duten dokumentuen eskala logaritmikoko alderantzizko zatikia da. Dokumentu kopurua zati terminoa barne duten dokumentuen kopurua eginez lortzen dan, ondoren zatiduraren logaritmoa kalkulatuz.
: \mathrm{idf}(t, D) =  \log \frac{N}

non
* N: dokumentuen kopurua guztira corpusean N = 
*  |\{d \in D: t \in d\}|  : terminoa agertzen den dokumentu kopurua (hau da,  \mathrm{tf}(t,d) \neq 0). Terminoa corpusean ez bada, zerorekin zatitzera eramango gaitu, . beraz, ohikoa da izendatzailea honela egokitzea 1 + |\{d \in D: t \in d\}|.

thumb|Alderantzizko dokumentu maiztasuna kalkulatzeko funtzio ezberdinen grafikoa: estandarra, leuna eta probabilistikoa.

### Termino maiztasun–Alderantzizko dokumentu maiztasuna 
Ondoren, tf–idf honela kalkulatzen da:

:\mathrm{tfidf}(t,d,D) = \mathrm{tf}(t,d) \cdot \mathrm{idf}(t, D)

TFIDF-n pisu altua lortzen da maiztasun handiko (dokumentu batean) termino bat eta dokumentu bilduma osoan, dokumentu maiztasun txikia duen termino bat erabiliz; pisuek, beraz, termino arruntak iragazteko joera dute.
IDF-ren log funtzioa beti 1 edo handiagoa izanik, IDF-ren (eta TDIDFren) balioa 0 edo handiagoa izango da.
Termino bat dokumentu anitzetan ageri daitekeenez, logaritmo barruko ratioa 1era hurbiltzen da, idf eta tf-idf 0rantz hurbilduz.

## TFIDFaren adibidea 
Suposa dezagun ingelesezko corpus bat dugula, bi dokumentuz osatua, eta hitzen kontaketa egin dugula, beheko taulan daude ikusgai.

"this" terminoaren TFIDFa honela kalkulatzen da:

Bere maiztasun forma gordinean, dokumentu bakoitzerako "this"-en maiztasuna besterik ez da tf. Dokumentu bakoitzean, "this" hitza behin agertzen da; baina 2. dokumentuak hitz gehiago dituenez, bere maiztasun erlatiboa txikiagoa da.
:  \mathrm{tf}(\mathsf{*this*}, d_{1}) = \frac{1}{5} = 0.2 
:  \mathrm{tf}(\mathsf{*this*}, d_{2}) = \frac{1}{7} \approx 0.14 

Idf bat corpus bakoitzeko  konstantea da, eta "this" hitza barne duten dokumentuen ratioa adierazten du. Kasu honetan, bi dokumentuko corpus bat dugu, eta guztiek dute "this" hitza barnean.
:  \mathrm{idf}(\mathsf{*this*}, D) =  \log \left (\frac{2}{2}  \right ) = 0 

Beraz, TDIDFa zero da "this" hitzarentzat, eta horrek hitza ez dela oso adierazgarria erakusten digu, dokumentu guztietan agertzen delako.
:   \mathrm{tfidf}(\mathsf{*this*}, d_{1}) = 0.2 \times 0 = 0 
:   \mathrm{tfidf}(\mathsf{*this*}, d_{2}) = 0.14 \times 0 = 0 

Adibide interesgarriago bat izango dugu "example" hitzarekin; hiru alditan agertzen da, nahiz eta bigarren dokumentuan soilik agertzen den:
:  \mathrm{tf}(\mathsf{*example*}, d_{1}) = \frac{0}{5} = 0 
:  \mathrm{tf}(\mathsf{*example*}, d_{2}) = \frac{3}{7} \approx 0.429 
:  \mathrm{idf}(\mathsf{*example*}, D) =  \log \left (\frac{2}{1}  \right ) = 0.301 

Azkenik,
:\mathrm{tfidf}(\mathsf{*example*}, d_1) = \mathrm{tf}(\mathsf{*example*}, d_1) \times \mathrm{idf}(\mathsf{*example*}, D) = 0 \times 0.301 = 0
:\mathrm{tfidf}(\mathsf{*example*}, d_2) = \mathrm{tf}(\mathsf{*example*}, d_2) \times \mathrm{idf}(\mathsf{*example*}, D) = 0.429 \times 0.301 \approx 0.13

(logaritmo hamartarrak erabiliz ).

## Erreferentziak 
## Kanpo estekak