Elmentele Valorii Vectoriale a unui termen "II"
Avem la dispoziţie un sistem căruia am precizat comanda de căutare pentru termenul (ni): "câştigă bani online" .
Pentru a simplifica exemplul, să presupunem că avem de-a face cu un model vectorial de bază, în care:
- nu se ia în considerare locul de apariţie a termenilor în cadrul documentelor,
- folosim toţi termenii, fără a exclude termenii de legătură (stop words)
- folosim termenii în forma actuală (de exemplu dacă termenul este "câştigă" nu vom folosi forma "câştig")
- se ia în considerare doar frecvenţa de apariţie a termenilor.
Să considerăm în acelaş timp, că baza de date este formată din 3 documente, cu următorul conţinut:
D1 : "Fără bani nu poţi trăi"
D2 : "Poţi câştiga bani lucrând din greu"
D3 : "Marketingul Online înseamnă bani"
Exemplul de mai sus se rezumă pe exemplul Dr. Grossman, însă în cazul nostru am luat un exemplu specific.
Analiza Similarităţii:
Să calculăm lungimea fiecărui Vector:
| Model Vectorial de Termeni, bazat pe: Wi = tfi * IDFi |
Căutare: Q = "câştigă bani Online"
D1 : Fără bani nu poţi trăi
D2 : Poţi câştiga bani lucrând din greu
D3 : Marketingul Online înseamnă bani
D= 3 ; IDF = log(D/dfi) |
|
| |
|
Tfi |
|
|
|
Valoarea: Wi =tfi * IDFi |
| Termeni |
Q |
D1 |
D2 |
D3 |
dfi |
D/dfi |
IDFi |
Q |
D1 |
D2 |
D3 |
| fără |
0 |
1 |
0 |
0 |
1 |
3/1 = 3 |
0.4771 |
0 |
0.4771 |
0 |
0 |
| bani |
1 |
1 |
0 |
1 |
3 |
3/2 = 1.5 |
0.176 |
0.176 |
0.176 |
0 |
0.176 |
| nu |
0 |
1 |
0 |
0 |
1 |
3/1 = 3 |
0.4771 |
0 |
0.4771 |
0 |
0 |
| poţi |
0 |
1 |
1 |
0 |
2 |
3/2 = 1.5 |
0.176 |
0 |
0.176 |
0.175 |
0 |
| trăi |
0 |
1 |
0 |
0 |
1 |
3/1 = 3 |
0.4771 |
0 |
0.4771 |
0 |
0 |
| câştigă |
1 |
0 |
1 |
0 |
1 |
3/1 = 3 |
0.4771 |
0.4771 |
0 |
0.4771 |
0 |
| lucrând |
0 |
0 |
1 |
0 |
1 |
3/1 = 3 |
0.4771 |
0 |
0 |
0.4771 |
0 |
| din |
0 |
0 |
1 |
0 |
1 |
3/1 = 3 |
0.4771 |
0 |
0 |
0.4771 |
0 |
| greu |
0 |
0 |
1 |
0 |
1 |
3/1 = 3 |
0.4771 |
0 |
0 |
0.4771 |
0 |
| marketingul |
0 |
0 |
0 |
1 |
1 |
3/1 = 3 |
0.4771 |
0 |
0 |
0 |
0.4771 |
| online |
1 |
0 |
0 |
1 |
1 |
3/1 = 3 |
0.4771 |
0.4771 |
0 |
0 |
0.4771 |
| înseamnă |
0 |
0 |
0 |
1 |
1 |
3/1 = 3 |
0.4771 |
0 |
0 |
0 |
0.4771 |
|D1| = (radical)(0.4771(2) +0.176(2) + 0.4771(2) +0.176(2) + 0.4771(2) =0.227 *3 + 0.030 * 2 = 0.061 + 0.681 = 0.742 = 0.861
|D2| = (radical)(0.4771(2) * 4 + 0.176(2) = 0.030 + 0.908 = 0.968
|D3| = (radical)(0.4771(2) * 3 + 0.176(2) = 0.030 + 0.681 = 0.843
|Q| = (radical)(0.227 * 2 +0.030) = 0.484 = 0.695
În următoarea fază vom calcula mărimea scalară:
Q * D1 = 0.176 * 0.176 = 0.0310
Q * D2 = 0.4771 * 0.4771 = 0.227
Q * D3 = 0.176 * 0.176 + 0.4771 * 0.4771 = 0.258
După ce am obţinut rezultatele mărimii scalarului să calculăm şi valoare cosinus ~ direcţia vectorilor, sau valorile similarităţii:
Cos D1 = Q*D1/ (|Q|*|D1|) = 0.031/(0.695 + 0.861) = 0.0199
Cos D2 = Q*D2/ (|Q|*|D2|) = 0.227/(0.695 + 0.968 ) = 0.1365
Cos D3 = Q*D3/ (|Q|*|D3|) = 0.258/(0.843 + 0.695) = 0.1677
În final obţinem următorul rezultat :
| DOC 3 |
|
|
| DOC 2 |
| este mai puţin relevant !!! |
|
|
| DOC 1 |
| este cel mai puţin relevant !!! |
|
|
Limitările modelului
În pimul rând este o metodă foarte anevoioasă, mai ales în cadrul unor documente care conţin mii de cuvinte, adică este o metoda lentă, care necesită timp îndelungat de procesare. Însă dezavantajul principal al modelului vectorial constă în faptul că se presupune că termenii nu au nici o legătura între ele, adică fiind independente, ceea ce în realitate însă diferă, termenii putând fi într-o relaţie de:
Polisemie: Termenii pot fi folosiţi pentru a defini diferite lucruri în diferite contexte ( a conduce o maşină, a conduce o conferinţă)
Sinonime: unii termeni pot fi folosiţi pentru a explica acelaşi lucru ( Asigurare auto ~ Asigurare maşină)