You are on page 1of 22

Extragerea informatiilor din documente

Curs 3: Scoruri si ponderi de termeni. Modelul de spatiu vectorial

octombrie 2017

Extragerea informatiilor din documente


Recap. din cursul 1
Extragerea informatiilor (IR) = detectarea de materiale (de obicei,
documente) nestructurate (de obicei, n format text) dintr-o
colectie mare de materiale accesibile, care satisfac o dorinta de
informare
Documentele sunt stocate pe unul sau mai multe calculatoare
Dorinta de informare este exprimata ca o interogare (engl.
query) n un limbaj de interogare.
Construirea unui sistem de IR consta din:
1 Colectarea documentelor ce vor fi indexate o colectie D de
documente (De pe web: crawlers, spiders, news feeds, etc.)
2 Tokenizarea textelor din documente
token = secventa semnificativa de caractere
3 Preprocesarea lingvistica a tokenurilor vocabular de
termeni care apar n D
4 Indexarea documentelor n care apare fiecare termen
Extragerea informatiilor din documente
Construirea unui sistem de IR

In cursul 2 au fost evidentiate dificultatile construirii vocabularului


V si a listelor de postari
vezi Cap. 2 din referinta bibliografica.

Extragerea informatiilor din documente


Construirea unui sistem de IR
Structura listelor de postari

Fiecare document di din colectia D are un identificator unic


docIDi .
Identificatorii formeaza o multime total ordonata (de ex.,
valori ntregi unice)
O lista de postari a unui termen term V indica documentele
n care apare term:
term 7 docID1 . . . docIDn sau
| {z }
sortate crescator
(term; frecv .) 7 (docID1 ; lista-poz.) . . . (docIDn ; lista-poz.)
| {z }
sortate crescator

Extragerea informatiilor din documente


Deficiente ale modelului boolean

Detecteaza doar daca un document satisface sau nu o


constrangere.
Adesea, se doreste sa se stie cat de mult satisface un
document d o constrangere q

(q, d) 7 scor (q, d)

Se impune calculul unui scor, care sa reflecte cat de mult se


potriveste un document cu o interogare
Se doreste afisarea primelor K documente care satisfac o
constrangere q, n ordinea descrescatoare a scorului

Extragerea informatiilor din documente


Cuprinsul acestui curs

Definirea de indecsi parametrici si de zona


permit indexarea documentelor dupa metadate (de ex.: limbaj,
titlu, autor)
permit calculul unui scor de potrivire ntre document si
interogare
ordonarea raspunsurilor n functie de relevanta lor
Cantarirea importantei termenilor n documente (=greutatea
termenilor), pe baza numarului de aparitii a termenilor n
documente
Modelarea documentelor ca vectori de greutati de termeni n
un spatiu vectorial, si calculul scorului de potrivire n acest
spatiu vectorial.

Extragerea informatiilor din documente


Indecsi parametrici si de zona

document = text propriu-zis + metadate

Metadate = forme specifice de date ale unui document; de


exemplu: autor(i), titlu, data publicarii.
Forme de metadate:
Campuri: au un numar finit de valori posibile; Exemple: data
crearii, formatul documentului
Valorile campurilor se retin n indecsi parametrici
Campurile au valori dintr-un vocabular fixat finit
Zone: continutul unei zone poate fi text liber arbitrar, cu
vocabular nelimitat de termeni posibili.
Exemple de zone: titlul sau introducerea unei lucrari
Zonele au un vocabular oarecare, care nu este predefinit

Extragerea informatiilor din documente


Indecsi de zona

Varianta de baza (codificata n dictionar)

Varianta codificata n listele de postari

Extragerea informatiilor din documente


Indecsi parametrici si de zona
Exemplu: Cautare booleana de referinte bibliografice

Extragerea informatiilor din documente


Atribuirea de scoruri bazate pe zone ponderate

Presupunem ca
document d = colectie de ` zone z1 , . . . , z`
Interogare q
si {0, 1} indica potrivirea interogarii q cu zona zi , 1 i `
`
X
(q, d) 7 scor (q, d) = gi si
i=1
P`
unde g1 , . . . , g` [0..1] astfel ncat i=1 gi = 1.
Acest model de extragere a informatiilor se numeste si model de
extragere booleana bazat pe scoruri.
Bibliografie: Christopher D. Manning, Prabhakar Raghavan,
Hinrich Schutze: An Introduction to Information Retrieval.
Capitolul 6. Editie online (c) 2009 Cambridge UP.

Extragerea informatiilor din documente


Calculul scorului bazat pe zone ponderate
Exemplu: Interogare q1 AND q2 cu termeni q1 , q2

Extragerea informatiilor din documente


Invatarea ponderilor
Idee principala

Se considera cunoscute:
o colectie de documente cu zonele z1 , . . . , z`
o multime de exemple de antrenare j = (qj , dj , r (qj , dj ))
unde 
1 daca d este relevant pentru interogarea q
r (qj , dj ) =
0 n caz contrar
Dorim sa nvatam vectorul de greutati g = hg1 , . . . , g` i pentru
zonele de document z1 , . . . , z` , pentru a calcula
`
X
scor (q, d) = gi si
i=1

unde si {0, 1} este potrivirea booleana


