Hitz-zaku eredu: berrikuspenen arteko aldeak

Ezabatutako edukia Gehitutako edukia
t Erreferentziak konpondu
Ksarasola (eztabaida | ekarpenak)
orrazketa orokorra
1. lerroa:
'''Hitz-zaku''' edo '''bag-of-words''' eredua [[Informazioa eskuratzea|informazioaren berreskuratze]] eta [[Hizkuntzaren prozesamendu|hizkuntzaren prozesamenduan]] erabilitako testutestuak errepresentatzeko adierazpenmodu bat da. AdierazpenAdierazpide 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 erabiliaerabili 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|dokumentuendokumentu sailkapeneansaenilkapenean]] erabiltzen da, non hitz bakoitzaren agerpen -kontaketa sailkatzailearen entrenamendu datu bezalagisa erabiltzen den. <ref> McTear et al 2016, p. 167. </ref>
 
“Hitz-zaku” terminoaren erabilera goiztiar bat Zellig Harris-en 1954ko ''Distributional Structure'' artikuloanartikuluan 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 ==
<blockquote>Atal honetan '''bag-of-words''' (BOW) modeloaren inplementazio adibide bat emango dugu. Hurrengo bi dokumentuak ditugu: </blockquote><syntaxhighlight lang="text">
Atal honetan BOW modeloaren inplementazio adibide bat emango dugu. Hurrengo bi dokumentuak ditugu: <syntaxhighlight lang="text">
(1) Nereak filmak gogoko ditu. Jonek ere filmak gogoko ditu.
 
13 ⟶ 12 lerroa:
(2) Asierrek pilota jardunaldiak ikustea gogoko du.
 
</syntaxhighlight>BOW adierazpeneanadierazpidea lortzeko bakarrik kontatuko da hitz bakoitza zenbat aldiz agertzen den kontatuko da, hitzen arteko ordena edo harremana kontuan hartu gabe. Adibidez, ''JSON'' objektuen bidez gorde ditzakegu BOW adierazpenakadierazpidea:<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 hauetanhorietan hitz bakoitza dokumentuan zenbat aldiz agertzen den gordetzen da. Gainera adierazpenaadierazpide hau ordenarekiko independienteaindependentea da, hitz bakoitzaren agerpen -kontaketak beste edozein ordenetanordenatan adierazita BoW adierazpen bera lortzen dugu. Gainera, bi dokumentuak kateatzen baditugu hurrengo esaldia lortzen da:<syntaxhighlight lang="text">
 
Gainera, bi dokumentuak kateatzen baditugu hurrengo esaldia lortzen da:<syntaxhighlight lang="text">
(3) Nereak filmak gogoko ditu. Jonek ere filmak gogoko ditu. Asierrek pilota jardunaldiak ikustea gogoko du.
 
</syntaxhighlight> Eta esaldi honen BoW adierazpena hurrengoahau 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 bakarrik dokumentu horietako bakar batean agertzen denean bere kontaketaagerpen kopuru bera erabiliko da kateaketaren adierazpenean, eta bi dokumentuetan agertzen denean kontaketen batura erabiliko da. Hau bat dator multi-multzo egituren gehiketa operazioarekin.
 
