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

Create indexing

This commit is contained in:
Steffo 2020-11-17 19:08:29 +01:00
parent 81daee21c1
commit 70602ee3b2
3 changed files with 94 additions and 14 deletions

View file

@ -29,13 +29,6 @@ export default function (props) {
</li>
</ul>
</Panel>
<Panel title={"Appelli"}>
<ol>
<li><Timer to={"2020-06-24"}/></li>
<li><Timer to={"2020-07-09"}/></li>
<li><Timer to={"2020-07-28"}/></li>
</ol>
</Panel>
</Section>
<Section>
<Panel title={"Progetto"}>
@ -47,13 +40,6 @@ export default function (props) {
Va consegnato via mail almeno 10 giorni prima dello scritto.
</p>
</Panel>
<Panel title={"Termini di consegna"}>
<ol>
<li><Timer to={"2020-06-14"}/></li>
<li><Timer to={"2020-06-30"}/></li>
<li><Timer to={"2020-07-18"}/></li>
</ol>
</Panel>
</Section>
<Section title={"Visualizzazioni utili"}>
<Panel title={"B+ Tree"}>

View file

@ -0,0 +1,92 @@
import {Fragment} from "preact";
import {Section, Panel, ILatex, BLatex, PLatex, Code, BaseLink} from "bluelib";
import Example from "../../components/Example";
import Link from "../../components/Link";
const r = String.raw;
export default function () {
return (
<Fragment>
<Section title={"Indicizzazione"}>
<Panel title={"Inverted index"}>
<p>
Una <b>struttura dati</b> che permette di velocizzare le ricerche su testi <b>grandi</b> e <b>semi-statici</b>.
</p>
<aside>
<u>Testo semi-statico</u>: un testo che viene aggiornato raramente.
</aside>
<p>
Si crea un <i>vocabolario</i> dall'<b>insieme dei token</b>, e ad ogni <b>token</b> del vocabolario si associa una <b>lista di tutte le sue occorrenze</b> (<i>posting list</i>).
</p>
<p>
L'efficacia ed efficienza dell'indice dipendono dalle <i>strutture di indicizzazione</i> utilizzate per serializzarlo.
</p>
</Panel>
</Section>
<Section title={"Strutture di indicizzazione"}>
<Panel title={"Sorted array"}>
<p>
Struttura per rappresentare il vocabolario basata su un <b>array di puntatori</b> alle posting list.
</p>
<Code>{r`
ciao R1, R15, R123
steffo R1, R14
ciano R1231
`}</Code>
</Panel>
<Panel title={"Trie"}>
<p>
Struttura per rappresentare il vocabolario basata su un <b>albero dei prefissi dei token</b>,:
</p>
<ul>
<li>ogni arco corrisponde a <b>una lettera del prefisso</b>;</li>
<li>ogni foglia corrisponde a <b>un token</b> e contiene un puntatore alla sua <b>posting list</b>.</li>
</ul>
<Code>{r`
- [root]
- c
- i
- a
- o
- R1
- R15
- R123
- no
- R1231
- steffo
- R1
- R14
`}</Code>
</Panel>
<Panel title={"B+ tree"}>
<p>
Struttura per rappresentare il vocabolario che <b>occupa più spazio di un albero</b> ma permette di effettuare <b>certe operazioni più velocemente</b>.
</p>
<Example>
<Link href={"https://www.cs.usfca.edu/~galles/visualization/BPlusTree.html"}>Visualizzazione di un B+ tree</Link>
</Example>
<Example>
L'abbiamo fatta in <BaseLink href={"/basididati"}>Basi di dati</BaseLink>!
</Example>
</Panel>
</Section>
<Section title={"Utilizzo dell'indice"}>
<Panel title={"Passi"}>
<ol>
<li><u>Vocabulary search</u>: si cercano <b>individualmente</b> i termini della query nel vocabolario</li>
<li><u>Occurences retrieval</u>: si <b>raccolgono le posting list</b> dei vari termini</li>
<li><u>Occurences manipulation</u>: si manipolano i dati delle posting list in modo da risolvere le query, restituendo quindi un <b>sottoinsieme delle occorrenze</b></li>
</ol>
<p>
In base alla struttura utilizzata, potrebbe non essere sempre possibile effettuare il terzo passo.
</p>
<Example>
Non è possibile cercare prefissi se è stato utilizzato l'hashing!
</Example>
</Panel>
</Section>
</Fragment>
)
}

View file

@ -6,6 +6,7 @@ import DocumentProcessing from "./04_DocumentProcessing";
import Thesaurus from "./05_Thesaurus";
import InformationContent from "./06_InformationContent";
import AnalisiLessicale from "./07_AnalisiLessicale";
import Indexing from "./08_Indexing";
export default function () {
@ -20,6 +21,7 @@ export default function () {
<InformationContent/>
<Similarity/>
<AnalisiLessicale/>
<Indexing/>
</div>
)
}