From 4872e7d187ec7fc451287c012ff74acda3987adb Mon Sep 17 00:00:00 2001 From: Stefano Pigozzi Date: Sun, 11 Jul 2021 17:10:04 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=92=A5=20Add=20/=20change=20some=20things?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/Todo.js | 16 +- src/components/Todo.module.css | 6 + src/routes/Gestinfo/img/replacement.png | Bin 0 -> 10717 bytes src/routes/Gestinfo/img/suggestion.png | Bin 0 -> 7882 bytes src/routes/Gestinfo/index.js | 489 +++++++++++------------- 5 files changed, 235 insertions(+), 276 deletions(-) create mode 100644 src/routes/Gestinfo/img/replacement.png create mode 100644 src/routes/Gestinfo/img/suggestion.png 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 0000000000000000000000000000000000000000..0f0087eac3ea8e291e9413683c4090820fe8831f GIT binary patch literal 10717 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📰 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.

    - 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.

    - + - {r`\left| size(X) - size(Y) \right| \leq k`} - {r`\Updownarrow`} - {r`E \leq k`} + {r`E \geq \left| size(X) - size(Y) \right|`} - + Differenza di {r`q`}-grammi}> - {r`size(X \cap Y) = \max(size(X),\ size(Y)) + q - 1 - (k \cdot q)`} - {r`\Updownarrow`} - {r`E \leq k`} + + {r`E \geq \frac{\max ( size(X), size(Y) ) - size(X \cap Y) + q - 1}{q}`} + + + Posizione dei {r`q`}-grammi}> + +

    + 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`}:

    {r`Jaccard = \frac{size(X \cap Y)}{size(X \cup Y)}`}

    - È 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 :

      {`d_i = tf_{norm}(i) \\cdot idf_{log}(i)`} : Term frequency}> @@ -1157,8 +1099,7 @@ export default function Gestinfo() { block={true} >{`tf(i) = \\frac{occorrenze}{totale\\ token}`}

      - 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:

      {`idf(i) = \\frac{totale\\ documenti}{documenti\\ con\\ occ.}`}

      - 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`}: +

      + {`sim_{prob} = \\frac{P(R\\ |\\ d, q)}{P(\\overline{R}\\ |\\ d, 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}`}: +

      + {` + 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})} + `} + + + + + + + + + +
      - -

      - Modello classico che ordina i documenti {`d`} in base - alla probabilità che siano rilevanti {`R`} per la - query {`q`}: -

      - {`sim_{prob} = \\frac{P(R\\ |\\ d, q)}{P(\\overline{R}\\ |\\ d, 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:

      {`x = \\sum_{t \\in q} ( idf_{\\log} )`}
      Fattore {`y`}}>

      - 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`}: