1
Fork 0
mirror of https://github.com/Steffo99/unisteffo.git synced 2024-11-26 09:54:19 +00:00

Reorganize Gestione dell'Informazione

This commit is contained in:
Steffo 2020-11-16 17:33:52 +01:00
parent bf41533d55
commit bdadb2e073
8 changed files with 266 additions and 90 deletions

View file

@ -22,80 +22,6 @@ export default function (props) {
</p> </p>
</Panel> </Panel>
</Section> </Section>
<Section title={"Query"}>
<Panel title={"User Information Need (UIN)"}>
<p>
La <b>richiesta</b> di informazioni effettuata da un utente <b>in linguaggio naturale</b>.
</p>
</Panel>
<Panel title={"Query"}>
<p>
La <b>traduzione</b> dell'UIN in un linguaggio <b>specifico al motore di ricerca</b>.
</p>
<p>
La complessità di questo linguaggio dipende dall'utilizzatore del motore di ricerca: il suo <b>livello di esperienza</b>, il suo <b>background di conoscenze</b> e il <b>livello di approfondimento desiderato</b>.
</p>
</Panel>
</Section>
<Section title={"Query languages"}>
<Panel title={"Keyword-based query"}>
<Example>
<Link href={"https://it.wikipedia.org/w/index.php?search=&title=Speciale:Ricerca&go=Go"}>Wikipedia</Link> e la <Link href={"https://telegram.org/blog/shared-files#multisearch"}>ricerca di Telegram</Link> usano un linguaggio di query <i>keyword-based</i>.
</Example>
<p>
Definisce <b>parole chiave</b> da cercare all'interno dei documenti.
</p>
<p>
In esse, è possibile cercare <b>molteplici</b> parole chiave, <b>concatenarle</b> per formare una <b>frase</b> oppure cercare parole a una data <b>prossimità</b> l'una dall'altra.
</p>
<p>
Spesso processa il linguaggio naturale per trasformarne le parole specifiche in parole chiave più generiche.
</p>
<Example>
Cercando su Telegram un plurale inglese, verranno restituiti anche i messaggi che riportano la stessa parola ma al singolare.
</Example>
</Panel>
<Panel title={"Pattern-based query"}>
<Example>
Le <Link href={"https://regex101.com/"}>regex</Link> e i <Link href={"https://en.wikipedia.org/wiki/Glob_(programming)"}>glob</Link> sono due dei pattern-based query languages più comuni.
</Example>
<p>
Definisce <b>parti di testo</b> da cercare all'interno dei documenti.
</p>
<p>
Permettono dunque la ricerca di <b>prefissi</b>, <b>suffissi</b>, <b>sottostringhe</b> e <b>intervalli</b>.
</p>
</Panel>
</Section>
<Section>
<Panel title={"Boolean query"}>
<Example>
<Link href={"https://www.google.it/"}>Google</Link>, <Link href={"https://duckduckgo.com/"}>DuckDuckGo</Link>, <Link href={"https://www.ecosia.org/"}>Ecosia</Link> usano tutti un linguaggio di query keyword-based booleano.
</Example>
<p>
<b>Estendono</b> gli altri tipi di query permettendo l'inserimento di <b>operatori booleani</b> (<code>AND</code>, <code>OR</code> e <code>NOT</code>) tra le parole chiave.
</p>
<Example>
Per esempi sulla sintassi per effettuare ricerche booleane su Google, visita <Link href={"https://www.google.it/advanced_search"}>Google Advanced Search</Link>.
</Example>
</Panel>
<Panel title={"Structural query"}>
<Example>
<Link href={"https://books.google.com/advanced_book_search"}>Google Books</Link> permette di sfruttare la struttura fissa delle informazioni sui libri (titolo, autore, editore...) per ottenere risultati più precisi.,
</Example>
<p>
Permettono di effettuare i precedenti tipi di query su <b>specifiche parti della struttura</b> dei documenti.
</p>
</Panel>
<Panel title={"Concept-based query"}>
<Example>
<Link href={"https://www.ncbi.nlm.nih.gov/mesh"}>MeSH</Link> cataloga i paper di medicina caricati su PubMed organizzandoli in una gerarchia di categorie.
</Example>
<p>
Limitano le keyword a un <b>vocabolario predefinito</b> utilizzato anche dai documenti.
</p>
</Panel>
</Section>
</Fragment> </Fragment>
) )
} }

View file

@ -0,0 +1,81 @@
import {Fragment} from "preact";
import {Section, Panel, ILatex, BLatex, PLatex} from "bluelib";
import ToBeContinued from "../../components/ToBeContinued";
const r = String.raw;
export default function () {
return (
<Fragment>
<Section title={"Relazioni tra parole"}>
<Panel title={"Sinonimia"}>
<blockquote>
synonymy
</blockquote>
<p>
Due parole sono <i>sinonimi</i> quando hanno lo <b>stesso identico significato</b>.
</p>
</Panel>
<Panel title={"Somiglianza"}>
<blockquote>
similarity
</blockquote>
<p>
Due parole sono <i>simili</i> rappresentano concetti con <b>caratteristiche in comune</b>.
</p>
</Panel>
<Panel title={"Correlazione"}>
<blockquote>
relatedness
</blockquote>
<p>
Due parole sono <i>correlate</i> quando rappresentano <b>concetti vengono usati insieme</b> spesso.
</p>
</Panel>
</Section>
<Section title={"Somiglianza path-based"}>
<Panel title={"Cos'è?"}>
<p>
Un modo per misurare la somiglianza tra due parole confrontando solo la loro <b>posizione nel thesaurus</b>.
</p>
</Panel>
</Section>
<Section>
<Panel title={"Somiglianza path-distance"}>
<p>
Calcola la somiglianza basandosi sull'<b>inverso della distanza</b> tra le due parole <ILatex>{r`c_1`}</ILatex> e <ILatex>{r`c_2`}</ILatex> nell'albero:
</p>
<PLatex>{r`
sim\_pd(c_1, c_2) = \frac{1}{dist(c_1, c_2) + 1}
`}</PLatex>
</Panel>
<Panel title={"Somiglianza Wu-Palmer"}>
<p>
Calcola la somiglianza basandosi sulla <b>profondità dei due nodi</b> e sulla <b>profondità del minimo antenato comune</b> <ILatex>{r`mac`}</ILatex>:
</p>
<PLatex>{r`
sim\_wp(c_1, c_2) = \frac{2 \cdot depth(mac(c_1, c_2))}{depth(c_1) + depth(c_2)}
`}</PLatex>
</Panel>
</Section>
<Section title={"Somiglianza information-content-based"}>
<Panel title={"Cos'è?"}>
<p>
Un modo per misurare la somiglianza tra due parole attraverso i loro valori di <b>information content</b>.
</p>
</Panel>
</Section>
<Section>
<Panel title={"Somiglianza Resnik"}>
<p>
Calcola la somiglianza basandosi sull'<b>information content del minimo antenato comune</b> <ILatex>{r`mac`}</ILatex> tra i due termini.
</p>
<PLatex>{r`
sim\_rs(c_1, c_2) = - \log P( mac(c_1, c_2) )
`}</PLatex>
</Panel>
</Section>
</Fragment>
)
}

View file

