mirror of
https://github.com/Steffo99/unisteffo.git
synced 2024-11-23 00:14:21 +00:00
✨ Complete B9 - Tolerant Retrieval
This commit is contained in:
parent
9334ee27d1
commit
4bdaf8a996
1 changed files with 193 additions and 150 deletions
|
@ -373,6 +373,9 @@ export default function Gestinfo() {
|
||||||
Si basa sulla <B>profondità</B> del <B>minimo antenato comune</B> tra i due token:
|
Si basa sulla <B>profondità</B> del <B>minimo antenato comune</B> tra i due token:
|
||||||
</P>
|
</P>
|
||||||
<B><LatexMath block={true}>{`sim_{wp}(t_1, t_2) = 2 \\cdot \\frac{depth(mac_{\\ t_1,t_2})}{depth(t_1) + depth(t_2)}`}</LatexMath></B>
|
<B><LatexMath block={true}>{`sim_{wp}(t_1, t_2) = 2 \\cdot \\frac{depth(mac_{\\ t_1,t_2})}{depth(t_1) + depth(t_2)}`}</LatexMath></B>
|
||||||
|
<Aside>
|
||||||
|
Varia più lentamente rispetto alla Path-distance.
|
||||||
|
</Aside>
|
||||||
</TitleBox>
|
</TitleBox>
|
||||||
</Split>
|
</Split>
|
||||||
</TitleBox>
|
</TitleBox>
|
||||||
|
@ -387,6 +390,9 @@ export default function Gestinfo() {
|
||||||
<P>
|
<P>
|
||||||
La <I>similitudine <IC/>-based</I> è quindi un modo di misurare la similitudine basato sull'<B><IC/></B>.
|
La <I>similitudine <IC/>-based</I> è quindi un modo di misurare la similitudine basato sull'<B><IC/></B>.
|
||||||
</P>
|
</P>
|
||||||
|
<Aside>
|
||||||
|
Le misure <IC/>-based tengono quindi conto della frequenza dei vari token nella collezione.
|
||||||
|
</Aside>
|
||||||
<TitleBox title={"Resnik"}>
|
<TitleBox title={"Resnik"}>
|
||||||
<P>
|
<P>
|
||||||
Si basa sull'<B><IC/></B> del <B>minimo antenato comune</B>:
|
Si basa sull'<B><IC/></B> del <B>minimo antenato comune</B>:
|
||||||
|
@ -407,10 +413,9 @@ export default function Gestinfo() {
|
||||||
</P>
|
</P>
|
||||||
</TitleBox>
|
</TitleBox>
|
||||||
</TitleSplit>
|
</TitleSplit>
|
||||||
<Split>
|
|
||||||
<TitleBox title={"Correzione token isolati"}>
|
<TitleBox title={"Correzione token isolati"}>
|
||||||
<P>
|
<P>
|
||||||
È possibile applicare trovare per ogni token dei suoi <I>vicini</I> utilizzabili per migliorare la query:
|
È possibile trovare per ogni token dei suoi <I>vicini</I> utilizzabili per migliorare la query:
|
||||||
</P>
|
</P>
|
||||||
<TitleBox title={"Tramite edit distance"}>
|
<TitleBox title={"Tramite edit distance"}>
|
||||||
<P>
|
<P>
|
||||||
|
@ -433,10 +438,15 @@ export default function Gestinfo() {
|
||||||
<Aside>
|
<Aside>
|
||||||
La distanza di Levenshtein tra <Token>pierta</Token> e <Token>pietra</Token> è 2.
|
La distanza di Levenshtein tra <Token>pierta</Token> e <Token>pietra</Token> è 2.
|
||||||
</Aside>
|
</Aside>
|
||||||
|
<TitleBox title={"Matrice di distanza"}>
|
||||||
|
<P>
|
||||||
|
Matrice costruita per calcolare la distanza di Levenshtein con un algoritmo greedy:
|
||||||
|
</P>
|
||||||
<Aside>
|
<Aside>
|
||||||
<Todo><Anchor href={"https://phiresky.github.io/levenshtein-demo/"}>Visualizzazione matrice di distanza</Anchor></Todo>
|
<Anchor href={"https://gist.github.com/Steffo99/ceeb7ed61a7b6a12a783232c0230ce70"}>Guarda un esempio documentato in Python qui!</Anchor>
|
||||||
</Aside>
|
</Aside>
|
||||||
</TitleBox>
|
</TitleBox>
|
||||||
|
</TitleBox>
|
||||||
<TitleBox title={"Damerau-Levenshtein distance"}>
|
<TitleBox title={"Damerau-Levenshtein distance"}>
|
||||||
<P>
|
<P>
|
||||||
Estende la distanza di Levenshtein con una nuova operazione:
|
Estende la distanza di Levenshtein con una nuova operazione:
|
||||||
|
@ -457,6 +467,63 @@ export default function Gestinfo() {
|
||||||
</Aside>
|
</Aside>
|
||||||
</TitleBox>
|
</TitleBox>
|
||||||
</Split>
|
</Split>
|
||||||
|
<P>
|
||||||
|
Calcolare l'edit distance <LatexMath>{`E`}</LatexMath> tra due token è un processo computazionalmente <B>molto costoso <LatexMath>{`O(n^2)`}</LatexMath></B>.
|
||||||
|
</P>
|
||||||
|
<TitleBox title={"Filtraggio"}>
|
||||||
|
<P>
|
||||||
|
È possibile evitare di calcolare l'edit distance per la maggior parte dei termini del vocabolario <I>filtrandoli</I> su <B>criteri più veloci</B>.
|
||||||
|
</P>
|
||||||
|
<Split>
|
||||||
|
<TitleBox title={"Lunghezza"}>
|
||||||
|
<Aside>
|
||||||
|
L'edit distance come minimo è la differenza tra il numero di caratteri dei due token.
|
||||||
|
</Aside>
|
||||||
|
<B><LatexMath block={true}>{r`\left| size(X) - size(Y) \right| \leq k`}</LatexMath></B>
|
||||||
|
<LatexMath block={true}>{r`\Updownarrow`}</LatexMath>
|
||||||
|
<LatexMath block={true}>{r`E \leq k`}</LatexMath>
|
||||||
|
</TitleBox>
|
||||||
|
<TitleBox title={"Conteggio"}>
|
||||||
|
<Aside>
|
||||||
|
Meno <LatexMath>{r`q`}</LatexMath>-grammi hanno in comune due token, più sarà alta la loro edit distance.
|
||||||
|
</Aside>
|
||||||
|
<B><LatexMath block={true}>{r`size(X \cap Y) = \max(size(X),\ size(Y)) + q - 1 - (k \cdot q)`}</LatexMath></B>
|
||||||
|
<LatexMath block={true}>{r`\Updownarrow`}</LatexMath>
|
||||||
|
<LatexMath block={true}>{r`E \leq k`}</LatexMath>
|
||||||
|
</TitleBox>
|
||||||
|
</Split>
|
||||||
|
<TitleBox title={"Posizione"}>
|
||||||
|
<Aside>
|
||||||
|
Token i cui <LatexMath>{`q`}</LatexMath>-grammi si trovano in posizioni diverse avranno edit distance più alte.
|
||||||
|
</Aside>
|
||||||
|
<P>
|
||||||
|
Richiede che venga tenuto traccia delle posizione dei <LatexMath>{`q`}</LatexMath>-grammi, e prevede che i <LatexMath>{`q`}</LatexMath>-grammi a <B>più di <LatexMath>{`k`}</LatexMath> posizioni di distanza</B> non vengano considerati uguali.
|
||||||
|
</P>
|
||||||
|
</TitleBox>
|
||||||
|
</TitleBox>
|
||||||
|
<P>
|
||||||
|
Scoperti i token "vicini", si può optare per varie soluzioni:
|
||||||
|
</P>
|
||||||
|
<ul>
|
||||||
|
<LI>
|
||||||
|
<B>Mostrare</B> le possibili correzioni all'utente
|
||||||
|
<Aside>
|
||||||
|
È poco user-friendly, perchè richiede più interazione.
|
||||||
|
</Aside>
|
||||||
|
</LI>
|
||||||
|
<LI>
|
||||||
|
<B>Aggiungere</B> i token vicini alla query
|
||||||
|
<Aside>
|
||||||
|
Rallenta la ricerca, perchè aumentano i token nella query.
|
||||||
|
</Aside>
|
||||||
|
</LI>
|
||||||
|
<LI>
|
||||||
|
<B>Sostituire</B> il token originale con il più vicino ad esso
|
||||||
|
<Aside>
|
||||||
|
Richiede un meccanismo di ranking dei token.
|
||||||
|
</Aside>
|
||||||
|
</LI>
|
||||||
|
</ul>
|
||||||
</TitleBox>
|
</TitleBox>
|
||||||
</TitleBox>
|
</TitleBox>
|
||||||
<TitleBox title={<span>Tramite overlap dei <LatexMath>{`q`}</LatexMath>-grammi</span>}>
|
<TitleBox title={<span>Tramite overlap dei <LatexMath>{`q`}</LatexMath>-grammi</span>}>
|
||||||
|
@ -506,62 +573,24 @@ export default function Gestinfo() {
|
||||||
</Aside>
|
</Aside>
|
||||||
</TitleBox>
|
</TitleBox>
|
||||||
</TitleBox>
|
</TitleBox>
|
||||||
<TitleBox title={"Tramite filtraggio"}>
|
</TitleBox>
|
||||||
|
<TitleBox title={"Correzione contestualizzata"}>
|
||||||
<P>
|
<P>
|
||||||
Esistono modi veloci per approssimare l'edit distance <LatexMath>{`E`}</LatexMath> dei token del vocabolario. <Todo>Sono dei "se e solo se", giusto?</Todo>
|
È possibile confrontare ogni token con il contesto dei termini circostanti per rilevare ulteriori errori.
|
||||||
</P>
|
</P>
|
||||||
<Split>
|
<Split>
|
||||||
<TitleBox title={"Lunghezza"}>
|
<TitleBox title={"Conteggio dei risultati"}>
|
||||||
<Aside>
|
|
||||||
Token di lunghezza molto diversa non possono essere vicini.
|
|
||||||
</Aside>
|
|
||||||
<B><LatexMath block={true}>{r`\left| size(X) - size(Y) \right| \leq k`}</LatexMath></B>
|
|
||||||
<LatexMath block={true}>{r`\Updownarrow`}</LatexMath>
|
|
||||||
<LatexMath block={true}>{r`E \leq k`}</LatexMath>
|
|
||||||
</TitleBox>
|
|
||||||
<TitleBox title={"Conteggio"}>
|
|
||||||
<Aside>
|
|
||||||
Token che hanno pochi <LatexMath>{`q`}</LatexMath>-grammi in comune tra loro non possono essere vicini.
|
|
||||||
</Aside>
|
|
||||||
<B><LatexMath block={true}>{r`size(X \cap Y) = \max(size(X),\ size(Y)) + q - 1 - (k \cdot q)`}</LatexMath></B>
|
|
||||||
<LatexMath block={true}>{r`\Updownarrow`}</LatexMath>
|
|
||||||
<LatexMath block={true}>{r`E \leq k`}</LatexMath>
|
|
||||||
</TitleBox>
|
|
||||||
</Split>
|
|
||||||
<TitleBox title={"Posizione"}>
|
|
||||||
<Aside>
|
|
||||||
Token i cui <LatexMath>{`q`}</LatexMath>-grammi si trovano in posizioni diverse non possono essere vicini.
|
|
||||||
</Aside>
|
|
||||||
<P>
|
<P>
|
||||||
Richiede che venga tenuto traccia delle posizione dei <LatexMath>{`q`}</LatexMath>-grammi, e prevede che i <LatexMath>{`q`}</LatexMath>-grammi a <B>più di <LatexMath>{`k`}</LatexMath> posizioni di distanza</B> non vengano considerati uguali.
|
Un metodo che prevede di <B>enumerare</B> varie alternative aventi contesti concordi e di restituire quella con il <B>maggior numero di risultati</B>.
|
||||||
</P>
|
</P>
|
||||||
</TitleBox>
|
</TitleBox>
|
||||||
</TitleBox>
|
<TitleBox title={"Conteggio delle ricerche"}>
|
||||||
<P>
|
<P>
|
||||||
Scoperti i token "vicini", si può optare per varie soluzioni:
|
Un metodo che prevede di <B>enumerare</B> varie alternative aventi contesti concordi e di restituire quella che <B>è stata ricercata più volte</B>.
|
||||||
</P>
|
</P>
|
||||||
<ul>
|
|
||||||
<LI>
|
|
||||||
<B>Mostrare</B> le possibili correzioni all'utente
|
|
||||||
<Aside>
|
|
||||||
È poco user-friendly, perchè richiede più interazione.
|
|
||||||
</Aside>
|
|
||||||
</LI>
|
|
||||||
<LI>
|
|
||||||
<B>Aggiungere</B> i token vicini alla query
|
|
||||||
<Aside>
|
|
||||||
Rallenta la ricerca, perchè aumentano i token nella query.
|
|
||||||
</Aside>
|
|
||||||
</LI>
|
|
||||||
<LI>
|
|
||||||
<B>Sostituire</B> il token originale con il più vicino ad esso
|
|
||||||
<Aside>
|
|
||||||
Richiede un meccanismo di ranking dei token.
|
|
||||||
</Aside>
|
|
||||||
</LI>
|
|
||||||
</ul>
|
|
||||||
</TitleBox>
|
</TitleBox>
|
||||||
</Split>
|
</Split>
|
||||||
|
</TitleBox>
|
||||||
<TitleSplit title={"Indici"}>
|
<TitleSplit title={"Indici"}>
|
||||||
<TitleBox title={"Cosa sono?"}>
|
<TitleBox title={"Cosa sono?"}>
|
||||||
<P>
|
<P>
|
||||||
|
@ -872,7 +901,9 @@ export default function Gestinfo() {
|
||||||
</Aside>
|
</Aside>
|
||||||
</Aside>
|
</Aside>
|
||||||
<Aside>
|
<Aside>
|
||||||
È più efficente in termini di spazio, ma richiede più tempo per intersezione e post-filtering. <Todo>Come si confronta con il prefix e suffix tree?</Todo>
|
<P>
|
||||||
|
<Todo>È un'ottima via di mezzo tra prefix-suffix tree e permuterm tree sia per il tempo impiegato sia per lo spazio richiesto.</Todo>
|
||||||
|
</P>
|
||||||
</Aside>
|
</Aside>
|
||||||
</TitleBox>
|
</TitleBox>
|
||||||
</TitleSplit>
|
</TitleSplit>
|
||||||
|
@ -1018,7 +1049,7 @@ export default function Gestinfo() {
|
||||||
</P>
|
</P>
|
||||||
<B><LatexMath block={true}>{`sim_{prob} = \\frac{P(R\\ |\\ d, q)}{P(\\overline{R}\\ |\\ d, q)}`}</LatexMath></B>
|
<B><LatexMath block={true}>{`sim_{prob} = \\frac{P(R\\ |\\ d, q)}{P(\\overline{R}\\ |\\ d, q)}`}</LatexMath></B>
|
||||||
<P>
|
<P>
|
||||||
<Todo>Si dimostra che</Todo> è possibile capire quanto la presenza di un dato token <LatexMath>{`k_i`}</LatexMath> in un documento ne <B>contribuisca alla rilevanza</B>:
|
<Todo>Si dimostra che</Todo> è possibile capire quanto la presenza di un dato token <LatexMath>{`k_i`}</LatexMath> in un documento <LatexMath>{r`d`}</LatexMath> ne <B>contribuisca alla rilevanza</B> per la query <LatexMath>{r`\vec{q}`}</LatexMath>:
|
||||||
</P>
|
</P>
|
||||||
<B><LatexMath block={true}>{`
|
<B><LatexMath block={true}>{`
|
||||||
c_i =
|
c_i =
|
||||||
|
@ -1026,8 +1057,9 @@ export default function Gestinfo() {
|
||||||
+
|
+
|
||||||
\\log \\frac{1 - P(k_i\\ |\\ \\overline{R}, \\vec{q})}{P(k_i\\ |\\ \\overline{R}, \\vec{q})}
|
\\log \\frac{1 - P(k_i\\ |\\ \\overline{R}, \\vec{q})}{P(k_i\\ |\\ \\overline{R}, \\vec{q})}
|
||||||
`}</LatexMath></B>
|
`}</LatexMath></B>
|
||||||
|
<Todo>Continuo a non aver capito gran che.</Todo>
|
||||||
<P>
|
<P>
|
||||||
<Todo>Non ci ho capito gran che onestamente. Help.</Todo>
|
Il contributo <LatexMath>{r`c_i`}</LatexMath> viene poi usato come peso
|
||||||
</P>
|
</P>
|
||||||
</TitleBox>
|
</TitleBox>
|
||||||
<TitleBox title={"Modello Okapi BM25"}>
|
<TitleBox title={"Modello Okapi BM25"}>
|
||||||
|
@ -1043,13 +1075,19 @@ export default function Gestinfo() {
|
||||||
<P>
|
<P>
|
||||||
Deriva dal <B>peso <IDF/></B> dei termini della query presenti nel documento:
|
Deriva dal <B>peso <IDF/></B> dei termini della query presenti nel documento:
|
||||||
</P>
|
</P>
|
||||||
<B><LatexMath block={true}>{`x = \\sum_{t \\in q} ( \\log ( idf ) )`}</LatexMath></B>
|
<B><LatexMath block={true}>{`x = \\sum_{t \\in q} ( idf_{\\log} )`}</LatexMath></B>
|
||||||
</TitleBox>
|
</TitleBox>
|
||||||
<TitleBox title={<span>Fattore <LatexMath>{`y`}</LatexMath></span>}>
|
<TitleBox title={<span>Fattore <LatexMath>{`y`}</LatexMath></span>}>
|
||||||
<P>
|
<P>
|
||||||
Deriva dal <B>peso <TF/></B>, dalla lunghezza media dei documenti <LatexMath>{`L_{avg}`}</LatexMath>, la lunghezza del documento specifico <LatexMath>{`L_d`}</LatexMath> e da due parametri di configurazione <LatexMath>{`k_1`}</LatexMath> e <LatexMath>{`b`}</LatexMath>:
|
Deriva dal <B>peso <TF/></B>, dalla <B>lunghezza media dei documenti <LatexMath>{`L_{avg}`}</LatexMath></B>, la <B>lunghezza del documento specifico <LatexMath>{`L_d`}</LatexMath></B> e da due parametri di configurazione <LatexMath>{`k_1`}</LatexMath> e <LatexMath>{`b`}</LatexMath>:
|
||||||
</P>
|
</P>
|
||||||
<B><LatexMath block={true}>{`y = \\frac{(k_1 + 1) \\cdot tf_{td}}{k_1 \\cdot \\left( 1 - b + \\left( b \\cdot \\frac{L_d}{L_{avg}} \\right) \\right) + tf_{td}}`}</LatexMath></B>
|
<B><LatexMath block={true}>{`y = \\frac{(k_1 + 1) \\cdot tf_{td}}{k_1 \\cdot \\left( 1 - b + \\left( b \\cdot \\frac{L_d}{L_{avg}} \\right) \\right) + tf_{td}}`}</LatexMath></B>
|
||||||
|
<Aside>
|
||||||
|
Attribuisce rispettivamente un bonus o una penalità (regolabile con <LatexMath>{`b`}</LatexMath>) a ogni documento in base a se questo sia <B>più corto</B> o <B>più lungo della media</B>.
|
||||||
|
</Aside>
|
||||||
|
<Aside>
|
||||||
|
<LatexMath>{r`k_1`}</LatexMath> regola la priorità data alla <TF/>. <Todo>All'interno del fattore o dell'intero RSV?</Todo>
|
||||||
|
</Aside>
|
||||||
</TitleBox>
|
</TitleBox>
|
||||||
<TitleBox title={<span>Fattore <LatexMath>{`z`}</LatexMath></span>}>
|
<TitleBox title={<span>Fattore <LatexMath>{`z`}</LatexMath></span>}>
|
||||||
<P>
|
<P>
|
||||||
|
@ -1116,7 +1154,7 @@ export default function Gestinfo() {
|
||||||
</TitleBox>
|
</TitleBox>
|
||||||
<TitleBox title={"R-Recall"}>
|
<TitleBox title={"R-Recall"}>
|
||||||
<P>
|
<P>
|
||||||
<Todo>Il <B>richiamo</B> di una query con precisione <LatexMath>{`R`}</LatexMath>.</Todo>
|
A precisione <LatexMath>{`R`}</LatexMath>, il <B>richiamo</B> relativo ad una query.
|
||||||
</P>
|
</P>
|
||||||
</TitleBox>
|
</TitleBox>
|
||||||
</Split>
|
</Split>
|
||||||
|
@ -1373,7 +1411,12 @@ export default function Gestinfo() {
|
||||||
</Split>
|
</Split>
|
||||||
</TitleBox>
|
</TitleBox>
|
||||||
</TitleBox>
|
</TitleBox>
|
||||||
<Todo>Questa pagina è incompleta! 8/10</Todo>
|
<P>
|
||||||
|
<Todo>Forse sarebbe utile parlare del Soundex, ma è talmente decontestualizzato che non saprei dove infilarlo.</Todo>
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
<Todo>Questa pagina è completa al 90% (9 presentazioni su 10).</Todo>
|
||||||
|
</P>
|
||||||
</article>
|
</article>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue