mirror of
https://github.com/Steffo99/unisteffo.git
synced 2024-11-26 09:54:19 +00:00
❓ Idr what i did
This commit is contained in:
parent
6080e245fb
commit
4f66018538
3 changed files with 109 additions and 46 deletions
|
@ -1,14 +1,29 @@
|
|||
import React from "react";
|
||||
import PropTypes from "prop-types";
|
||||
import style from "./Token.module.css";
|
||||
import {Bold, Strike, Color} from "bluelib/lib/components";
|
||||
|
||||
|
||||
export default function Token({children}) {
|
||||
export default function Token({children, indexTerm, stopword}) {
|
||||
if(indexTerm) {
|
||||
return (
|
||||
<Bold><Color value={"yellow"}><span className={style.token}>{children}</span></Color></Bold>
|
||||
)
|
||||
}
|
||||
|
||||
if(stopword) {
|
||||
return (
|
||||
<Strike><Color value={"red"}><span className={style.token}>{children}</span></Color></Strike>
|
||||
)
|
||||
}
|
||||
|
||||
return (
|
||||
<span className={style.token}>{children}</span>
|
||||
)
|
||||
}
|
||||
|
||||
Token.propTypes = {
|
||||
children: PropTypes.node
|
||||
children: PropTypes.node,
|
||||
indexTerm: PropTypes.bool,
|
||||
stopword: PropTypes.bool,
|
||||
}
|
||||
|
|
|
@ -2,4 +2,5 @@
|
|||
border: 1px currentColor solid;
|
||||
border-radius: 2px;
|
||||
padding: 2px;
|
||||
}
|
||||
line-height: 2em;
|
||||
}
|
||||
|
|
|
@ -32,7 +32,7 @@ export default function Gestinfo() {
|
|||
</P>
|
||||
</TitleBox>
|
||||
</Split>
|
||||
<TitleSplit title={"L'Information Retrieval"}>
|
||||
<TitleSplit title={"Information Retrieval"}>
|
||||
<TitleBox title={"Cos'è?"}>
|
||||
<P>
|
||||
È il <B>processo</B> di <B>raccolta documenti</B>, <B>elaborazione query</B> e <B>richiamo di più risposte</B>.
|
||||
|
@ -101,31 +101,69 @@ export default function Gestinfo() {
|
|||
<P>
|
||||
Tutte le parole del documento vengono trasformate in <B>token</B>.
|
||||
</P>
|
||||
<P>
|
||||
Il motore di ricerca decide se considerare come parte dei token i <B>simboli</B> tipografici, la <B><Help text={"Quello che in inglese si chiama 'case'. Sono grafie il maiuscolo, il minuscolo, il corsivo..."}>grafia</Help></B> delle lettere, le <B>cifre</B>...
|
||||
</P>
|
||||
<Aside>
|
||||
Basi di Dati → <Token>Basi</Token> <Token>di</Token> <Token>Dati</Token>
|
||||
</Aside>
|
||||
<P>
|
||||
Spesso si decide di <B>distinguere</B> tra gli <B><Help text={"Parole che si leggono e scrivono uguale ma significano cose diverse."}>ononimi</Help></B> attraverso algoritmi di <B><I>word sense disambiguation</I></B>, in grado di dedurre il contesto analizzando i significati delle parole circostanti.
|
||||
</P>
|
||||
<Aside>
|
||||
<Token>sale 🧂</Token> oppure <Token>sale 🪜</Token> ?
|
||||
<Token>Sale 🧂</Token> oppure <Token>Sale 🪜</Token>?
|
||||
</Aside>
|
||||
</TitleBox>
|
||||
<TitleBox title={"2. Eliminazione delle stopwords"}>
|
||||
<TitleBox title={"2. Normalizzazione dei token"}>
|
||||
<P>
|
||||
Il motore di ricerca decide come trattare i <B>simboli</B> tipografici, la <B><Help text={"Quello che in inglese si chiama 'case'. Sono grafie il maiuscolo, il minuscolo, il corsivo..."}>grafia</Help></B> delle lettere, le <B>cifre</B>, modificando l'insieme di token come ritiene necessario.
|
||||
</P>
|
||||
<Aside>
|
||||
<P>
|
||||
Alcune possibili modifiche:
|
||||
</P>
|
||||
<ul>
|
||||
<LI>
|
||||
Rimozione degli accenti
|
||||
<Aside>
|
||||
<Token>caffè</Token> → <Token>caffe</Token>
|
||||
</Aside>
|
||||
</LI>
|
||||
<LI>
|
||||
Trasformazione in minuscolo
|
||||
<Aside>
|
||||
<Token>Basi</Token> <Token>di</Token> <Token>Dati</Token> → <Token>basi</Token> <Token>di</Token> <Token>dati</Token>
|
||||
</Aside>
|
||||
</LI>
|
||||
<LI>
|
||||
Separazione dei trattini
|
||||
<Aside>
|
||||
<Token>state-of-the-art</Token> → <Token>state</Token> <Token>of</Token> <Token>the</Token> <Token>art</Token>
|
||||
</Aside>
|
||||
</LI>
|
||||
</ul>
|
||||
</Aside>
|
||||
</TitleBox>
|
||||
<TitleBox title={"3. Eliminazione delle stopwords"}>
|
||||
<P>
|
||||
Le <I>stopwords</I>, i token ritenuti <B>inutili</B> ai fini delle ricerche, vengono <B>eliminate</B> dall'insieme di token ottenuto nel passo precedente.
|
||||
</P>
|
||||
<P>
|
||||
Stopwords comuni sono gli <B><Help text={"Il, lo, la, un, una..."}>articoli</Help></B>, le <B><Help text={"E, perchè, ma, così..."}>congiunzioni</Help></B> e tutte le <B>parole più frequenti</B> di una lingua.
|
||||
Stopwords comuni sono gli <B><Help text={"Il, lo, la, un, una..."}>articoli</Help></B>, le <B><Help text={"E, perchè, ma, così..."}>congiunzioni</Help></B> e, in generale, tutte le <B>parole più frequenti</B> di una lingua.
|
||||
</P>
|
||||
<Aside>
|
||||
<Token>basi</Token> <Token stopword={true}>di</Token> <Token>dati</Token>
|
||||
</Aside>
|
||||
<P>
|
||||
Talvolta capita di dover <B>distinguere</B> tra stopwords e <B>nomi propri</B>, soprattutto nell'inglese; per risolvere il problema ci si affida alla disambiguazione degli ononimi effettuata durante l'analisi lessicale.
|
||||
</P>
|
||||
<Aside>
|
||||
La band <Anchor href={"https://en.wikipedia.org/wiki/The_Who"}>The Who</Anchor> è l'incubo dei motori di ricerca che eliminano indiscriminatamente le stopwords.
|
||||
La band <Anchor href={"https://en.wikipedia.org/wiki/The_Who"}>The Who</Anchor> è l'incubo dei motori di ricerca che eliminano indiscriminatamente le stopwords:
|
||||
<Aside>
|
||||
<Token stopword={true}>The</Token> <Token stopword={true}>Who</Token>
|
||||
</Aside>
|
||||
</Aside>
|
||||
</TitleBox>
|
||||
<TitleBox title={"3. Stemming / Lemmatizzazione"}>
|
||||
</Split>
|
||||
<Split>
|
||||
<TitleBox title={"4. Stemming / Lemmatizzazione"}>
|
||||
<P>
|
||||
Ai token del passo precedente vengono sostituite le <B>radici</B> (<I>stems</I>) oppure le <B>forme base</B> (<I>lemmas</I>) delle parole.
|
||||
</P>
|
||||
|
@ -161,47 +199,56 @@ export default function Gestinfo() {
|
|||
Generalmente sono implementati tramite <Help text={"Dizionari che associano ogni parola alla sua forma base."}>lookup tables</Help>, ma i motori di ricerca più avanzati <Anchor href={"https://en.wikipedia.org/wiki/Stemming#Algorithms"}>possono avere implementazioni anche più complesse</Anchor>.
|
||||
</Aside>
|
||||
</TitleBox>
|
||||
</Split>
|
||||
<Split>
|
||||
<TitleBox title={"4. Normalizzazione dei token"}>
|
||||
<P>
|
||||
I <B>simboli</B> rimasti nei token vengono processati, sostituendoli con caratteri diversi oppure sdoppiando i token in diverse forme.
|
||||
</P>
|
||||
<Aside>
|
||||
<P>
|
||||
Alcune delle operazioni che possono essere effettuate sono:
|
||||
</P>
|
||||
<ul>
|
||||
<LI>
|
||||
Rimozione degli accenti
|
||||
<Aside>
|
||||
<Token>caffè</Token> → <Token>caffe</Token>
|
||||
</Aside>
|
||||
</LI>
|
||||
<LI>
|
||||
Separazione dei trattini
|
||||
<Aside>
|
||||
<Token>state-of-the-art</Token> → <Token>state</Token> <Token>of</Token> <Token>the</Token> <Token>art</Token>
|
||||
</Aside>
|
||||
</LI>
|
||||
<LI>
|
||||
Rimozione della punteggiatura
|
||||
<Aside>
|
||||
<Token>2020 d.c.</Token> → <Token>2020dc</Token>
|
||||
</Aside>
|
||||
</LI>
|
||||
</ul>
|
||||
</Aside>
|
||||
</TitleBox>
|
||||
<TitleBox title={"5. Selezione degli index term"}>
|
||||
<P>
|
||||
|
||||
Il motore di ricerca stabilisce la <B>relativa importanza</B> di ciascun token dell'insieme, in modo da determinare più facilmente in seguito la rilevanza del documento in cui si trovano.
|
||||
</P>
|
||||
<P>
|
||||
I termini più importanti di un documento sono detti <B><I>index term</I></B>.
|
||||
</P>
|
||||
<Aside>
|
||||
<Token>appunti</Token> <Token>universitari</Token> → <Token indexTerm={true}>appunti</Token> <Token>universitari</Token>
|
||||
</Aside>
|
||||
<P>
|
||||
Essi solitamente sono individuati da <B><I>parser</I></B> e <B><I>scanner</I></B>, che analizzano la semantica di ciascun token.
|
||||
</P>
|
||||
</TitleBox>
|
||||
<TitleBox title={"6. Categorizzazione"}>
|
||||
<P>
|
||||
|
||||
Opzionalmente, l'intero documento può essere inserito in una o più <B>categorie</B> di un <B><I>thesaurus</I></B>, una gerarchia predeterminata di categorie di documenti.
|
||||
</P>
|
||||
<Aside>
|
||||
Un esempio di thesaurus per delle sculture:
|
||||
<ul>
|
||||
<LI>
|
||||
Materiale
|
||||
<ul>
|
||||
<LI>
|
||||
Legno
|
||||
<ul>
|
||||
<LI>Pino</LI>
|
||||
<LI>Betulla</LI>
|
||||
<LI>Mogano</LI>
|
||||
</ul>
|
||||
</LI>
|
||||
<LI>
|
||||
Pietra
|
||||
</LI>
|
||||
</ul>
|
||||
</LI>
|
||||
<LI>
|
||||
Forma
|
||||
<ul>
|
||||
<LI>Cubica</LI>
|
||||
<LI>Sferica</LI>
|
||||
<LI>Umanoide</LI>
|
||||
</ul>
|
||||
</LI>
|
||||
</ul>
|
||||
</Aside>
|
||||
<Aside>
|
||||
Un (simil-)thesaurus generale per l'inglese è <Anchor href={"https://wordnet.princeton.edu/"}>WordNet</Anchor>, mentre uno per l'italiano è <Anchor href={"https://thes.bncf.firenze.sbn.it/thes-dati.htm"}>Nuovo soggettario</Anchor>.
|
||||
</Aside>
|
||||
</TitleBox>
|
||||
</Split>
|
||||
</Page>
|
||||
|
|
Loading…
Reference in a new issue