1
Fork 0
mirror of https://github.com/Steffo99/unisteffo.git synced 2024-11-22 16:04:21 +00:00

Complete B9 - Tolerant Retrieval

This commit is contained in:
Steffo 2021-02-21 17:11:12 +01:00
parent 9334ee27d1
commit 4bdaf8a996
Signed by: steffo
GPG key ID: 6965406171929D01

View file

@ -373,6 +373,9 @@ export default function Gestinfo() {
Si basa sulla <B>profondità</B> del <B>minimo antenato comune</B> tra i due token:
</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>
<Aside>
Varia più lentamente rispetto alla Path-distance.
</Aside>
</TitleBox>
</Split>
</TitleBox>
@ -387,6 +390,9 @@ export default function Gestinfo() {
<P>
La <I>similitudine <IC/>-based</I> è quindi un modo di misurare la similitudine basato sull'<B><IC/></B>.
</P>
<Aside>
Le misure <IC/>-based tengono quindi conto della frequenza dei vari token nella collezione.
</Aside>
<TitleBox title={"Resnik"}>
<P>
Si basa sull'<B><IC/></B> del <B>minimo antenato comune</B>:
@ -407,10 +413,9 @@ export default function Gestinfo() {
</P>
</TitleBox>
</TitleSplit>
<Split>
<TitleBox title={"Correzione token isolati"}>
<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>
<TitleBox title={"Tramite edit distance"}>
<P>
@ -433,10 +438,15 @@ export default function Gestinfo() {
<Aside>
La distanza di Levenshtein tra <Token>pierta</Token> e <Token>pietra</Token> è 2.
</Aside>
<TitleBox title={"Matrice di distanza"}>
<P>
Matrice costruita per calcolare la distanza di Levenshtein con un algoritmo greedy:
</P>
<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>
</TitleBox>
</TitleBox>
<TitleBox title={"Damerau-Levenshtein distance"}>
<P>
Estende la distanza di Levenshtein con una nuova operazione:
@ -457,6 +467,63 @@ export default function Gestinfo() {
</Aside>
</TitleBox>
</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 title={<span>Tramite overlap dei <LatexMath>{`q`}</LatexMath>-grammi</span>}>
@ -506,62 +573,24 @@ export default function Gestinfo() {
</Aside>
</TitleBox>
</TitleBox>
<TitleBox title={"Tramite filtraggio"}>
</TitleBox>
<TitleBox title={"Correzione contestualizzata"}>
<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>
<Split>
<TitleBox title={"Lunghezza"}>
<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>
<TitleBox title={"Conteggio dei risultati"}>
<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>
</TitleBox>
</TitleBox>
<TitleBox title={"Conteggio delle ricerche"}>
<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>
<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>
</Split>
</TitleBox>
<TitleSplit title={"Indici"}>
<TitleBox title={"Cosa sono?"}>
<P>
@ -872,7 +901,9 @@ export default function Gestinfo() {
</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>
</TitleBox>
</TitleSplit>
@ -1018,7 +1049,7 @@ export default function Gestinfo() {
</P>
<B><LatexMath block={true}>{`sim_{prob} = \\frac{P(R\\ |\\ d, q)}{P(\\overline{R}\\ |\\ d, q)}`}</LatexMath></B>
<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>
<B><LatexMath block={true}>{`
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})}
`}</LatexMath></B>
<Todo>Continuo a non aver capito gran che.</Todo>
<P>
<Todo>Non ci ho capito gran che onestamente. Help.</Todo>
Il contributo <LatexMath>{r`c_i`}</LatexMath> viene poi usato come peso
</P>
</TitleBox>
<TitleBox title={"Modello Okapi BM25"}>
@ -1043,13 +1075,19 @@ export default function Gestinfo() {
<P>
Deriva dal <B>peso <IDF/></B> dei termini della query presenti nel documento:
</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 title={<span>Fattore <LatexMath>{`y`}</LatexMath></span>}>
<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>
<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 title={<span>Fattore <LatexMath>{`z`}</LatexMath></span>}>
<P>
@ -1116,7 +1154,7 @@ export default function Gestinfo() {
</TitleBox>
<TitleBox title={"R-Recall"}>
<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>
</TitleBox>
</Split>
@ -1373,7 +1411,12 @@ export default function Gestinfo() {
</Split>
</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>
)
}