diff --git a/src/components/Todo.js b/src/components/Todo.js
index 33828d6..e6826ba 100644
--- a/src/components/Todo.js
+++ b/src/components/Todo.js
@@ -3,16 +3,24 @@ import PropTypes from "prop-types"
import style from "./Todo.module.css"
-export default function Todo({ children }) {
+export default function Todo({ children, block }) {
useEffect(() => {
console.info("TODO:", { children })
}, [])
- return (
- 🚧 {children}
- )
+ if(block) {
+ return (
+
{children}
+ )
+ }
+ else {
+ return (
+ 🚧 {children}
+ )
+ }
}
Todo.propTypes = {
children: PropTypes.node,
+ block: PropTypes.bool,
}
diff --git a/src/components/Todo.module.css b/src/components/Todo.module.css
index ef92ce2..6d2b0b5 100644
--- a/src/components/Todo.module.css
+++ b/src/components/Todo.module.css
@@ -4,3 +4,9 @@
padding: 1px;
border-radius: 2px;
}
+
+.todoblock {
+ background-color: #292F33;
+ border: 2px dashed #FFCC4D;
+ color: #FFCC4D;
+}
\ No newline at end of file
diff --git a/src/routes/Gestinfo/img/replacement.png b/src/routes/Gestinfo/img/replacement.png
new file mode 100644
index 0000000..0f0087e
Binary files /dev/null and b/src/routes/Gestinfo/img/replacement.png differ
diff --git a/src/routes/Gestinfo/img/suggestion.png b/src/routes/Gestinfo/img/suggestion.png
new file mode 100644
index 0000000..d83bd50
Binary files /dev/null and b/src/routes/Gestinfo/img/suggestion.png differ
diff --git a/src/routes/Gestinfo/index.js b/src/routes/Gestinfo/index.js
index 6475faf..ba48d32 100644
--- a/src/routes/Gestinfo/index.js
+++ b/src/routes/Gestinfo/index.js
@@ -34,6 +34,8 @@ import Image from "../../components/Image"
import ImgDocuments from "./img/documents.png"
import ImgResult from "./img/result.png"
import ImgQuery from "./img/query.png"
+import ImgReplacement from "./img/replacement.png"
+import ImgSuggestion from "./img/suggestion.png"
const r = String.raw
@@ -69,6 +71,7 @@ export default function Gestinfo() {
📰 Wikipedia
🗒️ Appunti open-source di Sharon Guerzoni
📘 Libro di testo consigliato
+
🌐 Introduction to Information Retrieval
@@ -314,26 +317,18 @@ export default function Gestinfo() {
Gli algoritmi che realizzano questo passo sono detti rispettivamente stemmer o lemmatizer.
- Il motore di ricerca stabilisce la relativa importanza di ciascun token dell'insieme, in
- modo da determinare più facilmente in seguito la rilevanza del documento in cui si trovano.
+ Il motore di ricerca stabilisce la relativa importanza di ciascun token dell'insieme, in modo da determinare più facilmente in seguito la rilevanza del documento in cui si trovano.
I termini più importanti di un documento sono detti index term.
Essi solitamente sono individuati da parser e scanner, che
@@ -342,36 +337,40 @@ export default function Gestinfo() {
- Opzionalmente, l'intero documento può essere inserito in una o più categorie di
- un thesaurus, una gerarchia predeterminata di categorie di documenti.
+ Opzionalmente, l'intero documento può essere inserito in una o più categorie di un thesaurus, una gerarchia predeterminata di categorie di documenti.
- La word sense disambiguation sfrutta la similitudine tra l'ononimo e i token
- circostanti per stabilire il significato corretto.
+ La word sense disambiguation sfrutta la similitudine tra l'ononimo e i token circostanti per stabilire il significato corretto.
- Talvolta alla similitudine sono aggiunte anche altre informazioni, come la distanza tra i
- token e dati provenienti da sorgenti esterne.
+ Talvolta alla similitudine sono aggiunte anche altre informazioni, come la distanza tra i token e dati provenienti da sorgenti esterne.
- Un modo di misurare la similitudine tra due token basato sulla loro posizione all'interno
- del thesaurus.
+ Un modo di misurare la similitudine tra due token basato sulla loro posizione all'interno del thesaurus.
- L' è una misura probabilistica di quanto un token sia inaspettato all'interno di un
- documento.
+ L' è una misura probabilistica di quanto un token sia inaspettato all'interno di un documento.
- Definendo {`P(t)`} come la probabilità che un token scelto a
- caso sia {`t`}, l' sarà:
+ Definendo {`P(t)`} come la probabilità che un token scelto a caso sia {`t`}, l' sarà:
{`ic(t) = - \\log \\left( P(t) \\right)`}
@@ -511,13 +506,10 @@ export default function Gestinfo() {
- Matrice costruita per calcolare la distanza di Levenshtein con un algoritmo
- greedy:
+ Matrice costruita per calcolare la distanza di Levenshtein con un algoritmo greedy:
@@ -530,82 +522,66 @@ export default function Gestinfo() {
Trasposizione di un singolo carattere
- Differenzia i costi delle varie operazioni, diffenenziando ad esempio in base al
- carattere sostituito.
+ Differenzia i costi delle varie operazioni, diffenenziando ad esempio in base al carattere sostituito.
- Calcolare l'edit distance {`E`} tra due token è un processo
- computazionalmente molto costoso {`O(n^2)`}.
+ Calcolare l'edit distance {`E`} tra due token è un processo computazionalmente molto costoso {`O(n^2)`}.
-
+
È possibile evitare di calcolare l'edit distance per la maggior parte dei termini del
- vocabolario filtrandoli su criteri più veloci.
+ vocabolario pre-filtrandoli su criteri computazionalmente più veloci.
+ Richiede che venga tenuto traccia delle posizione dei {`q`}-grammi, e prevede che i {`q`}-grammi a più di {`k`} posizioni di distanza non vengano considerati uguali.
+
-
-
-
- Richiede che venga tenuto traccia delle posizione dei {`q`}-grammi,
- e prevede che i {`q`}-grammi a più
- di {`k`} posizioni di distanza non vengano considerati
- uguali.
-
- Tramite overlap dei {`q`}-grammi}>
- Dato un token, si ordinano i token del vocabolario in base al numero
- di {`q`}-grammi in comune.
+ Dato un token, si ordinano i token del vocabolario in base al numero di {`q`}-grammi in comune.
- Misura di overlap tra due insiemi
- di {`q`}-grammi {`X`} e {`Y`}:
+ Misura di overlap tra due insiemi di {`q`}-grammi {`X`} e {`Y`}:
- Scoperti i token "vicini", si può optare per varie soluzioni:
-
-
-
- Mostrare le possibili correzioni all'utente
-
-
-
- Aggiungere i token vicini alla query
-
-
-
- Sostituire il token originale con il più vicino ad esso
-
-
-
+
+
+ Scoperti i token "vicini", si può optare per varie soluzioni:
+
+
+
+
+ Sostituire automaticamente il token originale con il più vicino ad esso.
+
+
+ Richiede che le possibili correzioni siano ordinate.
+
+
+
+
+
+ Visualizzare l'errore all'utente, e permettergli di correggerlo rapidamente.
+
+
+ Richiede più interazione da parte dell'utente.
+
+
+
+
+
+ Aggiungere automaticamente alla query i token corretti.
+
+
+ Richiede più tempo di ricerca, perchè nella query saranno presenti più token.
+
+
+
+
- È possibile confrontare ogni token con il contesto dei termini circostanti per rilevare ulteriori
- errori.
+ È possibile confrontare ogni token con il contesto dei termini circostanti per rilevare ulteriori errori.
- Un metodo che prevede di enumerare varie alternative aventi contesti concordi e di
- restituire quella con il maggior numero di risultati.
+ Un metodo che prevede di enumerare varie alternative aventi contesti concordi e di restituire quella con il maggior numero di risultati.
- Un metodo che prevede di enumerare varie alternative aventi contesti concordi e di
- restituire quella che è stata ricercata più volte.
+ Un metodo che prevede di enumerare varie alternative aventi contesti concordi e di restituire quella che è stata ricercata più volte.
@@ -700,25 +690,21 @@ export default function Gestinfo() {
- Gli indici sono strutture dati in cui vengono inseriti i documenti e i loro token dopo
- essere stati preparati.
+ Gli indici sono strutture dati in cui vengono inseriti i documenti e i loro token dopo essere stati preparati.
- L'indicizzazione è la procedura che crea e mantiene aggiornati uno o
- più indici.
+ L'indicizzazione è la procedura che crea e mantiene aggiornati uno o più indici.
- Sono fondamentali per velocizzare notevolmente le ricerche e per permettere certi tipi di
- operazioni sulle query.
+ Sono fondamentali per velocizzare notevolmente le ricerche e per permettere certi tipi di operazioni sulle query.
- Un indice basato sulla costruzione di una matrice in cui le righe sono i documenti, le
- colonne i token e le celle valori booleani che descrivono se il token compare nel documento.
+ Un indice basato sulla costruzione di una matrice in cui le righe sono i documenti, le colonne i token e le celle valori booleani che descrivono se il token compare nel documento.
È terribilmente inefficiente in termini di spazio, perchè la matrice è sparsa.
@@ -729,8 +715,7 @@ export default function Gestinfo() {
- L'indice più comune, costituito da tante posting list raggiungibili attraverso
- un vocabolario.
+ L'indice più comune, costituito da tante posting list raggiungibili attraverso un vocabolario.
@@ -741,15 +726,15 @@ export default function Gestinfo() {
Può essere realizzata in due modi:
-
Document-based: lista ordinata di documenti con la frequenza del token in
- essi
-
Word-based: lista ordinata di documenti che punta a una lista ordinata
- delle posizioni del token in essi
+
+ Document-based: lista ordinata di documenti con la frequenza del token in essi
+
+
+ Word-based: lista ordinata di documenti che punta a una lista ordinata delle posizioni del token in essi
+
- Essendo le liste ordinate, vi è possibile effettuare operazioni
- di unione e intersezione in tempo lineare utilizzando
- dei cursori.
+ Essendo le liste ordinate, vi è possibile effettuare operazioni di unione e intersezione in tempo lineare utilizzando dei cursori.
Non è però altrettanto efficiente in operazioni di negazione.
@@ -763,21 +748,22 @@ export default function Gestinfo() {
Ci sono tanti modi diversi di implementarlo:
-
Doppia lista ordinata: lista di token che punta a una lista di
- occorrenze
- Trie: albero in cui ogni arco rappresenta una stringa e ogni nodo
- una concatenazione delle stringhe tra sè e la radice
+ Doppia lista ordinata: lista di token che punta a una lista di occorrenze
+
+
+ Trie: albero in cui ogni arco rappresenta una stringa e ogni nodo una concatenazione delle stringhe tra sè e la radice
Prefix tree: trie che usa i prefissi dei token
Suffix tree: trie che usa i suffissi dei token
-
-
B+ tree: albero particolarmente ottimizzato, in cui le foglie sono le
- occorrenze
-
Dizionario: hashmap che usa come chiave il token stesso, e una
- lista di occorrenze come valore
+
+ B+ tree: albero particolarmente ottimizzato, in cui le foglie sono le occorrenze
+
+
+ Dizionario: hashmap che usa come chiave il token stesso, e una lista di occorrenze come valore
+
Generalmente, occupano spazio logaritmico rispetto al numero di token.
@@ -788,33 +774,25 @@ export default function Gestinfo() {
- Ogni motore di ricerca implementa un diverso query language,
- un'interfaccia per l'utente che gli permette di effettuare ricerche in base alla sua
- necessità di informazioni .
+ Ogni motore di ricerca implementa un diverso query language, un'interfaccia per l'utente che gli permette di effettuare ricerche in base alla sua necessità di informazioni .
- Ogni query language può poi implementare diverse funzionalità in base al tipo di
- documento indicizzato.
+ Ogni query language può poi implementare diverse funzionalità in base al tipo di documento indicizzato.
- Essendo una via di mezzo tra linguaggio naturale e linguaggio di programmazione,
- permettono a un utente qualunque di fruire del motore di ricerca, senza bisogno di
- conoscenze approfondite sul suo funzionamento.
+ Essendo una via di mezzo tra linguaggio naturale e linguaggio di programmazione, permettono a un utente qualunque di fruire del motore di ricerca, senza bisogno di conoscenze approfondite sul suo funzionamento.
- All'interno della query vengono inserite una o più keywords da ricercare all'interno dei
- documenti.
+ All'interno della query vengono inserite una o più keywords da ricercare all'interno dei documenti.
- Prevedono la possibilità di richiedere che due o più keyword siano a una
- certa distanza una dall'altra.
+ Prevedono la possibilità di richiedere che due o più keyword siano a una certa distanza una dall'altra.
- Prevedono la possibilità di effettuare più query e applicare le operazioni
- di intersezione, unione e negazione sui risultati.
+ Prevedono la possibilità di effettuare più query e applicare le operazioni di intersezione, unione e negazione sui risultati.
- È costoso in termini di spazio: ogni termine va salvato molte volte nel vocabolario (permuterm
- problem).
+ È costoso in termini di spazio: ogni termine va salvato molte volte nel vocabolario (permuterm problem).
Tramite {`q`}-gram indexes}>
{`q`}-gram index}>
- Vocabolario aggiuntivo che associa {`q`}-grammi ai token
- corrispondenti del vocabolario principale.
+ Vocabolario aggiuntivo che associa {`q`}-grammi ai token corrispondenti del vocabolario principale.
- I risultati della ricerca andranno post-filtrati, in quanto ci potrebbero essere dei falsi
- positivi:
+ I risultati della ricerca andranno post-filtrati, in quanto ci potrebbero essere dei falsi positivi:
@@ -1064,35 +1018,30 @@ export default function Gestinfo() {
Modelli di }>
- Sono modelli matematici in grado di selezionare e ordinare i documenti in
- base alla loro rilevanza rispetto alla query.
+ Sono modelli matematici in grado di selezionare e ordinare i documenti in base alla loro rilevanza rispetto alla query.
- Stabiliscono i risultati richiamati dal motore di ricerca e l'ordine con cui vengono
- visualizzati.
+ Stabiliscono i risultati richiamati dal motore di ricerca e l'ordine con cui vengono visualizzati.
- Rappresentano la query come un insieme di index term, e assegnano le rilevanze confrontando
- l'insieme con gli index term dei documenti.
+ Rappresentano la query come un insieme di index term, e assegnano le rilevanze confrontando l'insieme con gli index term dei documenti.
- Ad ogni index term del documento viene indipendentemente assegnato un peso in
- base alla sua rilevanza nella query.
+ Ad ogni index term del documento viene indipendentemente assegnato un peso in base alla sua rilevanza nella query.
- Modello classico che rappresenta la query come un booleano, e
- genera la rilevanza valutandolo su ogni documento:
+ Modello classico che rappresenta la query come un booleano, e genera la rilevanza valutandolo su ogni documento:
1 se il è vero
@@ -1122,31 +1071,24 @@ export default function Gestinfo() {
- Modello classico che rappresenta il vocabolario come uno spazio vettoriale, in cui ogni
- dimensione rappresenta un token.
+ Modello classico che rappresenta il vocabolario come uno spazio vettoriale, in cui ogni dimensione rappresenta un token.
- Ogni documento viene rappresentato come un vettore {`d`}, i cui
- valori sono pesi {`d_i`} assegnati in base a quanto il token è
- signficativo all'interno del documento.
+ Ogni documento viene rappresentato come un vettore {`d`}, i cui valori sono pesi {`d_i`} assegnati in base a quanto il token è signficativo all'interno del documento.
- Le query vengono anch'esse trasformate in vettori {`q`}, e le
- rilevanze vengono ottenute dalla similitudine vettoriale tra i vettore query e i vettori
- documenti.
+ Le query vengono anch'esse trasformate in vettori {`q`}, e le rilevanze vengono ottenute dalla similitudine vettoriale tra i vettore query e i vettori documenti.
Peso }>
- Un metodo di assegnamento peso che si basa sul prodotto dei
- fattori e :
+ Un metodo di assegnamento peso che si basa sul prodotto dei fattori e :
- Nella formula principale, viene normalizzato dividendolo per il più
- alto del documento, limitandolo così a valori tra 0 e 1:
+ Nella formula principale, viene normalizzato dividendolo per il più alto del documento, limitandolo così a valori tra 0 e 1:
- Nella formula principale, viene logaritmizzato, al fine di ridurre
- significativamente il suo impatto:
+ Nella formula principale, viene logaritmizzato, al fine di ridurre significativamente il suo impatto:
{`idf_{log}(i) = \\log(idf(i))`}
- Un modo di misurare la similitudine tra insiemi di token rappresentati come dimensioni
- vettoriali.
+ Un modo di misurare la similitudine tra insiemi di token rappresentati come dimensioni vettoriali.
- Si basa sulla norma a 2, e corrisponde a cercare l'angolo centrato
- all'origine tra i due vettori:
+ Si basa sulla norma a 2, e corrisponde a cercare l'angolo centrato all'origine tra i due vettori:
{`
sim_{\\cos} (d, q) =
@@ -1210,47 +1148,56 @@ export default function Gestinfo() {
Altre misure comuni di similitudine vettoriale sono:
-
La distanza
- euclidea
-
Il Sørensen–Dice
- coefficient
-
Il Jaccard
- Index
-
La distanza
- di Minkowski
+
La distanza euclidea
+
Il Sørensen–Dice coefficient
+
Il Jaccard Index
+
La distanza di Minkowski
+
+
+ Implementazione del modello vettoriale che ordina i documenti {`d`} in base alla probabilità {`R`} che siano rilevanti per la query {`q`}:
+
+ Si dimostra che è possibile determinare quanto la presenza di un dato token {`k_i`} in un documento {r`d`} ne contribuisca alla rilevanza per la query {r`\vec{q}`}:
+
- Si dimostra che è possibile capire quanto la presenza di un dato
- token {`k_i`} in un documento {r`d`} ne contribuisca
- alla rilevanza per la query {r`\vec{q}`}:
-
- {`
- c_i =
- \\log \\frac{P(k_i\\ |\\ R, \\vec{q})}{1 - P(k_i\\ |\\ R, \\vec{q})}
- +
- \\log \\frac{1 - P(k_i\\ |\\ \\overline{R}, \\vec{q})}{P(k_i\\ |\\ \\overline{R}, \\vec{q})}
- `}
- Continuo a non aver capito gran che.
-
- Il contributo {r`c_i`} viene poi usato come peso
-
-
Modello classico che ordina i documenti in base a un punteggio ad essi assegnato.
@@ -1262,15 +1209,13 @@ export default function Gestinfo() {
Fattore {`x`}}>
- Deriva dal peso dei termini della query presenti nel documento:
+ Deriva dalla somma del peso dei termini della query presenti nel documento:
- Deriva dal peso , dalla lunghezza media dei
- documenti {`L_{avg}`}, la lunghezza del documento
- specifico {`L_d`} e da due parametri di
+ Deriva dal peso , dalla lunghezza media dei documenti {`L_{avg}`}, la lunghezza del documento specifico {`L_d`} e da due parametri di
configurazione {`k_1`} e {`b`}: