Algoritmo per il calcolo di $E$

L'algoritmo per calcolare l'Espressività $E$ è invece il seguente:

   1.begin: 

2. For each category $c_i \in C$:
3. $sum = 0$
4. For each term $t$ in $P{i\vert t}$:
5. For each category $c_j \in C$ where $i \neq j$:
6. If $t \in P_{j\vert t}$ then:
7. $sum = sum + P_{j\vert t}$
8. end if
9. $E_{i\vert t} = 1 - \frac{sum}{\vert C\vert-1}$
9. end foreach
10. end foreach
11. end foreach
12.end

Anche in questo caso, se si assume che $P_{j\vert t}$ è implementato come una Hash Map con costo costante $k$ per accessi e ricerche, allora il costo computazione totale di questo algoritmo è $O(C^{2} \cdot T \cdot k)$, che è quadratico rispetto al numero delle categorie $C$ (la cui quantità comunque è di gran lunga inferiore rispetto al numero totale dei documenti), pertanto effettivamente questo secondo algoritmo è meno costoso di quello del calcolo della Presenza visto nella sezione precedente. La complessità computazionale della fase di addestramento è quindi $O(C \cdot D \cdot T \cdot k)$.



Alessio Pace 2004-03-26