Hitz-zaku eredu: berrikuspenen arteko aldeak

Ezabatutako edukia Gehitutako edukia
t Robota: Testu aldaketa automatikoa (-[Cc]ite[ _]book +erreferentzia)
t Robota: Aldaketa kosmetikoak
 
1. lerroa:
'''Hitz-zaku''' edo '''bag-of-words''' eredua [[Informazioa eskuratzea|informazioaren berreskuratze]] eta [[Hizkuntzarenhizkuntzaren prozesamendu|hizkuntzaren prozesamenduan]]an erabilitako testuak errepresentatzeko modu bat da. Adierazpide honetan, testu bat (adibidez dokumentu edo esaldi bat) barnean dituen hitzen zaku edo [[multimultzo]] bat bezala adierazten da, hau da, hitzen arteko ordena eta harremana baztertzen da, baina agerpen-kontaketak mantentzen dira. Hitz-zaku eredua ikusmen artifizialean ere erabili izan da. <ref>Sivic, Josef(April 2009) [http://www.di.ens.fr/~josef/publications/sivic09a.pdf Efficient visual search of videos cast as text retrieval] (PDF). IEEE TRANSACTIONS ON PATTERN ALAYSIS AND MACHINE INTELLIGENCE, VOL 31.NO. 4. IEEE. pp. 591-605</ref>
 
Hitz-zaku eredua askotan [[Dokumentuen sailkapena|dokumentu saenilkapenean]] erabiltzen da, non hitz bakoitzaren agerpen-kontaketa sailkatzailearen entrenamendu datu gisa erabiltzen den.<ref> McTear et al 2016, p. 167. </ref>
 
“Hitz-zaku” terminoaren erabilera goiztiar bat Zellig Harris-en 1954ko ''Distributional Structure'' artikuluan aurki daiteke.<ref>[[:en:Zellig_Harris|Hallis, Zellig]] (1954). "Distributional Structure", Word. 10 (2/3): 146-62. "And this stock of combinations of elements becomes a factor in the way later choices are made ... for language is not merely a bag of words but a tool with particular properties which have been fashioned in the course of its use"</ref>
 
== Inplementazio adibide bat ==
13. lerroa:
 
</syntaxhighlight>BOW adierazpidea lortzeko bakarrik kontatuko da hitz bakoitza zenbat aldiz agertzen den, hitzen arteko ordena edo harremana kontuan hartu gabe. Adibidez, ''JSON'' objektuen bidez gorde ditzakegu BOW adierazpidea:<syntaxhighlight lang="javascript">
BoW1 = {"Nereak":1, "filmak":2, "gogoko":2, "ditu":2, "Jonek":1, "ere":1};
BoW2 = {"Asierrek":1, "pilota":1, "jardunaldiak":1, "ikustea":1, "gogoko":1, "du":1};
</syntaxhighlight>Objektu horietan hitz bakoitza dokumentuan zenbat aldiz agertzen den gordetzen da. Gainera adierazpide hau ordenarekiko independentea da, hitz bakoitzaren agerpen-kontaketak beste edozein ordenatan adierazita BoW adierazpen bera lortzen dugu. Gainera, bi dokumentuak kateatzen baditugu hurrengo esaldia lortzen da:<syntaxhighlight lang="text">
19. lerroa:
 
</syntaxhighlight> Eta esaldi honen BoW adierazpena hau izango da: <syntaxhighlight lang="javascript">
BoW3 = {"Nereak":1, "filmak":2, "gogoko":3, "ditu":2, "Jonek":1, "ere":1, "Asierrek":1, "pilota":1, "jardunaldiak":1, "ikustea":1, "du":1};
</syntaxhighlight>Hitz bat dokumentu horietako bakar batean agertzen denean bere agerpen kopuru bera erabiliko da kateaketaren adierazpenean, eta bi dokumentuetan agertzen denean kontaketen batura erabiliko da. Hau bat dator multi-multzo egituren gehiketa operazioarekin.
 
31. lerroa:
Lista adierazpen honek ez du hitzen ordenari buruz informaziorik ematen, hau hitz-zaku ereduaren ezaugarri nagusi bat da. Adierazpen mota hau arrakastarekin erabilia izan da hainbat aplikazioetarako, adibidez [[Naive Bayesen bidezko spam iragazketa|email iragazketan]].
 
Hala ere, termino-maiztasunak askotan ez dira testuaren adierazpide egokia. Hitz arruntak, adibidez ‘the’ edo ‘to’ ingelesaren kasuan, izaten dira ia beti dokumentu luzeetan maiztasun handieneko elementuak, baina maiztasun handiko hitz hauek ez dute dokumentuari buruzko informazio esanguratsurik ematen. Arazo hau ekiditeko metodo ezagun bat da terminoen-maiztasunak ‘normalizatzea’ [[Tf–idf|tf-idf]] teknikaren bidez. Horren helburua dokumentu guztietan zehar maiztasun handiak dituzten hitzei garrantzia txikitzea da, kasu hauetan maiztasun handia ez baita esanguratsua. [[Hitz hutsak]] edo ''stop words'' esaten zaie hits horiei. Hitz batek maiztasun orokor (dokumentu multzo osoan kalkulatua) txikia badu, baina dokumentu zehatz batean askotan agertzen bada, berriz, aukera handiagoarekin hitz horrek dokumentuari buruzko informazio baliotsua ematen du. Gainera, aplikazio batzuetan adierazpide bitarra (dokumentuan agertzen den edo ez) erabiltzen da maiztasunen ordez (adibidez aukera hau [[Weka|WEKA]] ikasketa automatiko software sisteman inplementatua dago).
 
BoW adierazpenetik lortutako termino-maiztasun zerrendak, sailkatzaile bati pasatzeko ezaugarri posibleak izateaz gain, zuzenean erabili daitezke aplikazio batzuetan. Adibidez, bi dokumenturen arteko antzekotasuna neurtzeko dokumentu horien termino-maiztasun bektoreen arteko hainbat operazio erabili daitezke. Operazio hauetako bat [[Kosenu antzekotasuna|kosinu-antzekotasuna]] da. Bi bektore <math>x,y\in \mathbb{R}^n</math>izanda, haien arteko kosinu-antzekotasuna <math>\frac{x . y }{||x||||y||}</math> zenbakia izango da, non <math>x.y</math>bi bektoreen [[Biderketabiderketa eskalar|biderketa eskalarra]]ra den. Intuitiboki, zenbaki honek bi bektoreen arteko angeluaren kosinua adierazten du, eta -1 eta 1 artean egongo da beti. Horrela, goiko adibideko (1) eta (2) bektoreen arteko antzekotasuna neurtzeko termino-maiztasun zerrenden arteko kosinu-antzekotasuna erabil daiteke. Kasu honetan ikusten da aurreko paragrafoan azaldutako maiztasun-normalizazio tekniken garrantzia, teknika hauek erabiltzen ez badira 'the' edo 'to' motako maiztasun handiko hitzek harremanik gabeko dokumentuen arteko kosinu-antzekotasun handi bat sortu dezaketelako.
 
Maiztasun-kontaketak termino-dokumentu matrizeak sortzeko ere erabiltzen dira. Matrize hauetan lerro bakoitzak termino bat adierazten du, eta zutabe bakoitzak dokumentu bat. i. errenkadako eta j. zutabeko gelaxkan j dokumentuan i terminoa zenbat aldiz agertu den gordetzen da. Beste modu batean esanda, j. zutabea j. dokumentuaren termino maiztasun zerrenda izango da. Goiko adibidearen kasuan, (1) (2) eta (3) dokumentuekin osatutako termino-dokumentu matrizea hurrengoa izango da:
 
<math>\begin{pmatrix} 1 & 0 & 1 \\ 2 & 0 & 2 \\ 2 & 1 & 3 \\ 2 & 0 & 2 \\ 1 & 0 & 1\\ 1 & 0 & 1 \\ 0 & 1 & 1 \\ 0 & 1 & 1 \\ 0 & 1 & 1 \\ 0 & 1 & 1 \\ 0 & 1 & 1 \\ \end{pmatrix}</math>
 
Matrize honen gainean hainbat teknika desberdin erabil daitezke dokumentu edo terminoen adierazpide trinkoak lortzeko, adibidez, [[Ezkutuko semantikaren analisia|Ezkutuko Semantikaren Analisia]].
 
== N-grama modeloa ==
62. lerroa:
</syntaxhighlight>Eta errepresentazio horiek erabiliz argi geratzen da zein den bi esaldien esanahien arteko desberdintasuna. Horrela, n-gramen bidez testuaren errepresentazio aberatsago bat lortu daiteke.
 
N-gramen beste erabilera bat OOV edo [[Bokabularioz kanpoko hitzak|bokabularioz kanpoko hitzak]] tratatzea da. Terminoak edo terminoen n-gramak erabili ordez errepresentazioa lortzeko, posible da karaktereen n-gramak erabiltzea unitate moduan eta unitate horien adierazpideak eraikitzea. Horrela, hizkuntza prozesamenduko aplikazioetan bokabularioz kanpoko hitz bat aurkitzen denean, posible da hitz hori baztertu ordez hitz horren adierazpen bat lortzea osatzen duten n-gramen adierazpenak erabiliz. Adibidez, "zakur" bokabularioz kanpoko hitz bat bada ez da adierazpenik egongo gordeta "zakur" hitzerako, baina "zak", "aku" eta "kur" 3-gramen adierazpenak baditugu posible izango litzateke eragiketa baten bitartez "zakur" hitzaren errepresentazio bat lortzea. Adibidez, [[Word embedding|hitz-embeddingak]] lortzeko fastText softwarean hitzak osatzen dituzten n-gramen adierazpenak erabil daitezke entrenatutako embedding-en kalitatea hobetzeko, bereziki morfologikoki aberatsak diren hizkuntzentzat, non hitz-forma batzuk korpusetan maiztasun oso txikiarekin agertuko diren.<ref>Piotr Bojanowski, Edouard Grave, Armand Joulin, Tomas Mikolov. [https://arxiv.org/pdf/1607.04606.pdf Enriching Word Vectors with Subword Information].TACL5:135–146.</ref>
 
== Hashing trukoa ==
Adierazpenak gordetzeko hiztegiak erabili ordez askotan ezaugarri [[hashing]]-a edo ''hashing trick'' deritzona erabiltzen da, hitzak zuzenean indizeetara mapatzeko.<ref name="Weinberger05">{{Cite aldizkari|author=Weinberger|first=K. Q.|title=Feature hashing for large scale multitask learning,|year=2009|pages=1113–1120|bibcode=2009arXiv0902.2206W}}</ref> Horrela memoria aurrezten da, baina [[Hashhash kolisio|hash kolisioen]]en arriskua sortzen da. Hash kolisioen arazoa normalean hash kubo kopurua handitzen konpontzen da. Praktikan, ''hashing'' erabiltzean hitz-zaku ereduen inplementazioa errazten da eta eskalagarritasuna hobetzen da.
 
Aplikazioak atalean ikusi den bezala, BoW adierazpenak askotan termino-dokumentu matrizeak eraikitzeko erabiltzen dira, eta matrize hauetan lerro bakoitzak hitz bat adierazten du. Jakiteko hitz bakoitzari ze zutabe dagokion, soluzio erraz bat hiztegiak erabiltzea da. Horrela, goiko adibidearen kasuan hurrengo hiztegia eraikiko zen:
{| class="wikitable"
|+
103. lerroa:
!11
|}
Eta taula honen bidez zehaztuta geratzen da zein den termino-dokumentu matrizeko errenkada bakoitzari dagokion hitza. Baina dokumentu handiak tratatzean hiztegi hauek memoria asko beharko dute.
 
Hiztegi hauek erabili ordez, posible da hash funtzio bat aplikatzea hitzei, eta zuzenean funtzio horren emaitza hitz horren indize gisa erabiltzea. Horrela, termino-matrizea eraikitzean dokumentu batean hitz berri bat aurkitzen denean, hiztegi bat kontsultatu ordez hash funtzio baten bidez lortuko da hitz horri dagokion indizea, eta indize hori erabiliko da termino-dokumentu matrizea eguneratzeko.
 
Praktikan, mota honetako teknikak erabiliak izan dira [[Naive Bayesen bidezko spam iragazketa|spam iragazkien]] arazoan, emaitza positiboekin. <ref>{{erreferentzia|hizkuntza=|izenburua=Feature Hashing for Large Scale Multitask Learning|urtea=2009|abizena=|izena=Kilian Weinberger, Anirban Dasgupta, John Langford, Alex Smola, Josh Attenberg|orrialdeak=|orrialdea=|argitaletxea=Proc. ICML|ISBN=}}</ref>
 
== Erabilera adibide bat: spam iragazkia ==
[[Naive Bayesen bidezko spam iragazketa|Spam iragazki Bayesiarretan]] e-posta mezu bat probabilitate banaketa batetik sortutako ordenatu gabeko hitz multzo bat bezala adierazten da. Probabilitate banaketa hau bitako bat izan daiteke: spam mezuetan erabiltzen diren hitzek sortzen dutena, edo benetako mezuetan erabiltzen diren hitzek sortzen dutena.
 
Eredu Bayesiar hauek suposatzen dute mezuko '''hitz-zakua''' bi banaketa hauetako batek sortua izan dela, eta metodo Bayesiarrak erabiltzen dira erabakitzeko bietako zein izan den.
 
== Erreferentziak ==
{{erreferentzia_zerrenda}}
 
== Ikus, gainera ==
* [[Bag-of-words eredua ikusmen artifizialean]]
* [[Dokumentuen sailkapena]]
* [[Dokumentu-termino matrizea]]
* [[Ezaugarri erauzketa]]
* Hashing trukoa
* [[Ikasketa automatiko|Ikasketa automatikoa]] a
* [[MinHash]]
* [[n-grama]]
* [[Hizkuntzaren prozesamendu|Hizkuntza naturalaren prozesamendua]]
* [[Bektore espazio eredua]]
* [[w-shingling]]
* [[Ezkutuko semantikaren analisia]]
== Kanpo estekak ==
{{autoritate kontrola}}