@ -0,0 +1,88 @@
import {Fragment} from "preact";
import {Section, Panel, ILatex, BLatex, PLatex} from "bluelib";
import Example from "../../components/Example";
import Link from "../../components/Link";
const r = String.raw;
export default function () {
return (
<Fragment>
<Section title={"Query"}>
<Panel title={"User Information Need (UIN)"}>
<p>
La <b>richiesta</b> di informazioni effettuata da un utente <b>in linguaggio naturale</b>.
</p>
</Panel>
<Panel title={"Query"}>
<p>
La <b>traduzione</b> dell'UIN in un linguaggio <b>specifico al motore di ricerca</b>.
</p>
<p>
La complessità di questo linguaggio dipende dall'utilizzatore del motore di ricerca: il suo <b>livello di esperienza</b>, il suo <b>background di conoscenze</b> e il <b>livello di approfondimento desiderato</b>.
</p>
</Panel>
</Section>
<Section title={"Query languages"}>
<Panel title={"Keyword-based query"}>
<Example>
<Link href={"https://it.wikipedia.org/w/index.php?search=&title=Speciale:Ricerca&go=Go"}>Wikipedia</Link> e la <Link href={"https://telegram.org/blog/shared-files#multisearch"}>ricerca di Telegram</Link> usano un linguaggio di query <i>keyword-based</i>.
</Example>
<p>
Definisce <b>parole chiave</b> da cercare all'interno dei documenti.
</p>
<p>
In esse, è possibile cercare <b>molteplici</b> parole chiave, <b>concatenarle</b> per formare una <b>frase</b> oppure cercare parole a una data <b>prossimità</b> l'una dall'altra.
</p>
<p>
Spesso processa il linguaggio naturale per trasformarne le parole specifiche in parole chiave più generiche.
</p>
<Example>
Cercando su Telegram un plurale inglese, verranno restituiti anche i messaggi che riportano la stessa parola ma al singolare.
</Example>
</Panel>
<Panel title={"Pattern-based query"}>
<Example>
Le <Link href={"https://regex101.com/"}>regex</Link> e i <Link href={"https://en.wikipedia.org/wiki/Glob_(programming)"}>glob</Link> sono due dei pattern-based query languages più comuni.
</Example>
<p>
Definisce <b>parti di testo</b> da cercare all'interno dei documenti.
</p>
<p>
Permettono dunque la ricerca di <b>prefissi</b>, <b>suffissi</b>, <b>sottostringhe</b> e <b>intervalli</b>.
</p>
</Panel>
</Section>
<Section>
<Panel title={"Boolean query"}>
<Example>
<Link href={"https://www.google.it/"}>Google</Link>, <Link href={"https://duckduckgo.com/"}>DuckDuckGo</Link>, <Link href={"https://www.ecosia.org/"}>Ecosia</Link> usano tutti un linguaggio di query keyword-based booleano.
</Example>
<p>
<b>Estendono</b> gli altri tipi di query permettendo l'inserimento di <b>operatori booleani</b> (<code>AND</code>, <code>OR</code> e <code>NOT</code>) tra le parole chiave.
</p>
<Example>
Per esempi sulla sintassi per effettuare ricerche booleane su Google, visita <Link href={"https://www.google.it/advanced_search"}>Google Advanced Search</Link>.
</Example>
</Panel>
<Panel title={"Structural query"}>
<Example>
<Link href={"https://books.google.com/advanced_book_search"}>Google Books</Link> permette di sfruttare la struttura fissa delle informazioni sui libri (titolo, autore, editore...) per ottenere risultati più precisi.,
</Example>
<p>
Permettono di effettuare i precedenti tipi di query su <b>specifiche parti della struttura</b> dei documenti.
</p>
</Panel>
<Panel title={"Concept-based query"}>
<Example>
<Link href={"https://www.ncbi.nlm.nih.gov/mesh"}>MeSH</Link> cataloga i paper di medicina caricati su PubMed organizzandoli in una gerarchia di categorie.
</Example>
<p>
Limitano le keyword a un <b>vocabolario predefinito</b> utilizzato anche dai documenti.
</p>
</Panel>
</Section>
</Fragment>
)
}

View file

@ -18,11 +18,14 @@ export default function () {
<Section> <Section>
<Panel title={"1. Analisi lessicale"}> <Panel title={"1. Analisi lessicale"}>
<p> <p>
Passo che trasforma il documento in una <b>lista</b> (<i>bag of words</i>) di <b>parole</b> (<i>token</i>). Passo che trasforma il documento in un <b>insieme di parole</b> (<i>token</i>).
</p> </p>
<p> <p>
Deve decidere come considerare i <b>simboli tipografici</b>, il <b>case</b> delle lettere e le <b>cifre</b>. Deve decidere come considerare i <b>simboli tipografici</b>, il <b>case</b> delle lettere e le <b>cifre</b>.
</p> </p>
<p>
Inoltre, è possibile che disambigui tra i vari significati delle parole (<i>word sense disambiguation</i>).
</p>
</Panel> </Panel>
<Panel title={"2. Eliminazione delle stopwords"}> <Panel title={"2. Eliminazione delle stopwords"}>
<p> <p>
@ -63,20 +66,6 @@ export default function () {
</aside> </aside>
</Panel> </Panel>
</Section> </Section>
<Section title={"Similitudine tra parole"}>
<ToBeContinued/>
<Panel title={"Cos'è?"}>
<p>
Misura di quanto due parole abbiano <b>caratteristiche in comune</b>.
</p>
<p>
È simile alla <i>sinonimia tra parole</i>
</p>
<p>
È diversa dalla <i>correlazione tra parole</i>, che misura quanto due parole vengono
</p>
</Panel>
</Section>
</Fragment> </Fragment>
) )
} }

