mirror of
https://github.com/Steffo99/unisteffo.git
synced 2025-02-16 15:53:58 +00:00
💥 Add Apprendimento
This commit is contained in:
parent
2cf36f46e5
commit
7c98a1af0e
11 changed files with 1284 additions and 378 deletions
|
@ -7,6 +7,7 @@ import Gestinfo from "./routes/Gestinfo"
|
|||
import style from "./App.module.css"
|
||||
import Footer from "./components/Footer"
|
||||
import Fisica from "./routes/Fisica"
|
||||
import Apprendimento from "./routes/Apprendimento"
|
||||
|
||||
|
||||
export default function App() {
|
||||
|
@ -28,6 +29,9 @@ export default function App() {
|
|||
<Route path={"/fisica"}>
|
||||
<Fisica/>
|
||||
</Route>
|
||||
<Route path={"/apprendimento"}>
|
||||
<Apprendimento/>
|
||||
</Route>
|
||||
<Route path={"*"}>
|
||||
<Error404/>
|
||||
</Route>
|
||||
|
|
|
@ -13,7 +13,8 @@ export default function Footer() {
|
|||
<Anchor href="https://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA 4.0</Anchor>
|
||||
-
|
||||
<Anchor
|
||||
href="https://github.com/Steffo99/uni.steffo.eu">{process.env.REACT_APP_NAME} {process.env.REACT_APP_VERSION} ({process.env.NODE_ENV})</Anchor>
|
||||
href="https://github.com/Steffo99/uni.steffo.eu"
|
||||
>{process.env.REACT_APP_NAME} {process.env.REACT_APP_VERSION} ({process.env.NODE_ENV})</Anchor>
|
||||
-
|
||||
<Anchor href="https://ko-fi.com/steffo">Supportami</Anchor>
|
||||
</Title>
|
||||
|
|
814
src/routes/Apprendimento/index.js
Normal file
814
src/routes/Apprendimento/index.js
Normal file
|
@ -0,0 +1,814 @@
|
|||
import {
|
||||
Anchor as Link,
|
||||
Color,
|
||||
Help,
|
||||
Paragraph as P,
|
||||
Bold as B,
|
||||
Italic as I,
|
||||
Title,
|
||||
Anchor, ListItem as LI, BaseLink,
|
||||
} from "bluelib/lib/components"
|
||||
import LatexMath from "bluelib/lib/components/LatexMath"
|
||||
|
||||
import Box, { default as Panel } from "../../components/Box"
|
||||
import Split, { default as Section } from "../../components/Split"
|
||||
import Todo from "../../components/Todo"
|
||||
|
||||
|
||||
const r = String.raw
|
||||
|
||||
const BLatex = ({ children, ...props }) => <LatexMath {...props} block={true}>{children}</LatexMath>
|
||||
const ILatex = ({ children, ...props }) => <LatexMath {...props} block={false}>{children}</LatexMath>
|
||||
const PLatex = ({ children, ...props }) => <BLatex style={{marginTop: "8px", marginBottom: "8px"}} {...props}>{children}</BLatex>
|
||||
const Example = ({ children, ...props }) => <Color builtin={"magenta"}><Panel {...props}>{children}</Panel></Color>
|
||||
const Tick = ({children}) => <Help text={"Un quanto di tempo del sistema."}>{children ?? "tick"}</Help>
|
||||
|
||||
|
||||
export default function Apprendimento() {
|
||||
return (
|
||||
<div>
|
||||
<Split title={"Apprendimento ed evoluzione in sistemi artificiali"}>
|
||||
<Box title={"Di cosa si tratta?"}>
|
||||
<P>
|
||||
<Todo>Questa parte non è ancora stata scritta.</Todo>
|
||||
</P>
|
||||
</Box>
|
||||
<Box title={"Il corso all'Unimore"}>
|
||||
<P>
|
||||
🎓 Il corso è stato tenuto dal <Anchor href={"mailto:marco.villani@unimore.it"}>Prof. Marco Villani</Anchor>.
|
||||
</P>
|
||||
<P>
|
||||
📘 Le dispense <Color builtin={"red"}>non sono più disponibili</Color>.
|
||||
</P>
|
||||
<P>
|
||||
🎥 Le videolezioni <Color builtin={"red"}>non sono più disponibili</Color>.
|
||||
</P>
|
||||
</Box>
|
||||
<Box title={"Materiale utilizzato"}>
|
||||
<ul>
|
||||
<LI><BaseLink disabled={true}>📄 Dispense</BaseLink></LI>
|
||||
<LI><Anchor href={"https://www.wikipedia.org/"}>📰 Wikipedia</Anchor></LI>
|
||||
</ul>
|
||||
</Box>
|
||||
</Split>
|
||||
<Section title={"NetLogo"}>
|
||||
<Panel title={"Cos'è?"}>
|
||||
<P>
|
||||
NetLogo è un software di modellazione sistemi multiagente, da noi usato per le lezioni di
|
||||
laboratorio.
|
||||
</P>
|
||||
<P>
|
||||
Si può <Anchor href={"https://ccl.northwestern.edu/netlogo/download.shtml"}>scaricare</Anchor> o <Anchor
|
||||
href={"https://www.netlogoweb.org/launch"}
|
||||
>usare da browser</Anchor>.
|
||||
</P>
|
||||
<P>
|
||||
Il suo codice sorgente è disponibile su <Anchor
|
||||
href={"https://github.com/NetLogo/NetLogo"}
|
||||
>GitHub</Anchor>, e ha una pagina di <Anchor
|
||||
href={"https://ccl.northwestern.edu/netlogo/docs/dictionary.html"}
|
||||
>documentazione</Anchor>.
|
||||
</P>
|
||||
</Panel>
|
||||
</Section>
|
||||
<Section title={"Sistemi dinamici"}>
|
||||
<Panel title={"Cosa sono?"}>
|
||||
<P>
|
||||
Sistemi naturali o artificiali che si basano su <B>leggi reversibili e deterministiche</B>.
|
||||
</P>
|
||||
<P>
|
||||
In natura, alcuni leggi possono sembrare irreversibili a livello macroscopico, ma sono in realtà
|
||||
reversibili a livello microscopico.
|
||||
</P>
|
||||
<Example>
|
||||
<Anchor href={"https://it.wikipedia.org/wiki/Modello_di_Ehrenfest"}><u>Urne di Ehrenfest</u></Anchor>:
|
||||
due urne con N palline; estraggo una pallina da una urna casuale ad ogni passo e la sposto
|
||||
nell'altra; con tante palline il sistema appare irreversibile.
|
||||
</Example>
|
||||
</Panel>
|
||||
<Panel title={"Fasi"}>
|
||||
<P>
|
||||
<B>Stati</B> in cui si può trovare un sistema dinamico.
|
||||
</P>
|
||||
<P>
|
||||
Tutte insieme formano lo <I>(iper)<B>spazio delle fasi</B></I>.
|
||||
</P>
|
||||
</Panel>
|
||||
<Panel title={"Attrattore"}>
|
||||
<P>
|
||||
Lo <B>stato finale</B> di un sistema dinamico.
|
||||
</P>
|
||||
<P>
|
||||
Tutte le fasi tendono a uno specifico attrattore.
|
||||
</P>
|
||||
</Panel>
|
||||
<Panel title={"Elaborazione di informazione"}>
|
||||
<P>
|
||||
I sistemi dinamici <B>elaborano informazione</B> attraversando fasi e raggiungendo un
|
||||
attrattore.
|
||||
</P>
|
||||
<Example>
|
||||
L'evoluzione biologica crea nuove specie partendo da quelle precedenti di maggiore successo fino
|
||||
a quando non si raggiunge la specie perfetta.
|
||||
</Example>
|
||||
<Example>
|
||||
Si può vedere l'universo come un gigantesco sistema dinamico. <Anchor
|
||||
href={"https://it.wikipedia.org/wiki/Ipotesi_della_simulazione"}
|
||||
>Che sia artificiale?</Anchor> <Anchor
|
||||
href={"https://it.wikipedia.org/wiki/Morte_termica_dell%27universo"}
|
||||
>Qual è il suo
|
||||
attrattore?</Anchor>
|
||||
</Example>
|
||||
</Panel>
|
||||
</Section>
|
||||
<Section title={"Sistemi lineari"}>
|
||||
<Panel title={"Cosa sono?"}>
|
||||
<P>
|
||||
Sistemi dinamici i cui cambiamenti sono descritti da <B>funzioni lineari</B>.
|
||||
</P>
|
||||
</Panel>
|
||||
<Panel title={"Nodi"}>
|
||||
<P>
|
||||
<B>Situazioni iniziali</B> di un sistema lineare.
|
||||
</P>
|
||||
<P>
|
||||
Possono essere:
|
||||
</P>
|
||||
<ul>
|
||||
<LI><u>Stabili</u>: <B>convergono</B> ad un punto fisso</LI>
|
||||
<LI><u>Instabili</u>: <B>divergono</B> da un punto fisso</LI>
|
||||
<LI><Anchor href={"https://it.wikipedia.org/wiki/Punto_di_sella"}><u>Di sella</u></Anchor></LI>
|
||||
</ul>
|
||||
<P>
|
||||
Nell'insieme dei <ILatex>{r`\mathbb{C}`}</ILatex> possono anche dare origine a:
|
||||
</P>
|
||||
<ul>
|
||||
<LI><u>Spirali stabili</u>: spirali che <B>convergono</B></LI>
|
||||
<LI><u>Spirali instabili</u>: spirali che <B>divergono</B></LI>
|
||||
<LI><u>Cicli</u>: il sistema forma un ciclo diverso in base alla posizione del nodo</LI>
|
||||
<LI><u>Cicli limite</u>: il sistema evolve fino a formare un ciclo specifico</LI>
|
||||
</ul>
|
||||
<P>
|
||||
Infine, in sistemi dissipativi può anche comparire:
|
||||
</P>
|
||||
<ul>
|
||||
<LI><u>Caos</u>: il sistema evolve in maniera pseudo-casuale</LI>
|
||||
</ul>
|
||||
<Example>
|
||||
Mai sentito parlare di <Anchor href={"https://en.wikipedia.org/wiki/Mersenne_Twister"}>Mersenne
|
||||
Twister</Anchor>?
|
||||
</Example>
|
||||
</Panel>
|
||||
<Panel title={"Potenziale"}>
|
||||
<P>
|
||||
Funzione che rappresenta lo stato attuale del sistema.
|
||||
</P>
|
||||
<P>
|
||||
Gli attrattori coincidono con i suoi <B>punti di minimo</B>, detti <I>punti fissi</I>.
|
||||
</P>
|
||||
<P>
|
||||
Il suo complementare è la <B>funzione energia</B>.
|
||||
</P>
|
||||
</Panel>
|
||||
</Section>
|
||||
<Section title={"Agenti"}>
|
||||
<Panel title={"Secondo il paradigma debole"}>
|
||||
<P>
|
||||
Sono <B>sistemi</B> con le seguenti caratteristiche:
|
||||
</P>
|
||||
<ul>
|
||||
<LI><B>Autonomia</B>: agiscono gli uni indipendentemente dagli altri</LI>
|
||||
<LI><B>Reattività</B>: percepiscono ciò che sta nel loro ambiente e <I>reagiscono</I> ai
|
||||
cambiamenti di quest'ultimo
|
||||
</LI>
|
||||
<LI><B>Proattività</B>: agiscono in maniera tale da portare a termine i loro obiettivi</LI>
|
||||
<LI><B>Socialità</B>: comunicano con gli altri agenti, scambiando informazioni</LI>
|
||||
</ul>
|
||||
</Panel>
|
||||
<Panel title={"Secondo il paradigma forte"}>
|
||||
<P>
|
||||
Hanno anche caratteristiche di <B>livello più alto</B> derivate dalle quattro precedenti:
|
||||
</P>
|
||||
<ul>
|
||||
<LI>Conoscenza</LI>
|
||||
<LI>Intenzioni</LI>
|
||||
<LI>Emozioni</LI>
|
||||
<LI>Obblighi</LI>
|
||||
<LI>Obiettivi</LI>
|
||||
<LI>etc...</LI>
|
||||
</ul>
|
||||
<Example>
|
||||
Gli umani possono benissimo essere considerati agenti del sistema universo.
|
||||
</Example>
|
||||
</Panel>
|
||||
<Panel title={"Caratteristiche aggiuntive"}>
|
||||
<P>
|
||||
Gli agenti si distinguono anche in:
|
||||
</P>
|
||||
<ul>
|
||||
<LI><B>Mobilità</B>: quanto e come possono muoversi nell'ambiente</LI>
|
||||
<LI>
|
||||
<B>Veridicità</B>: quanto producono informazioni corrette
|
||||
<Example>
|
||||
È possibile effettuare un attacco a un sistema introducendovi agenti maliziosi che
|
||||
producono intenzionalmente informazioni sbagliate!
|
||||
</Example>
|
||||
</LI>
|
||||
<LI>
|
||||
<B>Benevolenza</B>: quanto beneficiano gli altri delle loro azioni
|
||||
<Example>
|
||||
<u>Agenti malevoli</u>: ad esempio, troll in siti web<br/>
|
||||
<u>Agenti benevoli</u>: ad esempio, filtri che bannano i troll
|
||||
</Example>
|
||||
</LI>
|
||||
<LI>
|
||||
<B>Razionalità</B>: quanto le loro azioni sono coerenti con i loro obiettivi e lo stato
|
||||
dell'ambiente
|
||||
<Example>
|
||||
<u>Razionalità limitata</u>: gli agenti non conoscono completamente l'ambiente, e
|
||||
compiono le azioni che suppongono essere giuste
|
||||
</Example>
|
||||
</LI>
|
||||
</ul>
|
||||
</Panel>
|
||||
</Section>
|
||||
<Section title={"Benefici degli agenti"}>
|
||||
<Panel title={"Emergenza"}>
|
||||
<P>
|
||||
Lo sviluppo negli agenti di nuove capacità per cui non erano stati programmati.
|
||||
</P>
|
||||
<Example>
|
||||
Ad esempio, la Swarm Intelligence, descritta dopo!
|
||||
</Example>
|
||||
</Panel>
|
||||
</Section>
|
||||
<Section title={"Architetture di agente"}>
|
||||
<Panel title={"Classe"}>
|
||||
<P>
|
||||
Classificazione in base a <B>come prende le decisioni</B> un agente:
|
||||
</P>
|
||||
<ul>
|
||||
<LI><B>Logic-based</B>: prende le decisioni attraverso deduzioni <I>logiche</I></LI>
|
||||
<LI><B>Reactive</B>: mappa una <I>reazione</I> a ogni situazione dell'ambiente</LI>
|
||||
<LI><B>Belief-desire-intention</B>: per decidere, considera le proprie <I>assunzioni sul
|
||||
mondo</I> (<I>belief</I>), i propri <I>desideri</I> (<I>desire</I>) e le
|
||||
sue <I>intenzioni</I> correnti (<I>intention</I>)
|
||||
</LI>
|
||||
<LI><B>Layered</B>: utilizza diversi <I>strati</I> di capacità cognitive per giungere a una
|
||||
decisione
|
||||
</LI>
|
||||
</ul>
|
||||
</Panel>
|
||||
<Panel title={"Comportamento"}>
|
||||
<P>
|
||||
Classificazione in base a <B>come sono definiti gli obiettivi</B> di un agente:
|
||||
</P>
|
||||
<ul>
|
||||
<LI><B>Teleonomico</B>: gli obiettivi sono predefiniti ed espliciti</LI>
|
||||
<LI><B>Riflessivo</B>: l'agente è libero di scegliere il suo obiettivo in base alle proprie
|
||||
percezioni interne
|
||||
</LI>
|
||||
</ul>
|
||||
</Panel>
|
||||
<Panel title={"Conoscenze"}>
|
||||
<P>
|
||||
Classificazione in base a <B>quanto conosce dell'ambiente</B> un agente:
|
||||
</P>
|
||||
<ul>
|
||||
<LI><B>Cognitivo</B>: l'agente è immediatamente a conoscenza di <B>tutto l'ambiente</B></LI>
|
||||
<LI><B>Reattivo</B>: l'agente deve scoprire l'ambiente con le sue capacità sensoriali</LI>
|
||||
</ul>
|
||||
</Panel>
|
||||
</Section>
|
||||
<Section title={"Sistemi multi-agente"}>
|
||||
<Panel title={"Vantaggi"}>
|
||||
<ul>
|
||||
<LI><B>Distribuzione</B>: più agenti possono coprire aree di ambiente più vaste, o elaborare più
|
||||
in fretta zone più dense di informazione
|
||||
</LI>
|
||||
<LI><B>Rappresentazione</B>: i sistemi multi-agente modellano più accuratamente il mondo reale
|
||||
</LI>
|
||||
</ul>
|
||||
</Panel>
|
||||
<Panel title={"Feedback"}>
|
||||
<P>
|
||||
Influenza esercitata dal sistema sugli agenti per guidarli verso il loro obiettivo.
|
||||
</P>
|
||||
<P>
|
||||
Può essere:
|
||||
</P>
|
||||
<ul>
|
||||
<LI><B className={"lime"}>Positivo</B>: incentiva gli agenti ad avere un dato comportamento</LI>
|
||||
<LI><B className={"red"}>Negativo</B>: disincentiva gli agenti ad avere un dato comportamento</LI>
|
||||
</ul>
|
||||
</Panel>
|
||||
<Panel title={"Swarm intelligence"}>
|
||||
<P>
|
||||
Comportamento <B>emergente</B> che si manifesta nei sistemi multiagente con tantissimi agenti.
|
||||
</P>
|
||||
<P>
|
||||
Indica la capacità di risoluzione di problemi complessi attraverso la collaborazione di più
|
||||
agenti semplici.
|
||||
</P>
|
||||
</Panel>
|
||||
</Section>
|
||||
<Section title={"Evoluzione"}>
|
||||
<Panel title={"Algoritmi genetici"}>
|
||||
<P>
|
||||
Meccanismi simili a quelli evolutivi umani che permettono ai tratti degli agenti
|
||||
di <B>convergere</B> verso un valore.
|
||||
</P>
|
||||
</Panel>
|
||||
<Panel title={"Fitness"}>
|
||||
<P>
|
||||
Inizialmente definita come <B>numero di discendenti fertili</B>, solitamente indica quanto è
|
||||
probabile che i tratti di un individuo siano passati alla generazione successiva.
|
||||
</P>
|
||||
</Panel>
|
||||
<Panel title={"Cromosoma"}>
|
||||
<P>
|
||||
<B>Sequenza di valori</B> che definisce uno o più tratti di un individuo.
|
||||
</P>
|
||||
</Panel>
|
||||
<Panel title={"Popolazione"}>
|
||||
<P>
|
||||
Un <B>insieme di individui</B> aventi tutti gli stessi cromosomi.
|
||||
</P>
|
||||
</Panel>
|
||||
<Panel title={"Mutazione"}>
|
||||
<P>
|
||||
Fenomeno che causa una <B>piccola variazione casuale nei cromosomi</B> dei figli.
|
||||
</P>
|
||||
<P>
|
||||
Previene la <B>convergenza prematura</B> in un sistema.
|
||||
</P>
|
||||
</Panel>
|
||||
<Panel title={"Crossover"}>
|
||||
<P>
|
||||
Meccanismo di <B>costruzione dei cromosomi</B> in un figlio: i cromosomi dei genitori vengono
|
||||
tagliati nello stesso punto scelto a caso, e per costruire quelli del figlio viene presa una
|
||||
parte dal padre e l'altra parte dalla madre.
|
||||
</P>
|
||||
<P>
|
||||
Può portare al miglioramento di un individuo e allo sviluppo di nuovi tratti, ma solo nelle
|
||||
parti di cromosoma che sono diverse tra i due genitori.
|
||||
</P>
|
||||
</Panel>
|
||||
<Panel title={"Schema"}>
|
||||
<P>
|
||||
<B>Sequenza di valori</B> all'interno di un cromosoma, che può includere anche sezioni in cui il
|
||||
valore è <B>irrilevante</B>.
|
||||
</P>
|
||||
<P>
|
||||
Gli algoritmi genetici permettono di trovare gli schemi con la <B>fitness più alta in
|
||||
assoluto</B> in un tempo relativamente breve: il sistema <I>generalmente</I> favorisce gli
|
||||
schemi corti con fitness alta.
|
||||
</P>
|
||||
</Panel>
|
||||
<Panel title={"Convergenza prematura"}>
|
||||
<P>
|
||||
Situazione in cui si è raggiunta una soluzione non-ottimale a causa dell'assenza di novità nel
|
||||
sistema.
|
||||
</P>
|
||||
<P>
|
||||
Si può impedire con vari metodi: con la <B>mutazione</B>, introducendo <B>requisiti di
|
||||
località</B> per l'accoppiamento, scegliendo diversamente i genitori, etc...
|
||||
</P>
|
||||
</Panel>
|
||||
</Section>
|
||||
<Section title={"Sistema a classificatori"}>
|
||||
<Panel title={"Cosa sono?"}>
|
||||
<P>
|
||||
Programmi che dati tanti esempi sono in grado di classificare un elemento in una o più
|
||||
categorie.
|
||||
</P>
|
||||
<P>
|
||||
Sono formati da <I>classificatori</I>, liste
|
||||
di <I>messaggi</I>, <I>detettori</I> e <I>effettori</I>.
|
||||
</P>
|
||||
</Panel>
|
||||
</Section>
|
||||
<Section>
|
||||
<Panel title={"Classificatori"}>
|
||||
<P>
|
||||
Strutture logiche che <B>elaborano</B> i messaggi.
|
||||
</P>
|
||||
<P>
|
||||
Valutano una espressione logica (<I>condizione</I>) sui messaggi in arrivo, e se questa risulta
|
||||
essere vera, emettono un nuovo messaggio in risposta (<I>azione</I>).
|
||||
</P>
|
||||
<Example>
|
||||
Condizione e azione possono essere considerati come due cromosomi di un algoritmo genetico!
|
||||
</Example>
|
||||
</Panel>
|
||||
<Panel title={"Messaggi"}>
|
||||
<P>
|
||||
<B>Unità di informazione</B> di un sistema a classificatori:
|
||||
sono <B>generati</B> da <I>detettori</I> e <I>classificatori</I>,
|
||||
e <B>consumati</B> da <I>classificatori</I> ed <I>effettori</I>.
|
||||
</P>
|
||||
</Panel>
|
||||
<Panel title={"Detettori"}>
|
||||
<P>
|
||||
<B>Sensori</B> che percepiscono lo stato dell'ambiente esterno e lo riportano sotto forma
|
||||
di <I>messaggi</I>.
|
||||
</P>
|
||||
</Panel>
|
||||
<Panel title={"Effettori"}>
|
||||
<P>
|
||||
<B>Motori</B> che rispondono ai <I>messaggi</I> effettuando una qualche azione nell'ambiente.
|
||||
</P>
|
||||
</Panel>
|
||||
</Section>
|
||||
<Section>
|
||||
<Panel title={"Forza"}>
|
||||
<P>
|
||||
Un <B>punteggio</B> associato ad ogni classificatore.
|
||||
</P>
|
||||
<P>
|
||||
Più un classificatore viene attivato, più la sua forza crescerà.
|
||||
</P>
|
||||
<Example>
|
||||
I classificatori più deboli vengono lentamente eliminati!
|
||||
</Example>
|
||||
</Panel>
|
||||
<Panel title={"Specificità"}>
|
||||
<P>
|
||||
Il <B>numero di condizioni che devono essere soddisfatte</B> perchè il classificatore si attivi.
|
||||
</P>
|
||||
<P>
|
||||
|
||||
</P>
|
||||
</Panel>
|
||||
<Panel title={"Bid"}>
|
||||
<P>
|
||||
<B>Prodotto</B> di specificità e forza di un classificatore.
|
||||
</P>
|
||||
<P>
|
||||
Rappresenta <B>quanto è probabile che venga utilizzato</B> un dato classificatore nel caso che
|
||||
le condizioni di più di uno vengano soddisfatte.
|
||||
</P>
|
||||
<Example>
|
||||
È la fitness degli algoritmi genetici applicata ai classificatori.
|
||||
</Example>
|
||||
</Panel>
|
||||
</Section>
|
||||
<Section>
|
||||
<Panel title={"Cover Detector"}>
|
||||
<P>
|
||||
Se l'input non soddisfa nessun classificatore esistente, se ne crea uno nuovo soddisfatto
|
||||
dall'input attuale con una azione casuale.
|
||||
</P>
|
||||
</Panel>
|
||||
<Panel title={"Cover Effector"}>
|
||||
<P>
|
||||
Se i classificatori emettono in output un messaggio non valido, si crea un nuovo classificatore
|
||||
che trasforma quel messaggio in un output valido.
|
||||
</P>
|
||||
</Panel>
|
||||
</Section>
|
||||
<Section title={"Reti neurali"}>
|
||||
<Panel title={"Neuroni"}>
|
||||
<P>
|
||||
Agenti che possono <B>collegarsi tra loro</B> tramite <I>sinapsi</I> (dirette)
|
||||
e <B>ricevere</B> ed <B>emettere</B> <I>impulsi</I> lungo di esse.
|
||||
</P>
|
||||
<P>
|
||||
Gli impulsi ricevuti vengono temporaneamente <B>memorizzati</B> dal neurone attraverso valori
|
||||
che decadono nel tempo.
|
||||
</P>
|
||||
<P>
|
||||
Se la somma dei valori di tutti gli impulsi ricevuti è <B>maggiore di una certa soglia</B>,
|
||||
allora il neurone <B>emetterà</B> un impulso.
|
||||
</P>
|
||||
</Panel>
|
||||
</Section>
|
||||
<Section title={"Modello booleano"}>
|
||||
<Panel title={"Cos'è?"}>
|
||||
<P>
|
||||
Un modello semplificato di rete neurale in cui vengono considerati <B>solo tempi
|
||||
discreti</B> (<Tick>ticks</Tick>), e non è presente la memorizzazione degli impulsi nel tempo.
|
||||
</P>
|
||||
<P>
|
||||
È stato sviluppato da <Anchor href={"https://it.wikipedia.org/wiki/Warren_McCulloch"}>Warren
|
||||
McCulloch</Anchor> (un neurofisiologo) e <Anchor
|
||||
href={"https://it.wikipedia.org/wiki/Walter_Pitts"}
|
||||
>Walter
|
||||
Pitts</Anchor> (un matematico).
|
||||
</P>
|
||||
<Example>
|
||||
È importante perchè dimostra che le reti neurali <B>possono elaborare qualsiasi cosa</B>, ma
|
||||
incompleto perchè non descrive nessun metodo per la loro creazione automatica.
|
||||
</Example>
|
||||
</Panel>
|
||||
<Panel title={"Neuroni"}>
|
||||
<P>
|
||||
I neuroni <B>si attivano</B> in un dato <Tick/> se la <B>somma dei loro
|
||||
impulsi</B> nel <Tick/> precedente è <B>maggiore o uguale a 1</B>.
|
||||
</P>
|
||||
</Panel>
|
||||
<Panel title={"Intensità sinaptica"}>
|
||||
<P>
|
||||
Le sinapsi hanno una <I>intensità</I>: è un <B>moltiplicatore</B> che viene applicato a tutti
|
||||
gli impulsi transitanti la sinapsi.
|
||||
</P>
|
||||
</Panel>
|
||||
</Section>
|
||||
<Section title={"Funzioni logiche nel modello booleano"}>
|
||||
<Panel title={"NOT"}>
|
||||
<P>
|
||||
Un neurone con una sinapsi entrante con intensità <ILatex>{r`-1`}</ILatex>.
|
||||
</P>
|
||||
</Panel>
|
||||
<Panel title={"OR"}>
|
||||
<P>
|
||||
Un neurone con due o più sinapsi entranti con intensità <ILatex>{r`1`}</ILatex>.
|
||||
</P>
|
||||
</Panel>
|
||||
<Panel title={"AND"}>
|
||||
<P>
|
||||
Un neurone con due o più sinapsi entranti con
|
||||
intensità <ILatex>{r`\frac{1}{numero\ sinapsi}`}</ILatex>.
|
||||
</P>
|
||||
</Panel>
|
||||
</Section>
|
||||
<Section title={"Modello di Hopfield"}>
|
||||
<Panel title={"Cos'è?"}>
|
||||
<P>
|
||||
Un'estensione del modello booleano per permettere l'apprendimento automatico delle
|
||||
configurazioni giuste di neuroni.
|
||||
</P>
|
||||
<P>
|
||||
È stato sviluppato da <Anchor href={"https://en.wikipedia.org/wiki/John_Hopfield"}>John
|
||||
Hopfield</Anchor> (uno scienziato).
|
||||
</P>
|
||||
<Example>
|
||||
Non è molto avanzato, ma ha portato a ulteriori studi nel campo delle reti neurali.
|
||||
</Example>
|
||||
</Panel>
|
||||
<Panel>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th><Help text={"Vettore / matrice"}>v</Help></th>
|
||||
<th><Help text={"Elemento singolo / scalare"}>s</Help></th>
|
||||
<th>Glossario</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td/>
|
||||
<td><BLatex>{r`t`}</BLatex></td>
|
||||
<td><Tick>Tick</Tick> attuale</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td/>
|
||||
<td><ILatex>{r`n`}</ILatex>, <ILatex>{r`m`}</ILatex></td>
|
||||
<td>Identificatore di un neurone specifico</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><BLatex>{r`\mathbf{W}`}</BLatex></td>
|
||||
<td><BLatex>{r`w_{nm}`}</BLatex></td>
|
||||
<td>Intensità della sinapsi diretta da <ILatex>{r`n`}</ILatex> verso <ILatex>{r`m`}</ILatex>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><BLatex>{r`\mathbf{\Theta}`}</BLatex></td>
|
||||
<td><BLatex>{r`\theta_n`}</BLatex></td>
|
||||
<td>Soglia di attivazione di un neurone</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><BLatex>{r`\mathbf{X}(t)`}</BLatex></td>
|
||||
<td><BLatex>{r`x_n(t)`}</BLatex></td>
|
||||
<td>Emissione di un neurone</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><BLatex>{r`\mathbf{I}(t)`}</BLatex></td>
|
||||
<td><BLatex>{r`i_n(t)`}</BLatex></td>
|
||||
<td>Somma degli ingressi di un neurone</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td/>
|
||||
<td><BLatex>{r`E`}</BLatex></td>
|
||||
<td>Energia del sistema</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><BLatex>{r`\mathbf{A}`}</BLatex></td>
|
||||
<td><BLatex>{r`a_i`}</BLatex></td>
|
||||
<td>Stato di un neurone in un pattern</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td/>
|
||||
<td><BLatex>{r`Q(\mathbf{A}, \mathbf{B})`}</BLatex></td>
|
||||
<td>Sovrapposizione tra due pattern</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</Panel>
|
||||
</Section>
|
||||
<Section>
|
||||
<Panel title={"Emissione"}>
|
||||
<P>
|
||||
In ogni <Tick/>, i neuroni:
|
||||
</P>
|
||||
<ul>
|
||||
<LI>Emettono <ILatex>{r`0`}</ILatex> se gli input nel <Tick/> precedente <B>erano
|
||||
inferiori</B> alla soglia di attivazione
|
||||
</LI>
|
||||
<LI>Emettono <ILatex>{r`1`}</ILatex> se gli input nel <Tick/> precedente <B>superavano</B> la
|
||||
soglia di attivazione
|
||||
</LI>
|
||||
<LI>Non cambiano stato se gli input nel <Tick/> precedente <B>erano uguali</B> alla soglia di
|
||||
attivazione
|
||||
</LI>
|
||||
</ul>
|
||||
</Panel>
|
||||
<Panel title={"Sinapsi"}>
|
||||
<P>
|
||||
<B>Tutti</B> i neuroni del modello sono intercollegati tra loro da sinapsi.
|
||||
</P>
|
||||
<P>
|
||||
I neuroni non possono essere collegati a loro stessi.
|
||||
</P>
|
||||
<P>
|
||||
Questo porta il <B>costo computazionale</B> del modello ad essere <ILatex>{r`O(n^2)`}</ILatex>.
|
||||
</P>
|
||||
</Panel>
|
||||
<Panel title={"Energia"}>
|
||||
<P>
|
||||
Una funzione dell'intero sistema che rappresenta il totale degli stati di tutti i neuroni e
|
||||
tutte le connessioni.
|
||||
</P>
|
||||
<PLatex>{r`
|
||||
E = - \frac{1}{2} \sum_{n, m} ( w_{nm} \cdot x_n \cdot x_m ) + \sum_n ( \theta_n \cdot x_n )
|
||||
`}</PLatex>
|
||||
</Panel>
|
||||
</Section>
|
||||
<Section>
|
||||
<Panel title={"Apprendimento hebbiano"}>
|
||||
<P>
|
||||
Un metodo per realizzare l'apprendimento nel modello di Hopfield.
|
||||
</P>
|
||||
<P>
|
||||
Si incrementa l'intensità delle sinapsi che connettono neuroni nello stesso stato, e invece si
|
||||
decrementa l'intensità di quelle che connettono neuroni in stati opposti.
|
||||
</P>
|
||||
<P>
|
||||
Considerando i neuroni spenti e quelli accesi
|
||||
come <ILatex>{r`0`}</ILatex> e <ILatex>{r`1`}</ILatex> rispettivamente, si ha che per ogni
|
||||
pattern:
|
||||
</P>
|
||||
<PLatex>{r`
|
||||
\Delta w_{ik} = (2 \cdot A_i - 1)(2 \cdot A_k - 1)
|
||||
`}</PLatex>
|
||||
<Example>
|
||||
Così facendo, si insegna sia il pattern normale sia il suo complementare!
|
||||
</Example>
|
||||
</Panel>
|
||||
<Panel title={"Simmetria"}>
|
||||
<P>
|
||||
Applicando l'apprendimento hebbiano al modello di Hopfield si ottengono sinapsi simmetriche.
|
||||
</P>
|
||||
<P>
|
||||
Se è valida questa proprietà, si può dimostrare che l'<B>energia del sistema è sempre
|
||||
decrescente</B>, e che quindi che tenderà a un punto fisso!
|
||||
</P>
|
||||
</Panel>
|
||||
<Panel title={"Overlap di due pattern"}>
|
||||
<P>
|
||||
Il numero di neuroni attivati in entrambi i pattern.
|
||||
</P>
|
||||
<PLatex>{r`
|
||||
Q(A, B) = \sum_{i = 1}^n A_i B_i
|
||||
`}</PLatex>
|
||||
</Panel>
|
||||
<Panel title={"Interferenza"}>
|
||||
<P>
|
||||
Più pattern vengono imparati da un modello, più è facile che essi interferiscano tra loro.
|
||||
</P>
|
||||
<P>
|
||||
In caso di pattern completamente scorrelati tra loro, il limite di pattern imparabili è circa:
|
||||
</P>
|
||||
<PLatex>
|
||||
{r`0.14 \cdot N`}
|
||||
</PLatex>
|
||||
</Panel>
|
||||
<Panel title={"Archetipi"}>
|
||||
<P>
|
||||
Per minimizzare l'interferenza tra pattern, è possibile insegnare al modello un <I>archetipo</I>:
|
||||
si insegna più volte il pattern originale applicandoci una minima quantità di interferenza
|
||||
casuale.
|
||||
</P>
|
||||
</Panel>
|
||||
</Section>
|
||||
<Section title={"Modello a percettroni"}>
|
||||
<Panel title={"Cos'è?"}>
|
||||
<P>
|
||||
Un modello di rete neurale che supporta l'apprendimento e che presenta <B>più strati di
|
||||
neuroni</B>.
|
||||
</P>
|
||||
<P>
|
||||
Ha costi computazionali molto più bassi del modello di Hopfield.
|
||||
</P>
|
||||
</Panel>
|
||||
<Panel>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Simbolo</th>
|
||||
<th>Descrizione</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><BLatex>{r`N`}</BLatex></td>
|
||||
<td>Numero totale di neuroni nel sistema</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><BLatex>{r`n`}</BLatex></td>
|
||||
<td>Numero di un neurone specifico</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><BLatex>{r`w_{nm}`}</BLatex></td>
|
||||
<td>Intensità della sinapsi diretta da <ILatex>{r`n`}</ILatex> verso <ILatex>{r`m`}</ILatex>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><BLatex>{r`x_n`}</BLatex></td>
|
||||
<td>Emissione del neurone <ILatex>{r`n`}</ILatex></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><BLatex>{r`H(v)`}</BLatex></td>
|
||||
<td>Funzione che restituisce lo stato di un neurone dato un valore di input</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><BLatex>{r`\sum_1^N ( w_n \cdot x_n )`}</BLatex></td>
|
||||
<td>Somma degli input di un neurone</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><BLatex>{r`b`}</BLatex></td>
|
||||
<td>Bias di un neurone</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</Panel>
|
||||
</Section>
|
||||
<Section>
|
||||
<Panel title={"Percettrone"}>
|
||||
<P>
|
||||
Una <B>rete neurale</B> che viene incapsulata all'interno di un singolo neurone.
|
||||
</P>
|
||||
<P>
|
||||
La sua emissione è determinata dalla sua funzione di emissione <ILatex>{r`H`}</ILatex>:
|
||||
</P>
|
||||
<PLatex>{r`
|
||||
x_n = H \left( \sum_1^N ( w_n \cdot x_n + b) \right)
|
||||
`}</PLatex>
|
||||
<P>
|
||||
<ILatex>{r`b`}</ILatex> è una costante configurabile, detta <I>bias</I>, che rappresenta il
|
||||
valore di partenza della somma degli input.
|
||||
</P>
|
||||
</Panel>
|
||||
<Panel title={"Percettrone booleano"}>
|
||||
<P>
|
||||
Un percettrone la cui funzione di emissione è:
|
||||
</P>
|
||||
<PLatex>{r`
|
||||
\begin{cases}
|
||||
1 \qquad se\ v > 0\\
|
||||
0 \qquad se\ v = 0\\
|
||||
-1 \qquad se\ v < 0
|
||||
\end{cases}
|
||||
`}</PLatex>
|
||||
</Panel>
|
||||
<Panel title={"Apprendimento"}>
|
||||
<P>
|
||||
Si parte da intensità casuali delle sinapsi.
|
||||
</P>
|
||||
<P>
|
||||
Si prova a classificare degli esempi pre-classificati: se un esempio viene classificato nel modo
|
||||
sbagliato, si alterano le intensità delle sinapsi in direzione della sua classificazione
|
||||
corretta.
|
||||
</P>
|
||||
<P>
|
||||
Nel caso che vi siano più strati di neuroni, allora sarà necessario ricorrere alla <Anchor
|
||||
href={"https://en.wikipedia.org/wiki/Backpropagation"}
|
||||
>backpropagation</Anchor>, che stima l'errore
|
||||
di classificazione di ogni singolo neurone e li corregge di conseguenza.
|
||||
</P>
|
||||
</Panel>
|
||||
</Section>
|
||||
<Section title={"Rete feed-forward"}>
|
||||
<Panel title={"Cos'è?"}>
|
||||
<P>
|
||||
Un modello a percettroni in cui <B>non si presentano cicli</B>.
|
||||
</P>
|
||||
<P>
|
||||
Alcuni dei neuroni che vi sono all'interno saranno dunque dei <B>neuroni sorgente</B> e dei <B>neuroni
|
||||
pozzo</B>.
|
||||
</P>
|
||||
</Panel>
|
||||
</Section>
|
||||
</div>
|
||||
)
|
||||
}
|
File diff suppressed because it is too large
Load diff
|
@ -5,7 +5,8 @@ import { Help } from "bluelib/lib/components"
|
|||
export default function Glob() {
|
||||
return (
|
||||
<Help
|
||||
text={`La sintassi della ricerca tra file, dove ? sostituisce un singolo carattere, * un qualsiasi numero e ** include le sottocartelle.`}>Glob</Help>
|
||||
text={`La sintassi della ricerca tra file, dove ? sostituisce un singolo carattere, * un qualsiasi numero e ** include le sottocartelle.`}
|
||||
>Glob</Help>
|
||||
)
|
||||
}
|
||||
|
||||
|
|
|
@ -6,7 +6,8 @@ import LatexMath from "bluelib/lib/components/LatexMath"
|
|||
export default function IDF() {
|
||||
return (
|
||||
<Help
|
||||
text={"Inverse document frequency, quanto un termine è raro all'interno della collezione di documenti"}><LatexMath>{`idf`}</LatexMath></Help>
|
||||
text={"Inverse document frequency, quanto un termine è raro all'interno della collezione di documenti"}
|
||||
><LatexMath>{`idf`}</LatexMath></Help>
|
||||
)
|
||||
}
|
||||
|
||||
|
|
|
@ -5,7 +5,8 @@ import { Help } from "bluelib/lib/components"
|
|||
export default function Locuzione() {
|
||||
return (
|
||||
<Help
|
||||
text={`Gruppo di parole che funzionano come una unica: a cavallo, forze dell'ordine, etc.`}>locuzione</Help>
|
||||
text={`Gruppo di parole che funzionano come una unica: a cavallo, forze dell'ordine, etc.`}
|
||||
>locuzione</Help>
|
||||
)
|
||||
};
|
||||
|
||||
|
|
|
@ -5,7 +5,8 @@ import { Help } from "bluelib/lib/components"
|
|||
export default function Predicato() {
|
||||
return (
|
||||
<Help
|
||||
text={"La minima unità booleana valutabile. `A`, `B`, etc. Equivalente a un evento in statistica, e a una variabile in matematica."}>predicato</Help>
|
||||
text={"La minima unità booleana valutabile. `A`, `B`, etc. Equivalente a un evento in statistica, e a una variabile in matematica."}
|
||||
>predicato</Help>
|
||||
)
|
||||
}
|
||||
|
||||
|
|
|
@ -5,7 +5,8 @@ import { Help } from "bluelib/lib/components"
|
|||
export default function UIN() {
|
||||
return (
|
||||
<Help
|
||||
text={`User Information Need, una descrizione in linguaggio naturale delle informazioni di cui ha bisogno l'utente`}>UIN</Help>
|
||||
text={`User Information Need, una descrizione in linguaggio naturale delle informazioni di cui ha bisogno l'utente`}
|
||||
>UIN</Help>
|
||||
)
|
||||
}
|
||||
|
||||
|
|
|
@ -42,7 +42,7 @@ export default function Gestinfo() {
|
|||
<Box title={"Di cosa si tratta?"}>
|
||||
<P>
|
||||
Si parla di <B>come processare enormi quantità di testo</B> al fine di <B>effettuarvi
|
||||
ricerche</B>.
|
||||
ricerche</B>.
|
||||
</P>
|
||||
<Aside>
|
||||
Praticamente, si parla di come funzionano i motori di ricerca!
|
||||
|
@ -51,7 +51,7 @@ export default function Gestinfo() {
|
|||
<Box title={"Il corso all'Unimore"}>
|
||||
<P>
|
||||
🎓 Il corso è stato tenuto dalla <Anchor href={"mailto:federica.mandreoli@unimore.it"}>Prof.ssa
|
||||
Federica Mandreoli</Anchor>.
|
||||
Federica Mandreoli</Anchor>.
|
||||
</P>
|
||||
<P>
|
||||
📘 Le dispense <Color builtin={"red"}><span>non sono più disponibili</span></Color>.
|
||||
|
@ -65,7 +65,7 @@ export default function Gestinfo() {
|
|||
<LI><BaseLink disabled={true}>📄 Dispense su Dolly</BaseLink></LI>
|
||||
<LI><Anchor href={"https://www.wikipedia.org/"}>📰 Wikipedia</Anchor></LI>
|
||||
<LI><Anchor href={"https://gitlab.com/2429571/gestione-informazione"}>🗒️ Appunti open-source di
|
||||
Sharon Guerzoni</Anchor></LI>
|
||||
Sharon Guerzoni</Anchor></LI>
|
||||
</ul>
|
||||
</Box>
|
||||
</Split>
|
||||
|
@ -73,7 +73,7 @@ export default function Gestinfo() {
|
|||
<Box title={"Cos'è?"}>
|
||||
<P>
|
||||
È il <B>processo</B> di <B>raccolta documenti</B>, <B>elaborazione query</B> e <B>richiamo di
|
||||
più risposte</B>.
|
||||
più risposte</B>.
|
||||
</P>
|
||||
<P>
|
||||
Un'applicazione che effettua <IR/> si chiama <B>motore di ricerca</B>.
|
||||
|
@ -87,7 +87,7 @@ export default function Gestinfo() {
|
|||
</P>
|
||||
<P>
|
||||
Possono essere di vario tipo: <B>pagine web</B>, <B>metadati di file</B>, <B>paper
|
||||
accademici</B>...
|
||||
accademici</B>...
|
||||
</P>
|
||||
<Aside>
|
||||
Ad esempio, i documenti di <Anchor href={"https://google.com"}>Google Search</Anchor> sono
|
||||
|
@ -100,7 +100,8 @@ export default function Gestinfo() {
|
|||
</P>
|
||||
<Aside>
|
||||
Il web crawler più famoso è <Anchor
|
||||
href={"https://it.wikipedia.org/wiki/Googlebot"}>Googlebot</Anchor>, che visita ricorsivamente
|
||||
href={"https://it.wikipedia.org/wiki/Googlebot"}
|
||||
>Googlebot</Anchor>, che visita ricorsivamente
|
||||
tutti i collegamenti presenti su ogni pagina.
|
||||
</Aside>
|
||||
<P>
|
||||
|
@ -121,7 +122,8 @@ export default function Gestinfo() {
|
|||
</P>
|
||||
<Aside>
|
||||
È possibile vedere tutti gli operatori supportati da Google nella pagina <Anchor
|
||||
href={"https://www.google.it/advanced_search"}>Advanced Search</Anchor>.
|
||||
href={"https://www.google.it/advanced_search"}
|
||||
>Advanced Search</Anchor>.
|
||||
</Aside>
|
||||
</Box>
|
||||
<Box title={"Risposte"}>
|
||||
|
@ -204,7 +206,7 @@ export default function Gestinfo() {
|
|||
</Aside>
|
||||
<P>
|
||||
Spesso si decide di <B>distinguere</B> tra gli <B><Ononimi/></B> attraverso algoritmi di <B><I>word
|
||||
sense disambiguation</I></B>, in grado di dedurre il contesto analizzando i significati delle
|
||||
sense disambiguation</I></B>, in grado di dedurre il contesto analizzando i significati delle
|
||||
parole circostanti.
|
||||
</P>
|
||||
<Aside>
|
||||
|
@ -214,7 +216,8 @@ export default function Gestinfo() {
|
|||
<Box 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
|
||||
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>
|
||||
|
@ -259,7 +262,7 @@ export default function Gestinfo() {
|
|||
<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, in generale, tutte le <B>parole
|
||||
più frequenti</B> di una lingua.
|
||||
più frequenti</B> di una lingua.
|
||||
</P>
|
||||
<Aside>
|
||||
<Token>basi</Token> <Token stopword={true}>di</Token> <Token>dati</Token>
|
||||
|
@ -282,7 +285,7 @@ export default function Gestinfo() {
|
|||
<Box 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.
|
||||
base</B> (<I>lemmas</I>) delle parole.
|
||||
</P>
|
||||
<Aside>
|
||||
<P>
|
||||
|
@ -314,10 +317,12 @@ export default function Gestinfo() {
|
|||
</P>
|
||||
<Aside>
|
||||
Generalmente sono implementati tramite <Help
|
||||
text={"Dizionari che associano ogni parola alla sua forma base."}>lookup tables</Help>, ma i
|
||||
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>.
|
||||
href={"https://en.wikipedia.org/wiki/Stemming#Algorithms"}
|
||||
>possono avere implementazioni anche
|
||||
più complesse</Anchor>.
|
||||
</Aside>
|
||||
</Box>
|
||||
<Box title={"5. Selezione degli index term"}>
|
||||
|
@ -373,8 +378,10 @@ export default function Gestinfo() {
|
|||
</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>.
|
||||
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>
|
||||
</Box>
|
||||
</Split>
|
||||
|
@ -389,7 +396,7 @@ export default function Gestinfo() {
|
|||
</P>
|
||||
<P>
|
||||
<Token>merlo</Token> e <Token>piccione</Token> sono abbastanza simili, in quanto sono
|
||||
entrambi uccelli, ma non sono sinonimi
|
||||
entrambi uccelli, ma non sono sinonimi
|
||||
</P>
|
||||
<P>
|
||||
<Token>merlo</Token> e <Token>ala</Token> non sono per niente simili
|
||||
|
@ -402,7 +409,7 @@ export default function Gestinfo() {
|
|||
<Box title={"A cosa serve?"}>
|
||||
<P>
|
||||
La <B><I>word sense disambiguation</I></B> sfrutta la <B>similitudine</B> tra l'ononimo e i <B>token
|
||||
circostanti</B> per stabilire il significato corretto.
|
||||
circostanti</B> per stabilire il significato corretto.
|
||||
</P>
|
||||
<P>
|
||||
Talvolta alla similitudine sono aggiunte anche altre informazioni, come la <B>distanza</B> tra i
|
||||
|
@ -422,14 +429,16 @@ export default function Gestinfo() {
|
|||
Si basa sull'<B>inverso della distanza</B> tra i due token all'interno dell'albero:
|
||||
</P>
|
||||
<B><LatexMath
|
||||
block={true}>{`sim_{pd}(t_1, t_2) = \\frac{1}{dist(t_1, t_2) + 1}`}</LatexMath></B>
|
||||
block={true}
|
||||
>{`sim_{pd}(t_1, t_2) = \\frac{1}{dist(t_1, t_2) + 1}`}</LatexMath></B>
|
||||
</Box>
|
||||
<Box title={"Wu-Palmer"}>
|
||||
<P>
|
||||
Si basa sulla <B>profondità</B> del <B>minimo antenato comune</B> tra i due token:
|
||||
</P>
|
||||
<B><LatexMath
|
||||
block={true}>{`sim_{wp}(t_1, t_2) = 2 \\cdot \\frac{depth(mac_{\\ t_1,t_2})}{depth(t_1) + depth(t_2)}`}</LatexMath></B>
|
||||
block={true}
|
||||
>{`sim_{wp}(t_1, t_2) = 2 \\cdot \\frac{depth(mac_{\\ t_1,t_2})}{depth(t_1) + depth(t_2)}`}</LatexMath></B>
|
||||
<Aside>
|
||||
Varia più lentamente rispetto alla Path-distance.
|
||||
</Aside>
|
||||
|
@ -443,7 +452,7 @@ export default function Gestinfo() {
|
|||
</P>
|
||||
<P>
|
||||
Definendo <LatexMath>{`P(t)`}</LatexMath> come la probabilità che un <B>token scelto a
|
||||
caso</B> sia <LatexMath>{`t`}</LatexMath>, l'<IC/> sarà:
|
||||
caso</B> sia <LatexMath>{`t`}</LatexMath>, l'<IC/> sarà:
|
||||
</P>
|
||||
<B><LatexMath block={true}>{`ic(t) = - \\log \\left( P(t) \\right)`}</LatexMath></B>
|
||||
<P>
|
||||
|
@ -458,7 +467,8 @@ export default function Gestinfo() {
|
|||
Si basa sull'<B><IC/></B> del <B>minimo antenato comune</B>:
|
||||
</P>
|
||||
<B><LatexMath
|
||||
block={true}>{`sim_{r} (t_1,t_2) = ic \\left( mac_{\\ t_1,t_2} \\right)`}</LatexMath></B>
|
||||
block={true}
|
||||
>{`sim_{r} (t_1,t_2) = ic \\left( mac_{\\ t_1,t_2} \\right)`}</LatexMath></B>
|
||||
</Box>
|
||||
</Box>
|
||||
</Split>
|
||||
|
@ -508,8 +518,9 @@ export default function Gestinfo() {
|
|||
</P>
|
||||
<Aside>
|
||||
<Anchor
|
||||
href={"https://gist.github.com/Steffo99/ceeb7ed61a7b6a12a783232c0230ce70"}>Guarda
|
||||
un esempio documentato in Python qui!</Anchor>
|
||||
href={"https://gist.github.com/Steffo99/ceeb7ed61a7b6a12a783232c0230ce70"}
|
||||
>Guarda
|
||||
un esempio documentato in Python qui!</Anchor>
|
||||
</Aside>
|
||||
</Box>
|
||||
</Box>
|
||||
|
@ -532,7 +543,7 @@ export default function Gestinfo() {
|
|||
</P>
|
||||
<Aside>
|
||||
<code>m</code> ed <code>n</code> sono vicini sulla tastiera e quindi la loro
|
||||
sostituzione "costa" meno, rispetto a <code>q</code> e <code>p</code>.
|
||||
sostituzione "costa" meno, rispetto a <code>q</code> e <code>p</code>.
|
||||
</Aside>
|
||||
</Box>
|
||||
</Split>
|
||||
|
@ -561,7 +572,8 @@ export default function Gestinfo() {
|
|||
alta la loro edit distance.
|
||||
</Aside>
|
||||
<B><LatexMath
|
||||
block={true}>{r`size(X \cap Y) = \max(size(X),\ size(Y)) + q - 1 - (k \cdot q)`}</LatexMath></B>
|
||||
block={true}
|
||||
>{r`size(X \cap Y) = \max(size(X),\ size(Y)) + q - 1 - (k \cdot q)`}</LatexMath></B>
|
||||
<LatexMath block={true}>{r`\Updownarrow`}</LatexMath>
|
||||
<LatexMath block={true}>{r`E \leq k`}</LatexMath>
|
||||
</Box>
|
||||
|
@ -574,7 +586,7 @@ export default function Gestinfo() {
|
|||
<P>
|
||||
Richiede che venga tenuto traccia delle posizione dei <LatexMath>{`q`}</LatexMath>-grammi,
|
||||
e prevede che i <LatexMath>{`q`}</LatexMath>-grammi a <B>più
|
||||
di <LatexMath>{`k`}</LatexMath> posizioni di distanza</B> non vengano considerati
|
||||
di <LatexMath>{`k`}</LatexMath> posizioni di distanza</B> non vengano considerati
|
||||
uguali.
|
||||
</P>
|
||||
</Box>
|
||||
|
@ -589,13 +601,13 @@ export default function Gestinfo() {
|
|||
<Box title={"Coefficiente di Jaccard"}>
|
||||
<P>
|
||||
<B>Misura di overlap</B> tra due insiemi
|
||||
di <LatexMath>{`q`}</LatexMath>-grammi <LatexMath>{`X`}</LatexMath> e <LatexMath>{`Y`}</LatexMath>:
|
||||
di <LatexMath>{`q`}</LatexMath>-grammi <LatexMath>{`X`}</LatexMath> e <LatexMath>{`Y`}</LatexMath>:
|
||||
</P>
|
||||
<B><LatexMath block={true}>{r`Jaccard = \frac{size(X \cap Y)}{size(X \cup Y)}`}</LatexMath></B>
|
||||
<Aside>
|
||||
<P>
|
||||
Usando trigrammi, il <I>coefficiente di
|
||||
Jaccard</I> tra <Token>novembre</Token> e <Token>dicembre</Token> è:
|
||||
Jaccard</I> tra <Token>novembre</Token> e <Token>dicembre</Token> è:
|
||||
</P>
|
||||
<ul>
|
||||
<LI>
|
||||
|
@ -638,7 +650,8 @@ export default function Gestinfo() {
|
|||
</P>
|
||||
<Aside>
|
||||
Un metodo usato per correggere errori tipografici durante confronto di nomi propri è il <Anchor
|
||||
href={"https://en.wikipedia.org/wiki/Soundex"}>Soundex</Anchor>, un algoritmo che converte le
|
||||
href={"https://en.wikipedia.org/wiki/Soundex"}
|
||||
>Soundex</Anchor>, un algoritmo che converte le
|
||||
parole in codici rappresentanti i loro suoni.
|
||||
</Aside>
|
||||
</Box>
|
||||
|
@ -731,9 +744,9 @@ export default function Gestinfo() {
|
|||
</P>
|
||||
<ul>
|
||||
<LI><U>Document-based</U>: lista ordinata di documenti con la <B>frequenza del token</B> in
|
||||
essi</LI>
|
||||
essi</LI>
|
||||
<LI><U>Word-based</U>: lista ordinata di documenti che punta a una lista ordinata
|
||||
delle <B>posizioni</B> del token in essi</LI>
|
||||
delle <B>posizioni</B> del token in essi</LI>
|
||||
</ul>
|
||||
<P>
|
||||
Essendo le liste <B>ordinate</B>, vi è possibile effettuare operazioni
|
||||
|
@ -753,10 +766,10 @@ export default function Gestinfo() {
|
|||
</P>
|
||||
<ul>
|
||||
<LI><U>Doppia lista ordinata</U>: <B>lista di token</B> che punta a una <B>lista di
|
||||
occorrenze</B></LI>
|
||||
occorrenze</B></LI>
|
||||
<LI>
|
||||
<U>Trie</U>: <B>albero</B> in cui ogni arco rappresenta una <B>stringa</B> e ogni nodo
|
||||
una <B>concatenazione</B> delle stringhe tra sè e la radice
|
||||
una <B>concatenazione</B> delle stringhe tra sè e la radice
|
||||
<ul>
|
||||
<LI><U>Prefix tree</U>: <B>trie</B> che usa i <B>prefissi</B> dei token</LI>
|
||||
<LI><U>Suffix tree</U>: <B>trie</B> che usa i <B>suffissi</B> dei token</LI>
|
||||
|
@ -764,9 +777,9 @@ export default function Gestinfo() {
|
|||
|
||||
</LI>
|
||||
<LI><U>B+ tree</U>: <B>albero</B> particolarmente ottimizzato, in cui le foglie sono le
|
||||
occorrenze</LI>
|
||||
occorrenze</LI>
|
||||
<LI><U>Dizionario</U>: <B>hashmap</B> che usa come chiave il <B>token</B> stesso, e una
|
||||
lista di occorrenze come <B>valore</B></LI>
|
||||
lista di occorrenze come <B>valore</B></LI>
|
||||
</ul>
|
||||
<P>
|
||||
Generalmente, occupano <B>spazio logaritmico</B> rispetto al numero di token.
|
||||
|
@ -839,7 +852,8 @@ export default function Gestinfo() {
|
|||
</P>
|
||||
<P>
|
||||
Uno dei pochi motori di ricerca che lo permette ancora è <Anchor
|
||||
href={"https://en.wikipedia.org/wiki/Westlaw"}>Westlaw</Anchor>.
|
||||
href={"https://en.wikipedia.org/wiki/Westlaw"}
|
||||
>Westlaw</Anchor>.
|
||||
</P>
|
||||
<Code language={"text"}>
|
||||
Dante /3 Beatrice
|
||||
|
@ -873,7 +887,8 @@ export default function Gestinfo() {
|
|||
<Aside>
|
||||
<P>
|
||||
Il più famoso motore di ricerca a concetti è <Anchor
|
||||
href={"https://pubmed.ncbi.nlm.nih.gov/"}>PubMed</Anchor>, e i concetti ricercabili possono
|
||||
href={"https://pubmed.ncbi.nlm.nih.gov/"}
|
||||
>PubMed</Anchor>, e i concetti ricercabili possono
|
||||
essere trovati su <Anchor href={"https://www.ncbi.nlm.nih.gov/mesh/"}>MeSH</Anchor>.
|
||||
</P>
|
||||
<Code language={"text"}>
|
||||
|
@ -890,7 +905,8 @@ export default function Gestinfo() {
|
|||
<Aside>
|
||||
<P>
|
||||
Un esempio di query strutturali è <Anchor
|
||||
href={"https://books.google.it/advanced_book_search?hl=it"}>Google Books</Anchor>.
|
||||
href={"https://books.google.it/advanced_book_search?hl=it"}
|
||||
>Google Books</Anchor>.
|
||||
</P>
|
||||
<Code language={"text"}>
|
||||
inauthor:Dante inauthor:Alighieri
|
||||
|
@ -905,8 +921,9 @@ export default function Gestinfo() {
|
|||
<Aside>
|
||||
<P>
|
||||
Moltissimi motori di ricerca permettono boolean query, inclusa la <Anchor
|
||||
href={"https://www.postgresql.org/docs/current/textsearch.html"}>Full Text Search di
|
||||
PostgreSQL</Anchor>.
|
||||
href={"https://www.postgresql.org/docs/current/textsearch.html"}
|
||||
>Full Text Search di
|
||||
PostgreSQL</Anchor>.
|
||||
</P>
|
||||
<Code language={"python"}>
|
||||
"Dante" and "Vergil" and ("Devil May Cry" or "DMC") and not "Divina Commedia"
|
||||
|
@ -996,7 +1013,7 @@ export default function Gestinfo() {
|
|||
</Aside>
|
||||
<P>
|
||||
È costoso in termini di spazio: ogni termine va salvato molte volte nel vocabolario (<I>permuterm
|
||||
problem</I>).
|
||||
problem</I>).
|
||||
</P>
|
||||
<Aside>
|
||||
In inglese, questo porta a una quadruplicazione <LatexMath>{r`\times 4`}</LatexMath> dello
|
||||
|
@ -1007,7 +1024,7 @@ export default function Gestinfo() {
|
|||
<Box title={<span><LatexMath>{`q`}</LatexMath>-gram index</span>}>
|
||||
<P>
|
||||
<B>Vocabolario aggiuntivo</B> che associa <LatexMath>{`q`}</LatexMath>-grammi ai token
|
||||
corrispondenti del vocabolario principale.
|
||||
corrispondenti del vocabolario principale.
|
||||
</P>
|
||||
<Aside>
|
||||
<Token>░ci</Token> → <Token>ciao</Token> <Token>cibo</Token> <Token>cinefilo</Token>
|
||||
|
@ -1027,7 +1044,7 @@ export default function Gestinfo() {
|
|||
</Aside>
|
||||
<P>
|
||||
I risultati della ricerca andranno <B>post-filtrati</B>, in quanto ci potrebbero essere dei <B>falsi
|
||||
positivi</B>:
|
||||
positivi</B>:
|
||||
</P>
|
||||
<Aside>
|
||||
<P>
|
||||
|
@ -1056,7 +1073,7 @@ export default function Gestinfo() {
|
|||
<Box title={"A cosa servono?"}>
|
||||
<P>
|
||||
Stabiliscono i <B>risultati richiamati</B> dal motore di ricerca e l'<B>ordine con cui vengono
|
||||
visualizzati</B>.
|
||||
visualizzati</B>.
|
||||
</P>
|
||||
</Box>
|
||||
</Split>
|
||||
|
@ -1077,7 +1094,7 @@ export default function Gestinfo() {
|
|||
<Box title={"Modello booleano"}>
|
||||
<P>
|
||||
<B>Modello classico</B> che rappresenta la query come un <B><Predicato/> <I>booleano</I></B>, e
|
||||
genera la rilevanza valutandolo su ogni documento:
|
||||
genera la rilevanza valutandolo su ogni documento:
|
||||
</P>
|
||||
<ul>
|
||||
<LI><B><code>1</code></B> se il <Predicato/> è <B>vero</B></LI>
|
||||
|
@ -1087,7 +1104,7 @@ export default function Gestinfo() {
|
|||
<Box title={"Modello fuzzy"}>
|
||||
<P>
|
||||
Variante del <B>modello booleano</B> che permette ai documenti di <B>soddisfare
|
||||
parzialmente</B> il <Predicato/>:
|
||||
parzialmente</B> il <Predicato/>:
|
||||
</P>
|
||||
<ul>
|
||||
<LI><B><code>1.00</code></B> se il <Predicato/> è <B>vero</B></LI>
|
||||
|
@ -1139,20 +1156,23 @@ export default function Gestinfo() {
|
|||
Misura quanto un token è <B>frequente</B> nel <B>singolo documento</B>:
|
||||
</P>
|
||||
<B><LatexMath
|
||||
block={true}>{`tf(i) = \\frac{occorrenze}{totale\\ token}`}</LatexMath></B>
|
||||
block={true}
|
||||
>{`tf(i) = \\frac{occorrenze}{totale\\ token}`}</LatexMath></B>
|
||||
<P>
|
||||
Nella formula principale, viene <B>normalizzato</B> dividendolo per il <TF/> più
|
||||
alto del documento, limitandolo così a valori tra 0 e 1:
|
||||
</P>
|
||||
<B><LatexMath
|
||||
block={true}>{`tf_{norm}(i) = \\frac{tf(i)}{\\max_{j:\\ docs}\\ tf(j)}`}</LatexMath></B>
|
||||
block={true}
|
||||
>{`tf_{norm}(i) = \\frac{tf(i)}{\\max_{j:\\ docs}\\ tf(j)}`}</LatexMath></B>
|
||||
</Box>
|
||||
<Box title={<span><IDF/>: Inverse document freq.</span>}>
|
||||
<P>
|
||||
Misura quanto un token è <B>raro</B> nella <B>collezione di documenti</B>:
|
||||
</P>
|
||||
<B><LatexMath
|
||||
block={true}>{`idf(i) = \\frac{totale\\ documenti}{documenti\\ con\\ occ.}`}</LatexMath></B>
|
||||
block={true}
|
||||
>{`idf(i) = \\frac{totale\\ documenti}{documenti\\ con\\ occ.}`}</LatexMath></B>
|
||||
<P>
|
||||
Nella formula principale, viene <B>logaritmizzato</B>, al fine di ridurre
|
||||
significativamente il suo impatto:
|
||||
|
@ -1163,7 +1183,7 @@ export default function Gestinfo() {
|
|||
<Box title={"Similitudine vettoriale"}>
|
||||
<P>
|
||||
Un modo di misurare la similitudine tra <B>insiemi di token</B> rappresentati come <B>dimensioni
|
||||
vettoriali</B>.
|
||||
vettoriali</B>.
|
||||
</P>
|
||||
<Box title={"Coseno di similitudine"}>
|
||||
<P>
|
||||
|
@ -1193,14 +1213,15 @@ export default function Gestinfo() {
|
|||
</P>
|
||||
<ul>
|
||||
<LI>La <Anchor href={"https://it.wikipedia.org/wiki/Distanza_euclidea"}>distanza
|
||||
euclidea</Anchor></LI>
|
||||
euclidea</Anchor></LI>
|
||||
<LI>Il <Anchor
|
||||
href={"https://en.wikipedia.org/wiki/S%C3%B8rensen%E2%80%93Dice_coefficient"}>Sørensen–Dice
|
||||
coefficient</Anchor></LI>
|
||||
href={"https://en.wikipedia.org/wiki/S%C3%B8rensen%E2%80%93Dice_coefficient"}
|
||||
>Sørensen–Dice
|
||||
coefficient</Anchor></LI>
|
||||
<LI>Il <Anchor href={"https://en.wikipedia.org/wiki/Jaccard_index"}>Jaccard
|
||||
Index</Anchor></LI>
|
||||
Index</Anchor></LI>
|
||||
<LI>La <Anchor href={"https://it.wikipedia.org/wiki/Distanza_di_Minkowski"}>distanza
|
||||
di Minkowski</Anchor></LI>
|
||||
di Minkowski</Anchor></LI>
|
||||
</ul>
|
||||
</Aside>
|
||||
</Box>
|
||||
|
@ -1214,11 +1235,12 @@ export default function Gestinfo() {
|
|||
query <LatexMath>{`q`}</LatexMath>:
|
||||
</P>
|
||||
<B><LatexMath
|
||||
block={true}>{`sim_{prob} = \\frac{P(R\\ |\\ d, q)}{P(\\overline{R}\\ |\\ d, q)}`}</LatexMath></B>
|
||||
block={true}
|
||||
>{`sim_{prob} = \\frac{P(R\\ |\\ d, q)}{P(\\overline{R}\\ |\\ d, q)}`}</LatexMath></B>
|
||||
<P>
|
||||
<Todo>Si dimostra che</Todo> è possibile capire quanto la presenza di un dato
|
||||
token <LatexMath>{`k_i`}</LatexMath> in un documento <LatexMath>{r`d`}</LatexMath> ne <B>contribuisca
|
||||
alla rilevanza</B> per la query <LatexMath>{r`\vec{q}`}</LatexMath>:
|
||||
token <LatexMath>{`k_i`}</LatexMath> in un documento <LatexMath>{r`d`}</LatexMath> ne <B>contribuisca
|
||||
alla rilevanza</B> per la query <LatexMath>{r`\vec{q}`}</LatexMath>:
|
||||
</P>
|
||||
<B><LatexMath block={true}>{`
|
||||
c_i =
|
||||
|
@ -1249,20 +1271,21 @@ export default function Gestinfo() {
|
|||
<Box title={<span>Fattore <LatexMath>{`y`}</LatexMath></span>}>
|
||||
<P>
|
||||
Deriva dal <B>peso <TF/></B>, dalla <B>lunghezza media dei
|
||||
documenti <LatexMath>{`L_{avg}`}</LatexMath></B>, la <B>lunghezza del documento
|
||||
specifico <LatexMath>{`L_d`}</LatexMath></B> e da due parametri di
|
||||
documenti <LatexMath>{`L_{avg}`}</LatexMath></B>, la <B>lunghezza del documento
|
||||
specifico <LatexMath>{`L_d`}</LatexMath></B> e da due parametri di
|
||||
configurazione <LatexMath>{`k_1`}</LatexMath> e <LatexMath>{`b`}</LatexMath>:
|
||||
</P>
|
||||
<B><LatexMath
|
||||
block={true}>{`y = \\frac{(k_1 + 1) \\cdot tf_{td}}{k_1 \\cdot \\left( 1 - b + \\left( b \\cdot \\frac{L_d}{L_{avg}} \\right) \\right) + tf_{td}}`}</LatexMath></B>
|
||||
block={true}
|
||||
>{`y = \\frac{(k_1 + 1) \\cdot tf_{td}}{k_1 \\cdot \\left( 1 - b + \\left( b \\cdot \\frac{L_d}{L_{avg}} \\right) \\right) + tf_{td}}`}</LatexMath></B>
|
||||
<Aside>
|
||||
Attribuisce rispettivamente un bonus o una penalità (regolabile
|
||||
con <LatexMath>{`b`}</LatexMath>) a ogni documento in base a se questo sia <B>più
|
||||
corto</B> o <B>più lungo della media</B>.
|
||||
corto</B> o <B>più lungo della media</B>.
|
||||
</Aside>
|
||||
<Aside>
|
||||
<LatexMath>{r`k_1`}</LatexMath> regola la priorità data alla <TF/>. <Todo>All'interno del
|
||||
fattore o dell'intero RSV?</Todo>
|
||||
fattore o dell'intero RSV?</Todo>
|
||||
</Aside>
|
||||
</Box>
|
||||
<Box title={<span>Fattore <LatexMath>{`z`}</LatexMath></span>}>
|
||||
|
@ -1271,7 +1294,8 @@ export default function Gestinfo() {
|
|||
configurazione <LatexMath>{`k_3`}</LatexMath>:
|
||||
</P>
|
||||
<B><LatexMath
|
||||
block={true}>{`z = \\frac{(k_3 + 1) \\cdot tf_{tq}}{k_3 + tf_{tq}}`}</LatexMath></B>
|
||||
block={true}
|
||||
>{`z = \\frac{(k_3 + 1) \\cdot tf_{tq}}{k_3 + tf_{tq}}`}</LatexMath></B>
|
||||
</Box>
|
||||
</Split>
|
||||
</Box>
|
||||
|
@ -1306,14 +1330,14 @@ export default function Gestinfo() {
|
|||
</P>
|
||||
<ul>
|
||||
<LI><B><LatexMath>{`q`}</LatexMath></B> è una pagina che <B>referenzia</B> quella in
|
||||
questione;</LI>
|
||||
questione;</LI>
|
||||
<LI><B><LatexMath>{`R_{i-1}(q)`}</LatexMath></B> è il <B>rank normalizzato</B> della
|
||||
pagina <LatexMath>{r`q`}</LatexMath>;</LI>
|
||||
pagina <LatexMath>{r`q`}</LatexMath>;</LI>
|
||||
<LI><B><LatexMath>{`N_q`}</LatexMath></B> è il numero <B>totale di link</B> presenti
|
||||
nella pagina <LatexMath>q</LatexMath>;</LI>
|
||||
nella pagina <LatexMath>q</LatexMath>;</LI>
|
||||
<LI><B><LatexMath>{`E(p)`}</LatexMath></B> è una <B><I>sorgente di rank</I></B>;</LI>
|
||||
<LI><B><LatexMath>{`\\alpha`}</LatexMath></B> è un parametro che regola l'<B>emissione
|
||||
della sorgente</B> di rank e la <B>dissipazione</B> del rank preesistente.</LI>
|
||||
della sorgente</B> di rank e la <B>dissipazione</B> del rank preesistente.</LI>
|
||||
</ul>
|
||||
<Aside>
|
||||
Converge molto in fretta: <LatexMath>{`O(log\\ n)`}</LatexMath>!
|
||||
|
@ -1358,7 +1382,7 @@ export default function Gestinfo() {
|
|||
<Box title={"HITS"}>
|
||||
<P>
|
||||
Algoritmo di <I>Link Analysis Ranking</I> <B>query-dependent</B> che attribuisce <B>due
|
||||
diversi valori</B> ad ogni pagina: <B><I>autorità</I></B> e <B><I>hubness</I></B>.
|
||||
diversi valori</B> ad ogni pagina: <B><I>autorità</I></B> e <B><I>hubness</I></B>.
|
||||
</P>
|
||||
<Aside>
|
||||
Viene utilizzato per determinare l'importanza delle <B>riviste scientifiche</B>.
|
||||
|
@ -1443,7 +1467,7 @@ export default function Gestinfo() {
|
|||
<P>
|
||||
Per ottenere delle misure, solitamente si preparano in anticipo
|
||||
delle <B>query</B> dette <I>benchmark</I> delle quali si è <B>già a conoscenza dei documenti
|
||||
rilevanti</B>.
|
||||
rilevanti</B>.
|
||||
</P>
|
||||
<Aside>
|
||||
I documenti rilevanti possono essere selezionati a mano, o ricavati dai dati di utilizzo degli
|
||||
|
@ -1499,32 +1523,32 @@ export default function Gestinfo() {
|
|||
<Aside>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Richiamo</th>
|
||||
<th>R-Precision</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Richiamo</th>
|
||||
<th>R-Precision</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>10%</td>
|
||||
<td>90%</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>20%</td>
|
||||
<td>60%</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>30%</td>
|
||||
<td>10%</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>...</td>
|
||||
<td>...</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>100%</td>
|
||||
<td>2%</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>10%</td>
|
||||
<td>90%</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>20%</td>
|
||||
<td>60%</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>30%</td>
|
||||
<td>10%</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>...</td>
|
||||
<td>...</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>100%</td>
|
||||
<td>2%</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</Aside>
|
||||
|
@ -1539,7 +1563,7 @@ export default function Gestinfo() {
|
|||
<Box title={"Curva di richiamo interpolata"}>
|
||||
<P>
|
||||
Mostra il <B>valore massimo di precisione</B> per valori di richiamo <B>maggiori o
|
||||
uguali</B> a quelli del punto.
|
||||
uguali</B> a quelli del punto.
|
||||
</P>
|
||||
<Aside>
|
||||
<P>
|
||||
|
@ -1548,43 +1572,43 @@ export default function Gestinfo() {
|
|||
<Aside>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Richiamo</th>
|
||||
<th>Precisione</th>
|
||||
<th>Interpolata</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Richiamo</th>
|
||||
<th>Precisione</th>
|
||||
<th>Interpolata</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>10%</td>
|
||||
<td>90%</td>
|
||||
<td>90%</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>20%</td>
|
||||
<td>40%</td>
|
||||
<td><B>50%</B></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>30%</td>
|
||||
<td>30%</td>
|
||||
<td><B>50%</B></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>40%</td>
|
||||
<td>50%</td>
|
||||
<td>50%</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>...</td>
|
||||
<td>...</td>
|
||||
<td>...</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>100%</td>
|
||||
<td>2%</td>
|
||||
<td>2%</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>10%</td>
|
||||
<td>90%</td>
|
||||
<td>90%</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>20%</td>
|
||||
<td>40%</td>
|
||||
<td><B>50%</B></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>30%</td>
|
||||
<td>30%</td>
|
||||
<td><B>50%</B></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>40%</td>
|
||||
<td>50%</td>
|
||||
<td>50%</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>...</td>
|
||||
<td>...</td>
|
||||
<td>...</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>100%</td>
|
||||
<td>2%</td>
|
||||
<td>2%</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</Aside>
|
||||
|
@ -1604,7 +1628,7 @@ export default function Gestinfo() {
|
|||
<P>
|
||||
Se si hanno più benchmark, corrispondenti a <B>più curve di richiamo</B>, si possono
|
||||
ottenere le <B>medie</B> dei valori ai vari livelli, ottenendo così una <B><I>curva di
|
||||
precisione media</I></B>.
|
||||
precisione media</I></B>.
|
||||
</P>
|
||||
</Box>
|
||||
<Box title={"Mean average precision"}>
|
||||
|
@ -1648,50 +1672,56 @@ export default function Gestinfo() {
|
|||
Una formula per il DCG potrebbe essere:
|
||||
</P>
|
||||
<LatexMath
|
||||
block={true}>{r`DCG = \sum_{Docs} \left( Stars \cdot 2^{- Position} \right)`}</LatexMath>
|
||||
block={true}
|
||||
>{r`DCG = \sum_{Docs} \left( Stars \cdot 2^{- Position} \right)`}</LatexMath>
|
||||
<P>
|
||||
Applicata, sarebbe:
|
||||
</P>
|
||||
<Aside>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Posizione</th>
|
||||
<th>Stelle</th>
|
||||
<th>Punti</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Posizione</th>
|
||||
<th>Stelle</th>
|
||||
<th>Punti</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>0</td>
|
||||
<td>★★★★☆</td>
|
||||
<td><LatexMath>{r`4 \cdot 2^{0} =\ `}</LatexMath><Color
|
||||
builtin={"lime"}><LatexMath>{`+4.00`}</LatexMath></Color></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>1</td>
|
||||
<td>★★☆☆☆</td>
|
||||
<td><LatexMath>{r`2 \cdot 2^{-1} =\ `}</LatexMath><Color
|
||||
builtin={"lime"}><LatexMath>{`+1.00`}</LatexMath></Color></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2</td>
|
||||
<td>★★★☆☆</td>
|
||||
<td><LatexMath>{r`3 \cdot 2^{-2} =\ `}</LatexMath><Color
|
||||
builtin={"lime"}><LatexMath>{`+0.75`}</LatexMath></Color></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>3</td>
|
||||
<td>★★★★★</td>
|
||||
<td><LatexMath>{r`5 \cdot 2^{-3} =\ `}</LatexMath><Color
|
||||
builtin={"lime"}><LatexMath>{`+0.63`}</LatexMath></Color></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><B>Tot</B></td>
|
||||
<td><B>-----</B></td>
|
||||
<td><B><LatexMath>{r`4 + 1 + 0.75 + 0.63 =\ `}</LatexMath><Color
|
||||
builtin={"lime"}><LatexMath>{`+6.38`}</LatexMath></Color></B></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>0</td>
|
||||
<td>★★★★☆</td>
|
||||
<td><LatexMath>{r`4 \cdot 2^{0} =\ `}</LatexMath><Color
|
||||
builtin={"lime"}
|
||||
><LatexMath>{`+4.00`}</LatexMath></Color></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>1</td>
|
||||
<td>★★☆☆☆</td>
|
||||
<td><LatexMath>{r`2 \cdot 2^{-1} =\ `}</LatexMath><Color
|
||||
builtin={"lime"}
|
||||
><LatexMath>{`+1.00`}</LatexMath></Color></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2</td>
|
||||
<td>★★★☆☆</td>
|
||||
<td><LatexMath>{r`3 \cdot 2^{-2} =\ `}</LatexMath><Color
|
||||
builtin={"lime"}
|
||||
><LatexMath>{`+0.75`}</LatexMath></Color></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>3</td>
|
||||
<td>★★★★★</td>
|
||||
<td><LatexMath>{r`5 \cdot 2^{-3} =\ `}</LatexMath><Color
|
||||
builtin={"lime"}
|
||||
><LatexMath>{`+0.63`}</LatexMath></Color></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><B>Tot</B></td>
|
||||
<td><B>-----</B></td>
|
||||
<td><B><LatexMath>{r`4 + 1 + 0.75 + 0.63 =\ `}</LatexMath><Color
|
||||
builtin={"lime"}
|
||||
><LatexMath>{`+6.38`}</LatexMath></Color></B></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</Aside>
|
||||
|
@ -1707,7 +1737,8 @@ export default function Gestinfo() {
|
|||
Normalizzando la formula precedente si ottiene:
|
||||
</P>
|
||||
<LatexMath
|
||||
block={true}>{r`NDCG = \frac{\sum_{Docs} \left( Stars \cdot 2^{- Position} \right)}{\sum_{Docs} \left( 5 \cdot 2^{- Position} \right)}`}</LatexMath>
|
||||
block={true}
|
||||
>{r`NDCG = \frac{\sum_{Docs} \left( Stars \cdot 2^{- Position} \right)}{\sum_{Docs} \left( 5 \cdot 2^{- Position} \right)}`}</LatexMath>
|
||||
</Aside>
|
||||
</Box>
|
||||
</Split>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import React from "react"
|
||||
import { Anchor, BaseLink as A, Bold as B, ListItem as LI, Paragraph as P, Size } from "bluelib/lib/components"
|
||||
import { Anchor, BaseLink, Bold as B, ListItem as LI, Paragraph as P, Size } from "bluelib/lib/components"
|
||||
import Split from "../components/Split"
|
||||
import Box from "../components/Box"
|
||||
import SelectSkin from "../components/SelectSkin"
|
||||
|
@ -8,7 +8,7 @@ import SelectSkin from "../components/SelectSkin"
|
|||
export default function Home({ skin, setSkin }) {
|
||||
return (
|
||||
<article>
|
||||
<Split title={<span>Appunti open source di <A href={"https://steffo.eu"}>Steffo</A></span>}>
|
||||
<Split title={<span>Appunti open source di <Anchor href={"https://steffo.eu"}>Steffo</Anchor></span>}>
|
||||
<Box title={"Unisteffo"}>
|
||||
<P>
|
||||
Ciao! Benvenuto a <B>Unisteffo</B>, il sito in cui carico tutto il materiale che uso per
|
||||
|
@ -16,7 +16,8 @@ export default function Home({ skin, setSkin }) {
|
|||
</P>
|
||||
<P>
|
||||
Se trovi un errore negli appunti, o un bug del sito, per favore <Anchor
|
||||
href={"https://github.com/Steffo99/appuntiweb/issues/new"}>segnalamelo su GitHub</Anchor>!
|
||||
href={"https://github.com/Steffo99/appuntiweb/issues/new"}
|
||||
>segnalamelo su GitHub</Anchor>!
|
||||
</P>
|
||||
</Box>
|
||||
<Box title={"Tema"}>
|
||||
|
@ -31,46 +32,87 @@ export default function Home({ skin, setSkin }) {
|
|||
</Split>
|
||||
<Split title={"Università"}>
|
||||
<Box title={"Primo anno"}>
|
||||
<ul>
|
||||
<LI><Size value={"l"}><Anchor
|
||||
href={"https://github.com/Steffo99/appunti-universitari/tree/master/2018_Analisi1"}>Analisi
|
||||
matematica</Anchor></Size></LI>
|
||||
<LI><Size value={"l"}><Anchor
|
||||
href={"https://github.com/Steffo99/appunti-universitari/tree/master/2018_AlgebraLineare"}>Algebra
|
||||
lineare</Anchor></Size></LI>
|
||||
<LI><Size value={"l"}><Anchor
|
||||
href={"https://github.com/Steffo99/appunti-universitari/blob/master/2018_ArchitetturaDeiCalcolatori/08_AppuntiEDeduzioni.md"}>Architettura
|
||||
dei calcolatori</Anchor></Size></LI>
|
||||
<LI><Size value={"l"}><Anchor
|
||||
href={"https://github.com/Steffo99/appunti-universitari/tree/master/2018_AlgoritmiEStruttureDati"}>Algoritmi
|
||||
e strutture dati</Anchor></Size></LI>
|
||||
</ul>
|
||||
<Size value={"l"}>
|
||||
<ul>
|
||||
<LI>
|
||||
<Anchor href={"https://github.com/Steffo99/appunti-universitari/tree/master/2018_Analisi1"}>
|
||||
🕸️ Analisi matematica
|
||||
</Anchor>
|
||||
</LI>
|
||||
<LI>
|
||||
<Anchor href={"https://github.com/Steffo99/appunti-universitari/tree/master/2018_AlgebraLineare"}>
|
||||
🕸️ Algebra lineare
|
||||
</Anchor>
|
||||
</LI>
|
||||
<LI>
|
||||
<Anchor href={"https://github.com/Steffo99/appunti-universitari/blob/master/2018_ArchitetturaDeiCalcolatori/08_AppuntiEDeduzioni.md"}>
|
||||
🕸️ Architettura dei calcolatori
|
||||
</Anchor>
|
||||
</LI>
|
||||
<LI>
|
||||
<Anchor href={"https://github.com/Steffo99/appunti-universitari/tree/master/2018_AlgoritmiEStruttureDati"}>
|
||||
🕸️ Algoritmi e strutture dati
|
||||
</Anchor>
|
||||
</LI>
|
||||
</ul>
|
||||
</Size>
|
||||
</Box>
|
||||
<Box title={"Secondo anno"}>
|
||||
<ul>
|
||||
<LI><Size value={"l"}><A href={"/fisica"}>Fisica</A></Size></LI>
|
||||
<LI><Size value={"l"}><Anchor
|
||||
href={"https://github.com/Steffo99/appunti-universitari/tree/master/2019_ProgrammazioneAdOggetti"}>Programmazione
|
||||
ad oggetti</Anchor></Size></LI>
|
||||
<LI><Size value={"l"}><Anchor href={"https://old.uni.steffo.eu/#/statistica"}>Statistica ed
|
||||
elementi di probabilità</Anchor></Size></LI>
|
||||
<LI><Size value={"l"}><Anchor
|
||||
href={"https://github.com/Steffo99/appunti-universitari/tree/master/2019_SistemiOperativi"}>Sistemi
|
||||
operativi</Anchor></Size></LI>
|
||||
<LI><Size value={"l"}><Anchor href={"https://old.uni.steffo.eu/#/apprendimento"}>Apprendimento
|
||||
ed evoluzione in sistemi artificiali</Anchor></Size></LI>
|
||||
<LI><Size value={"l"}><Anchor href={"https://old.uni.steffo.eu/#/basididati"}>Basi di
|
||||
dati</Anchor></Size></LI>
|
||||
<LI><Size value={"l"}><Anchor href={"https://old.uni.steffo.eu/#/calcolonumerico"}>Calcolo
|
||||
numerico</Anchor></Size></LI>
|
||||
<LI><Size value={"l"}><Anchor href={"https://old.uni.steffo.eu/#/ottimizzazionelineare"}>Ottimizzazione
|
||||
lineare intera</Anchor></Size></LI>
|
||||
</ul>
|
||||
<Size value={"l"}>
|
||||
<ul>
|
||||
<LI>
|
||||
<BaseLink href={"/fisica"}>
|
||||
✨ Fisica
|
||||
</BaseLink>
|
||||
</LI>
|
||||
<LI>
|
||||
<Anchor href={"https://github.com/Steffo99/appunti-universitari/tree/master/2019_ProgrammazioneAdOggetti"}>
|
||||
🕸️ Programmazione ad oggetti
|
||||
</Anchor>
|
||||
</LI>
|
||||
<LI>
|
||||
<Anchor href={"https://old.uni.steffo.eu/#/statistica"}>
|
||||
🕸️ Statistica ed elementi di probabilità
|
||||
</Anchor>
|
||||
</LI>
|
||||
<LI>
|
||||
<Anchor href={"https://github.com/Steffo99/appunti-universitari/tree/master/2019_SistemiOperativi"}>
|
||||
🕸️ Sistemi operativi
|
||||
</Anchor>
|
||||
</LI>
|
||||
<LI>
|
||||
<BaseLink href={"/apprendimento"}>
|
||||
✨ Apprendimento ed evoluzione in sistemi artificiali
|
||||
</BaseLink>
|
||||
</LI>
|
||||
<LI>
|
||||
<Anchor href={"https://old.uni.steffo.eu/#/basididati"}>
|
||||
🕸️ Basi di dati
|
||||
</Anchor>
|
||||
</LI>
|
||||
<LI>
|
||||
<Anchor href={"https://old.uni.steffo.eu/#/calcolonumerico"}>
|
||||
🕸️ Calcolo numerico
|
||||
</Anchor>
|
||||
</LI>
|
||||
<LI>
|
||||
<Anchor href={"https://old.uni.steffo.eu/#/ottimizzazionelineare"}>
|
||||
🕸️ Ottimizzazione lineare intera
|
||||
</Anchor>
|
||||
</LI>
|
||||
</ul>
|
||||
</Size>
|
||||
</Box>
|
||||
<Box title={"Terzo anno"}>
|
||||
<ul>
|
||||
<LI><Size value={"l"}><A href={"/gestinfo"}>Gestione dell'informazione</A></Size></LI>
|
||||
</ul>
|
||||
<Size value={"l"}>
|
||||
<ul>
|
||||
<LI>
|
||||
<BaseLink href={"/gestinfo"}>
|
||||
✨ Gestione dell'informazione
|
||||
</BaseLink>
|
||||
</LI>
|
||||
</ul>
|
||||
</Size>
|
||||
</Box>
|
||||
</Split>
|
||||
</article>
|
||||
|
|
Loading…
Add table
Reference in a new issue