From d4d2e30ff58f85d641cacd9ed10e492f3565ae40 Mon Sep 17 00:00:00 2001 From: Stefano Pigozzi Date: Fri, 20 Nov 2020 18:27:16 +0100 Subject: [PATCH] Add part of evaluation --- .../GestioneDellInformazione/09_Modeling.js | 19 ++++-- .../GestioneDellInformazione/10_Evaluation.js | 65 +++++++++++++++++++ src/routes/GestioneDellInformazione/index.js | 2 + 3 files changed, 81 insertions(+), 5 deletions(-) create mode 100644 src/routes/GestioneDellInformazione/10_Evaluation.js diff --git a/src/routes/GestioneDellInformazione/09_Modeling.js b/src/routes/GestioneDellInformazione/09_Modeling.js index c602010..4b56e6b 100644 --- a/src/routes/GestioneDellInformazione/09_Modeling.js +++ b/src/routes/GestioneDellInformazione/09_Modeling.js @@ -75,12 +75,15 @@ export default function () { Come il modello classico, ignora l'ordine delle parole.

- +

- Modello IR che effettua il ranking in base alla probabilità che un documento sia rilevante. + Modello IR che effettua il ranking in base alla probabilità di comparsa dei termini della query nei documenti.

- To be continued... + Si basa sul calcolare un peso {r`c_i`} per ogni termine della query. Quest'ultimo diventa più grande se il termine compare in documenti rilevanti, e più piccolo se compare in documenti irrilevanti. Se il termine compare in ugual modo in entrambi, allora esso varrà {r`0`}. +

+

+ Ci sarebbe una dimostrazione complessa che ho omesso per brevità.

@@ -101,9 +104,15 @@ export default function () { \end{cases} `} - +

- Non ho seriamente capito. + Modello IR simile ai modelli classici che però tiene conto anche della frequenza dei termini nei documenti e della lunghezza dei documenti. +

+

+ Permette anche di tenere in considerazione la frequenza dei termini nella query, nel caso essa sia molto lunga. +

+

+ Ci sono formule che ho omesso per brevità.

diff --git a/src/routes/GestioneDellInformazione/10_Evaluation.js b/src/routes/GestioneDellInformazione/10_Evaluation.js new file mode 100644 index 0000000..955fd3e --- /dev/null +++ b/src/routes/GestioneDellInformazione/10_Evaluation.js @@ -0,0 +1,65 @@ +import {Fragment} from "preact"; +import {Section, Panel, ILatex, BLatex, PLatex} from "bluelib"; +import Example from "../../components/Example"; +import ToBeContinued from "../../components/ToBeContinued"; + +const r = String.raw; + + +export default function () { + return ( + +
+ +

+ La frazione dei documenti rilevanti totali restituita: +

+ {r` + \frac{R \cap A}{R} + `} +
+ +

+ La frazione dei documenti restituiti che sono rilevanti: +

+ {r` + \frac{R \cap A}{A} + `} +
+
+
+ +

+ Si effettuano test e si valutano precisione e richiamo ottenuti. +

+ +

+ Il modello IR ideale ha valori di richiamo e precisione di 1, ma nella realtà questi valori tendono ad essere inversamente proporzionali. +

+
+ +

+ Si fissano un certo numero di livelli di richiamo desiderati e si misura la precisione che ha il modello in quei punti, creando una curva di richiamo standard. +

+

+ È possibile ottenere una curva di richiamo interpolata prendendo per ogni punto il valore di massima precisione tra esso e i punti precedenti. +

+ + Interpolata mi sembra un termine orribile... Non sarebbe molto meglio monotonica? + +
+ +

+ È possibile misurare la curva di richiamo media effettuando la media su più query dei vari valori, e la curva di richiamo a valore singolo effettuando una query sola. +

+

+ Sono entrambe importanti per effettuare una valutazione, perchè la curva media potrebbe mascherare problemi di specifiche query nei modelli. +

+
+
+ +
+ ) +} diff --git a/src/routes/GestioneDellInformazione/index.js b/src/routes/GestioneDellInformazione/index.js index a2edefc..69b11d4 100644 --- a/src/routes/GestioneDellInformazione/index.js +++ b/src/routes/GestioneDellInformazione/index.js @@ -8,6 +8,7 @@ import InformationContent from "./06_InformationContent"; import AnalisiLessicale from "./07_AnalisiLessicale"; import Indexing from "./08_Indexing"; import Modeling from "./09_Modeling"; +import Evaluation from "./10_Evaluation"; export default function () { @@ -24,6 +25,7 @@ export default function () { + ) }