P` a lui q cu zona zi , astfel
ncat eroarea de scor (g , ) = i=1 (r (qj , dj ) scor (qj , dj ))2 sa
fie minima.
Extragerea informatiilor din documente
Invatarea ponderilor
Exemplu concret (1)

scor (q, d) = g sT (q, d) + (1 g ) sB (q, d) unde


sB (q, d) = 1 daca q satisface zona corp (engl. body zone) a
lui d, si sB (q, d) = 0 n caz contrar
sT (q, d) = 1 daca q satisface zona titlu (engl. title zone) a lui
d, si sT (q, d) = 0 n caz contrar
cu exemplele de antrenare
Exemplu DocID Interogare sT sB relevanta
1 37 linux 1 1 relevant(1)
2 37 penguin 0 1 irelevant(0)
3 238 system 0 1 relevant(1)
4 238 penguin 0 0 irelevant(0)
5 1741 kernel 1 1 relevant(1)
6 2094 driver 0 1 relevant(1)
7 3191 driver 1 0 irelevant(0)

Extragerea informatiilor din documente


Invatarea ponderilor
Exemplu concret (2)

Exemplu DocID Interogare sT sB scor (qj , dj ) r (qj , dj )


1 37 linux 1 1 1 1
2 37 penguin 0 1 1g 0
3 238 system 0 1 1g 1
4 238 penguin 0 0 0 0
5 1741 kernel 1 1 1 1
6 2094 driver 0 1 1g 1
7 3191 driver 1 0 g 0

nijR : numarul de exemple de antrenare pentru care


sT (qj , dj ) = i, sB (qj , dj ) = j, care sunt relevante

n00R = 0 n01R = 2 n10R = 0 n11R = 2

nijI : numarul de exemple de antrenare pentru care


sT (qj , dj ) = i, sB (qj , dj ) = j, care sunt irelevante

n00I = 1 n01I = 1 n10I = 1 n11I = 0

Extragerea informatiilor din documente


Invatarea ponderilor
Exemplu concret (3)

scor (q, d) = g sT (q, d) + (1 g ) sB (q, d) eroarea totala este

(g , ) = (n01R + n10I )g 2 + (n10R + n01I ) (1 g )2 + n00R + n11I

Eroarea este minima pentru g n care

d (g , )
= 0 2(n01R + n10I )g + (n10R + n01I ) (2g 2) = 0
dg

n10R + n01I 1
g= =
n10R + n10I + n01R + n01I 4

Extragerea informatiilor din documente


Estimarea relevantei termenilor n documente

Frecventa unui termen t n un document d: tft,d = de cate


ori apare t n d
Frecventa de document pentru t: dft = numarul de
documente n care apare t
Frecventa de colectie pentru t: cft = numarul total de aparitii
a lui t n toata colectia de documente
Frecventa inversa de document a lui t: idft = log dfNt unde
N = numarul total de documente din colectie
I idft este mare cand t apare n putine documente

Extragerea informatiilor din documente


Estimarea relevantei termenilor n documente
Masura de greutate tf-idf

tf-idft,d = tft,d idft


este o valoare numerica
1 cea mai mare cand t apare de multe ori n un numar mic de
documente
2 mai mica daca t apare de mai putine ori n un document, sau
n mai multe documente
3 cea mai mica daca t apare n toate documentele din colectie.

Definitie (Masura de scor de suprapunere)


X
scor (q, d) = tf-idft,d
tq

Extragerea informatiilor din documente


Modelul de spatiu vectorial pentru atribuirea de scoruri

Fie d un document cu termeni din un vocabular {t1 , . . . , tn }


Asociem lui d vectorul n-dimensional
~ (d) := (wt ,d , . . . , wt ,d )
V 1 n

unde wti ,d :=masura de greutate a lui ti n documentul d


B Putem alege wti ,d = tf-idfti ,d pentru toti 1 i `
Similaritate cosinusoidala a documentelor d1 si d2 :

V~ (d1 ) V~ (d2 )
sim(d1 , d2 ) =
~ (d1 )| |V
|V ~ (d2 )|

~ (d)
V
Notatie: ~v (d) := .
~ (d)|
|V

Extragerea informatiilor din documente


Interogari modelate ca vectori
~ (q)
V
O interogare q poate fi modelata ca vector unitar ~v (q) = ~ (q)|
|V

V~ (q) V~ (d)
scor (q, d) =
~ (q)| |V
|V ~ (d)|

Extragerea informatiilor din documente


Interogari modelate ca vectori
~ (q)
V
O interogare q poate fi modelata ca vector unitar ~v (q) = ~ (q)|
|V

V~ (q) V~ (d)
scor (q, d) =
~ (q)| |V
|V ~ (d)|

Algoritmul de calcul al vectorului de scoruri (pseudocod)


ScorCosinusoidal(q)
1 float Scores[d] = 0 pentru toti d
2 // initializeaza Length[d] pentru toti d
3 for each termen de interogare t do
4 calculeaza wt,q si obtine lista de postari pentru t
5 pentru fiecare pereche (d, tft,d ) in lista de postari a lui t do
6 Scores[d] += wft,d wt,q
7 citeste tabloul Length[d]
8 for each d do
9 Scores[d]=Scores[d]/Length[d]
10 return primele K componente ale lui Scores[] cu valori maxime

Variatii ale algoritmului:


I wft,d este fie tft,d sau tf-idft,d

Extragerea informatiilor din documente


Variatii ale masurii de greutate tf-idf pentru termeni

Scalare sublinara a frecventei termenilor (tf )



1 + log tft,d daca tft,d > 0,
wft,d :=
0 n caz contrar.

iar wf-idft,d = wft,d idft


normalizare dupa maximul frecventei termenilor (tf )

tft,d
ntft,d = a + (1 a)
tfmax (d)

unde 0 a 1 se numeste termen de netezire


(valoare tipica a = 0.4)

Extragerea informatiilor din documente


Referinte bibliografice

B Christopher D. Manning, Prabhakar Raghavan, Hinrich


Schutze: An Introduction to Information Retrieval. Capitolul
6. Editie online (c) 2009 Cambridge UP.
http://nlp.stanford.edu/IR-book/pdf/irbookonlinereading.pdf

Extragerea informatiilor din documente

You might also like