Redigerer
Vektorrom-modellen
Hopp til navigering
Hopp til søk
Advarsel:
Du er ikke innlogget. IP-adressen din vil bli vist offentlig om du redigerer. Hvis du
logger inn
eller
oppretter en konto
vil redigeringene dine tilskrives brukernavnet ditt, og du vil få flere andre fordeler.
Antispamsjekk.
Ikke
fyll inn dette feltet!
'''Vektorrom-modellen''' også kjent som '''Term vektor-modellen''' er en algebraisk modell brukt for å representere tekstdokumenter (samt alle andre objekter) som [[Vektorrom|vektorer]] bestående av identifikatorer, som for eksempel ved å bruke term vekt som parameterverdi. Modellen blir brukt blant annet innen [[informasjonsgjenfinning]], [[indeks (data-teknologi)|indeksering]], informasjonsfiltrering og relevansrangering. ==Definisjoner== En ''term'' kan representere både ett [[nøkkelord]] og en lengre frase. Dokumenter og spørringer kan bli representert som vektorer, ved å bruke en tallverdi som representerer termen som parameter. Eksempel: :<math>d_j = ( w_{1,j} ,w_{2,j} , \dotsc ,w_{t,j} )</math> :<math>q = ( w_{1,q} ,w_{2,q} , \dotsc ,w_{t,q} )</math> Hver term representerer en [[Dimensjon|dimensjon]] innen vektorrommet, med andre ord har vektorrommet like mange dimensjoner som termer. Dette betyr at vektorrommet kan ha uendelige dimensjoner. Hvis termen finnes innen dokumentet, kan verdien bli beregnet og er dermed høyere enn null. Det finnes flere metoder for utregning av termvekt, hvorav en av de beste er vekting etter [[tf-idf]] (se eksempel). Plasseringene i vektorrommet kan så bli sammenlignet med spørringen gjennom en rekke metoder (basert på bruksområde). ==Applikasjoner== [[Image:vector space model.jpg|right|250px]] Kalkulering av relevans kan bli gjort på flere vis, hvor metoden brukt blir basert på ønsket utfall. En måte å regne gjøre dette, er å sammenligne deviasjonen av vinklene mellom hvert dokument og spørringen representert som en vektor. I praksis er det enklere å regne ut [[cosinus]]likheten mellom de to vektorene, i stedet for mellom vinklene: Eksempel: :<math> \cos{\theta} = \frac{\mathbf{d_2} \cdot \mathbf{q}}{\left\| \mathbf{d_2} \right\| \left \| \mathbf{q} \right\|} </math> Hvor <math>\mathbf{d_2} \cdot \mathbf{q}</math> representerer skjæringspunktet (altså [[Indreprodukt|prikkproduktet]]) mellom dokumentet(d<sub>2</sub> i bildet til høyre) og spørringens (q i bildet) vektorer, <math>\left\| \mathbf{d_2} \right\|</math> er normen av d<sub>2</sub>, og <math>\left\| \mathbf{q} \right\|</math> er normen av q. [[Norm (matematikk)|Normen]] til en vektor er kalkulert med: :<math> \left\| \mathbf{q} \right\| = \sqrt{\sum_{i=1}^n q_i^2} </math> Siden ingen vektorer i denne modellen kan være negative, vil en cosinusverdi av null tilsi at vektorene til dokumentet og spørringen er [[Ortogonalitet|ortogonale]] i forhold til hverandre og dermed helt mangler likhet (spørreordene fins altså ikke i dokumentet). ==Eksempel: tf-idf vekting== I den originale vektorrom-modellen foreslått av Salton, Wong and Yang <ref>[http://doi.acm.org/10.1145/361219.361220 G. Salton, A. Wong, C. S. Yang, A vector space model for automatic indexing], Communications of the ACM, v.18 n.11, p.613-620, Nov. 1975</ref> er termvekten i dokumentene produkter av lokale og globale parametere. I modellen kjent som [[tf-idf|term frequency-inverse document frequency]] er vekten brukt i vektorene i dokumentet ''d'' definert som <math>\mathbf{v}_d = [w_{1,d}, w_{2,d}, \ldots, w_{N,d}]^T</math>, hvor: :<math> w_{t,d} = \mathrm{tf}_{t,d} \cdot \log{\frac{|D|}{|\{d' \in D \, | \, t \in d'\}|}} </math> og * <math>\mathrm{tf}_{t,d}</math> er term frekvensen av termen ''t'' i dokument ''d'' (ett lokalt parameter) * <math>\log{\frac{|D|}{|\{d' \in D \, | \, t \in d'\}|}}</math> er den inverse dokument frekvensen (ett globalt parameter), hvor: <math>|D|</math> er det totale nummeret av dokumenter i ett sett og <math>|\{d' \in D \, | \, t \in d'\}|</math> er antallet dokumenter som inneholder termen ''t''. Cosinuslikheten mellom dokument ''d<sub>j</sub>'' og spørring ''q'' kan dermed bli regnet ut ved: :<math>\mathrm{sim}(d_j,q) = \frac{\mathbf{d_j} \cdot \mathbf{q}}{\left\| \mathbf{d_j} \right\| \left \| \mathbf{q} \right\|} = \frac{\sum _{i=1}^N w_{i,j}w_{i,q}}{\sqrt{\sum _{i=1}^N w_{i,j}^2}\sqrt{\sum _{i=1}^N w_{i,q}^2}}</math> ==Fordeler== Vektorrom-modellen har disse fordelene over [[Boolean Modellen]]: #Det er en enkel modell basert på lineær algebra. #Termvekten er ikke binær. #Tillater beregning av en kontinuerlig grad av likhet mellom spørringer og dokumenter. #Tillater rangering av dokumenter basert på deres antatte relevans. #Tillater delvise likheter. ==Ulemper== #Lange dokumenter blir dårlig representert på grunn av at de har dårlige likhetsverdier (lave [[Indreprodukt|prikkprodukt]] og høy dimensionalitet). #Spørretermer må være identiske til de i dokumentene. #Dokumenter med lik kontekst, men forskjellig vokabular, blir ikke assosiert, noe som fører til falske negativer. #Rekkefølgen termene følger i dokumentet blir ikke inkludert. #Antar teoretisk at termer er statistisk uavhengig. #Vekting skjer intuitivt, men ikke formelt. Mange av disse ulempene kan bli unngått ved å legge til flere metoder, som for eksempel [[Singulær verdidekomposisjon]] eller bruk av en [[tesaurus]]. ===Gratis open source programmvare=== * [[Apache Lucene]]. Apache Lucene er et høyytelses-, fullfunksjons- tekstsøkemotorbibliotek skrevet i Java. * [https://web.archive.org/web/20080828220200/http://semanticvectors.googlecode.com/ SemanticVectors]. Semantiske vektorindekser, skapt ved å påføre en tilfeldig projeksjonsalgoritme til termin-dokumentmatriser opprettet ved bruk av Apache Lucene. * [[Gensim]] er et Python + [[NumPy]] rammeverk for vektorrom-modellering. Den inneholder inkrementelle (minneeffektive) algoritmer for blant annet [[TF-IDF]], [[Latent semantisk indeksering]] og [[Latent Dirichlet Allocation]]. * [[Weka (machine learning)|Weka]]. Weka er en populær data mining-pakke for Java som inkluderer WordVectors og Bag of Words-modeller. * [http://codingplayground.blogspot.com/2010/03/compressed-vector-space.html Compressed vector space in C++] av Antonio Gulli * [http://scgroup.hpclab.ceid.upatras.gr/scgroup/Projects/TMG/ Text to Matrix Generator (TMG)] {{Wayback|url=http://scgroup.hpclab.ceid.upatras.gr/scgroup/Projects/TMG/ |date=20200710231410 }} MATLAB verktøykasse som kan brukes til ulike oppgaver i tekst mining, spesifikt 1) indeksering, 2) gjenfinning, 3) dimensionalitetsreduksjon, 4) clustering og 5) klassifisering. Mesteparten av TMG er skrevet i MATLAB og deler i Perl. Den inneholder implementeringer av LSI, gruppert LSI, NMF, samt andre metoder. * [http://senseclusters.sourceforge.net SenseClusters], En open source pakke som støtter kontekst og ord-clustering ved hjelp av latent semantisk analyse og ord co-forekomstmatriser. * [http://code.google.com/p/airhead-research/ S-Space Package], en samling av algoritmer for å utforske og arbeide med [[statistisk semantikk]]. * [http://www.cs.uni.edu/~okane/source/ISR/ Vector Space Model Software Workbench] Samling av 50 kildekodeprogrammer for utdanning. ==Videre lesning== * [[Gerard Salton|G. Salton]], A. Wong, and C. S. Yang (1975), "[https://web.archive.org/web/20110605025601/http://www.cs.uiuc.edu/class/fa05/cs511/Spring05/other_papers/p613-salton.pdf A Vector Space Model for Automatic Indexing]," ''Communications of the ACM'', vol. 18, nr. 11, pages 613–620. ''(''Artikkelen hvor vektorrom modellen ble presentert (Engelsk)'')'' * David Dubin (2004), [http://www.ideals.uiuc.edu/bitstream/2142/1697/2/Dubin748764.pdf The Most Influential Paper Gerard Salton Never Wrote]{{Død lenke}} ''(''Forklarer historien til vektorrom modellen og dens ikke-eksisterende ofte sitert publikasjon (Engelsk)'')'' * [https://web.archive.org/web/20070613200830/http://isp.imm.dtu.dk/thor/projects/multimedia/textmining/node5.html Beskrivelse av vektorrom modellen (Engelsk)] * [http://www.miislita.com/term-vector/term-vector-3.html Beskrivelse av den klassiske vektorrom modellen av Dr. E. Garcia (Engelsk)] * [http://nlp.stanford.edu/IR-book/html/htmledition/vector-space-classification-1.html Forholdet mellom vektorrom-søk og «k-nærmeste nabo»-søk (Engelsk)] ==Se også== *[[K-NN|K-nærmeste nabo]] ==Referanser== <references/> {{Autoritetsdata}} [[Kategori:Algebra]] [[Kategori:Algoritmer]]
Redigeringsforklaring:
Merk at alle bidrag til Wikisida.no anses som frigitt under Creative Commons Navngivelse-DelPåSammeVilkår (se
Wikisida.no:Opphavsrett
for detaljer). Om du ikke vil at ditt materiale skal kunne redigeres og distribueres fritt må du ikke lagre det her.
Du lover oss også at du har skrevet teksten selv, eller kopiert den fra en kilde i offentlig eie eller en annen fri ressurs.
Ikke lagre opphavsrettsbeskyttet materiale uten tillatelse!
Avbryt
Redigeringshjelp
(åpnes i et nytt vindu)
Maler som brukes på denne siden:
Mal:Autoritetsdata
(
rediger
)
Mal:Død lenke
(
rediger
)
Mal:Fix
(
rediger
)
Mal:Fix/category
(
rediger
)
Mal:Ifsubst
(
rediger
)
Mal:Wayback
(
rediger
)
Modul:External links
(
rediger
)
Modul:External links/conf
(
rediger
)
Modul:External links/conf/Autoritetsdata
(
rediger
)
Modul:Genitiv
(
rediger
)
Modul:Wayback
(
rediger
)
Navigasjonsmeny
Personlige verktøy
Ikke logget inn
Brukerdiskusjon
Bidrag
Opprett konto
Logg inn
Navnerom
Side
Diskusjon
norsk bokmål
Visninger
Les
Rediger
Rediger kilde
Vis historikk
Mer
Navigasjon
Forside
Siste endringer
Tilfeldig side
Hjelp til MediaWiki
Verktøy
Lenker hit
Relaterte endringer
Spesialsider
Sideinformasjon