== Aplikazioak ==
Hitz-zaku modeloaren erabilera nagusia ezaugarri edo ''feature''-ak generatzea da. Dokumentu baten BoW adierazpena kalkulatu ondoren testuari buruzko informazioa ematen duten hainbat metrika lortu daitezke. Metrika hauen artean arruntena termino -maiztasuna da, hau da, hitz bakoitza dokumentuan zenbat aldiz agertu den. Adibidez, goiko adibide bera erabiliz, esaldi bakoitzaren termino maiztasun lista eraiki dezakegu (terminoak BoW3 adierazpenean bezala ordenatuz): <syntaxhighlight lang="javascript">
(1) [1, 2, 2, 2, 1, 1, 0, 0, 0, 0, 0]
(2) [0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1]
(3) [1, 2, 3, 2, 1, 1, 1, 1, 1, 1, 1]
</syntaxhighlight>Horrela, hitz bakar baterako adierazpen trinkoa erabili ordez (zero maiztasunak gehitu gabe), dokumentu multzo bat badugu eta multzo osotik lortutako bokabulario bat, dokumentu bakoitzaren adierazpenaerrepresentazioa bokabulario horretako terminoen maiztasun zerrenda izango da. Adibidez, lehen zerrendako lehen posizioan 1 zenbakia dugu ‘Nereak’ hitza behin agertzen delako lehen esaldian, eta bigarren eta hirugarren posizioetan 2 zenbakia dugu ‘filmak’ eta ‘gogoko’ hitzak bi aldiz agertzen direlako lehen esaldian.
 
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 adierazpenadierazpide egoki bategokia. 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 terminoenda terminoen-maiztasunak ‘normalizatzea’ [[Tf–idf|tf-idf]] terminoarenteknikaren bidez. HonenHorren helburua dokumentu guztietan zehar maiztasun handiak dituzten hitzenhitzei 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 adierazpenadierazpide binarioabitarra (dokumentuan agertzen den edo ez den agertzen) 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 hartekoarteko hainbat operazio erabili datiezkedaitezke. Operazio hauetako bat [[Kosenu antzekotasuna|kosenu kosinu-antzekotasuna]] da. Bi bektore <math>x,y\in \mathbb{R}^n</math>izanda, haien arteko kosenu kosinu-antzekotasuna <math>\frac{x . y }{||x||||y||}</math> zenbakia izango da, non <math>x.y</math>bi bektoreen [[Biderketa eskalar|biderketa eskalarra]] den. Intuitiboki, zenbaki honek bi bektoreen arteko angeluaren kosenuakosinua adierazten du, eta -1 eta 1 artean egongo da beti. Horrela, goiko adibideko (1) eta (2) bektoreen arteko antzekotasuna neurtzeko termino -maiztasun zerrenden arteko kosenu kosinu-antzekotasuna erabilierabil 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. lerrokoerrenkadako 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 erabilierabil daitezke dokumentu edo terminoen adierazpenadierazpide trinkoak lortzeko, adibidez, [[Ezkutuko semantikaren analisia|Ezkutuko Semantikaren Analisia]].
 