View file

@ -0,0 +1,27 @@
import {Fragment} from "preact";
import {Section, Panel, ILatex, BLatex, PLatex, Todo} from "bluelib";
import Example from "../../components/Example";
import Link from "../../components/Link";
const r = String.raw;
export default function () {
return (
<Fragment>
<Section title={"Thesaurus"}>
<Panel title={"Cos'è?"}>
<p>
Un <b>albero di token</b> organizzati in una gerarchia di significato.
</p>
<Example>
Il token "mela" avrà come genitore "frutto" e come figli <Link href={"https://it.wikipedia.org/wiki/Renetta"}>"Renetta"</Link>, <Link href={"https://it.wikipedia.org/wiki/Fuji_(mela)"}>"Fuji"</Link> e <Link href={"https://it.wikipedia.org/wiki/Granny_Smith"}>"Granny Smith"</Link>.
</Example>
<Example>
<Link href={"https://wordnet.princeton.edu/"}>WordNet</Link> è un thesaurus generale per la lingua inglese, mentre <Link href={"https://thes.bncf.firenze.sbn.it/thes-dati.htm"}>Nuovo soggettario</Link> è un thesaurus generale per la lingua italiana.
</Example>
</Panel>
</Section>
</Fragment>
)
}

View file

@ -0,0 +1,33 @@
import {Fragment} from "preact";
import {Section, Panel, ILatex, BLatex, PLatex} from "bluelib";
const r = String.raw;
export default function () {
return (
<Fragment>
<Section title={"Un approccio probabilistico"}>
<Panel title={"Probabilità dei token"}>
<p>
Un supplemento al thesaurus specifico a un certo testo: aggiunge ad ogni token <ILatex>{r`c`}</ILatex> la <b>probabilità</b> <ILatex>{r`P(c)`}</ILatex> che un <b>termine selezionato a caso del testo appartenga al sottoalbero</b> formato dal token e i suoi discendenti.
</p>
<p>
La radice del thesaurus ha sempre probabilità <ILatex>{r`1`}</ILatex>.
</p>
</Panel>
<Panel title={"Information content"}>
<p>
Una misura <b>probabilistica</b> di quanto un certo token <ILatex>{r`c`}</ILatex> sia <b>specifico</b> in un certo contesto:
</p>
<PLatex>{r`
IC(c) = - \log \left( P(c) \right)
`}</PLatex>
<p>
È anche detta <i>sorpresa</i> o <i>informazione di Shannon</i>.
</p>
</Panel>
</Section>
</Fragment>
)
}

View file

@ -0,0 +1,22 @@
import {Fragment} from "preact";
import {Section, Panel, ILatex, BLatex, PLatex} from "bluelib";
const r = String.raw;
export default function () {
return (
<Fragment>
<Section title={"Analisi lessicale"}>
<Panel title={"Word sense disambiguation"}>
<p>
Procedura che <b>disambigua tra più significati</b> dello stesso token.
</p>
<p>
Si può realizzare confrontando la somiglianza di ogni significato con tutti gli altri nomi presenti nella frase.
</p>
</Panel>
</Section>
</Fragment>
)
}

View file

@ -1,6 +1,11 @@
import Intro from "./00_Intro"; import Intro from "./00_Intro";
import InformationRetrieval from "./01_InformationRetrival"; import InformationRetrieval from "./01_InformationRetrival";
import DocumentProcessing from "./02_DocumentProcessing"; import Similarity from "./02_Similarity";
import Queries from "./03_Queries";
import DocumentProcessing from "./04_DocumentProcessing";
import Thesaurus from "./05_Thesaurus";
import InformationContent from "./06_InformationContent";
import AnalisiLessicale from "./07_AnalisiLessicale";
export default function () { export default function () {
@ -9,7 +14,12 @@ export default function () {
<h1>Gestione dell'informazione</h1> <h1>Gestione dell'informazione</h1>
<Intro/> <Intro/>
<InformationRetrieval/> <InformationRetrieval/>
<Queries/>
<DocumentProcessing/> <DocumentProcessing/>
<Thesaurus/>
<InformationContent/>
<Similarity/>
<AnalisiLessicale/>
</div> </div>
) )
} }