== N-grama modeloa ==
Hitz-zaku eredua ordenikordenarik gabeko adierazpen errepresentazio-sistema bat da, hitzen maiztasunak soilik erabiltzen direlako. Adibidez, ingelesez ‘John killed Mary’ eta “Mary killed John” esaldiek BoW adierazpen berdina izango dute. Aplikazio askotan ordena garrantzitsua denez, BoW adierazpeneanadierazpidean hitzen orden ordena-informazioa nolabait harrapatzeko proposatu den aukera bat [[N-grama|n-grama eredua]] da. Eredu honetan, dokumentu baten adierazpenaerrepresentazioa lortzeko lehenik dokumentu horren n-grama guztiak kalkulatzen dira, eta hondoren n-grama horien agerpen -kontaketak gordetzen dira. Hau da, termino -maiztasuna erabili ordez n-gramagramen maiztasunak erabiltzen dira.
Goiko adibideko lehen esaldiaren kasuan, bigrama eredu baten bidez hurrengo bigramak lortuko genituzke:<syntaxhighlight lang="javascript">
[
58 ⟶ 55 lerroa:
</syntaxhighlight>Eta adierazpena hurrengoa izango zen:<syntaxhighlight lang="javascript">
BoWbigrama = {"Nereak filmak":1, "filmak gogoko":2, "gogoko ditu":2, "Jonek ere":1, "ere filmak":1};
</syntaxhighlight> Kontzeptualki, BoW eredua N-grama ereduaren kasu berezi batgisa bezala ikusiikus daiteke, n=1 denean. Esan bezala, n-grama ereduak modu sinple batean hitzen arteko harreman konplexuagoak adierazi ditzake. Adibidez, ingelesezko "John killed Mary" eta "Mary killed John" esaldiek honako BoW errepresentazio hauek edukiko lukete: <syntaxhighlight lang="javascript">
 
Esan bezala, n-grama ereduak modu sinple batean hitzen arteko harreman konplexuagoak adierazi ditzake. Adibidez, ingelesezko "John killed Mary" eta "Mary killed John" esaldiek biek hurrengo BoW adierazpena edukiko lukete: <syntaxhighlight lang="javascript">
BoW = {"John":1,"killed":1, "Mary":1};
</syntaxhighlight>Honek esan nahi du BoW erabiltzen bada, nahiz eta kalitate handizko ereduak erabili, eredu horiek ez direla gai izango bi esaldi hauen artean bereizteko, adierazpen berdin-berdina baidutebaitute. Beraz argi dago BoW ereduak gabezia garrantzitsuak dituela, eta esaldiei buruzko informazio sakona behar duten aplikazioetarako desegokia izan daitekeela. Bigrama eredua erabiliz bi esaldi horien adierazpenakerrepresentazioak hurrengoakhauek izango dira:<syntaxhighlight lang="javascript">
Bigram1 = {"John killed":1,"killed Mary":1};
Bigram2 = {"Mary killed":1,"killed John":1};
</syntaxhighlight>Eta adierazpenerrepresentazio hauhoriek erabiliz argi geratzen da zein den bi esaldien esannahienesanahien arteko desberdintasuna. Horrela, n-gramen bidez testuaren adierazpenerrepresentazio 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 adierazpenakerrepresentazioa lortzeko, posible da karaktereen n-gramak erabiltzea unitate moduan eta unitate hauenhorien adierazpenakadierazpideak eraikitzea. Horrela, hizkuntza prozesamenduko aplikazioetan bokabulariobokabularioz 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 operazioreneragiketa baten bitartez "zakur" hitzaren adierazpenerrepresentazio bat lortzea. Adibidez, [[Word embedding|hitz-embeddingak]] lortzeko fastText softwarean hitzak osatzen dituzten n-gramen adierazpenak erabilierabil daitezke entrenatutako embedding-en kalitatea hobetzeko, bereziki morfologikoki aberatsataberatsak 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 ''hasinghashing 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 [[Hash kolisio|hash kolisioen]] 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:
108 ⟶ 103 lerroa:
!11
|}
Eta taula honen bidez zehaztuazehaztuta 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 hitzerihitzei, eta zuzenean funtzio horren emaitza hitz horren indize bezalagisa 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>{{Cite book|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 generatutakosortutako ordenatu gabeko hitz multzo bat bezala adierazten da. Probabilitate banaketa hau bitako bat izan daiteke: spam mezuetan erabiltzen diren hitzakhitzek generatzensortzen dituenadutena, edo benetako mezuetan erabiltzen diren hitzetanhitzek generatzensortzen dituenadutena.
 
Eredu Bayesiar hauek suposatzen dute mezuko '''hitz-zakua''' bi banaketa hauetako batek generatuasortua izan dela, eta metodo Bayesiarrak erabiltzen dira erabakitzeko bietako zein izan den.
 
== Erreferentziak==
123 ⟶ 118 lerroa:
 
== Ikus, gainera==
* [[Bag-of-words eredua ikusmen artifizialean ]]
* [[Dokumentuen sailkapena]]
* [[Dokumentu-termino matrizea ]]
* [[Ezaugarri erauzketa ]]
* Hashing trukoa
* [[Ikasketa automatiko|Ikasketa automatikoa]]
* [[MinHash ]]
* [[n-grama]]
* [[Hizkuntzaren prozesamendu|Hizkuntza naturalaren prozesamendua]]
* [[Bektore espazio eredua ]]
* [[w-shingling ]]
*[[Ezkutuko semantikaren analisia]]
[[Kategoria:Ikasketa automatikoa]]
[[Kategoria:Hizkuntzaren prozesamendua]]
[[Kategoria:Pages with unreviewed translations]]