diff --git a/components/compat-old.tsx b/components/compat-old.tsx
index 0ab9e49..57de84e 100644
--- a/components/compat-old.tsx
+++ b/components/compat-old.tsx
@@ -131,5 +131,6 @@ export const LI = Bluelib.ListUnordered.Item
export const Anchor = Bluelib.Anchor
export const Link = Bluelib.Anchor
export const BaseLink = Bluelib.Anchor
+export const Aside = Bluelib.Parenthesis
export const r = String.raw
diff --git a/components/link.jsx b/components/link.jsx
index 3bacd42..b48a33c 100644
--- a/components/link.jsx
+++ b/components/link.jsx
@@ -2,10 +2,10 @@ import NextLink from "next/link"
import { Anchor as BluelibLink } from "@steffo/bluelib-react"
-export const Link = ({children, href, nextProps = {}, bluelibProps = {}}) => {
+export const Link = ({children, href, disabled = false, nextProps = {}, bluelibProps = {}}) => {
return (
- Cose
-
- Apprendimento ed evoluzione in sistemi artificiali è stato un corso molto discorsivo (un po' come il suo stesso nome). + Apprendimento ed evoluzione in sistemi artificiali è stato un corso molto discorsivo (un po' come il suo stesso nome), ma anche molto interessante!
Penso sia quasi controproduttivo studiare dai miei appunti, in quanto essi sono una sintesi, mentre al fine di passare l'esame è utile saper parlare bene di tutti i concetti.
diff --git a/pages/year3/diritto/index.tsx b/pages/year3/diritto/index.tsx
new file mode 100644
index 0000000..3cb5046
--- /dev/null
+++ b/pages/year3/diritto/index.tsx
@@ -0,0 +1,25 @@
+import { Heading, Chapter, Box, Idiomatic as I, Panel, ListUnordered } from '@steffo/bluelib-react'
+import type { NextPage } from 'next'
+
+const Page: NextPage = () => {
+ return <>
+
+ Diritto ed economia digitale è stato un po' come Apprendimento ed evoluzione in sistemi artificiali: un esame entry-level molto discorsivo ed interessante.
+
+ Non ho avuto bisogno di prendere appunti, e nemmeno saprei che materiale consigliare a qualcuno che deve prepararlo, ma mi è giunta voce che purtroppo sia stato rimosso dall'elenco degli esami a scelta, quindi non ci dovrebbe nemmeno essere il problema.
+
+ Gestione dell'informazione: un corso... disordinato!
+
+ Ho imparato parecchie cose da quest'esame, soprattutto dal progetto che ho realizzato per passarlo, ma le slides erano disorganizzate, e la prova scritta mi è sembrata in buona parte basata sulla fortuna.
+
+ Avendolo dovuto provare due volte, ho raccolto e realizzato un sacco di materiale per questo corso!
+
+ Si parla di come processare enormi quantità di testo al fine di effettuarvi
+ ricerche.
+
+ 🎓 Il corso è stato tenuto dalla
+ 📘 Le dispense sono disponibili su
+ 🎥 Le videolezioni
+ È il processo di raccolta documenti, elaborazione query e richiamo di più risposte.
+
+ Un'applicazione che effettua
+ Sono le unità con cui lavora il motore di ricerca.
+
+ Possono essere di vario tipo: pagine web, metadati di file, paper accademici...
+
+ Vengono raccolti in svariati modi: possono provenire da
+ Un insieme di documenti è detto collezione.
+
+ La richiesta di informazioni effettuata da un utente, in un linguaggio che il motore di ricerca è in grado di capire.
+
+ Solitamente vi è possibile inserire parole chiave e operatori per specificare cosa
+ si desidera trovare.
+
+ I documenti che il motore di ricerca sceglie di mostrare all'utente in quanto li ha
+ ritenuti rilevanti alla query effettuata.
+
+ Spesso sono composte da metadati del documento e da un breve estratto della
+ sezione del documento più rilevante.
+
+ Astrazione che rappresenta un singolo significato di una parola o
+ Sequenze di
+ Una procedura svolta quando un documento viene aggiunto al motore di ricerca, permettendone l'indicizzazione e in seguito il richiamo.
+
+ È suddivisa in varie fasi, generalmente 5 o 6.
+
+ Tutte le parole del documento vengono trasformate in token.
+
+ Spesso si decide di distinguere tra gli
+ Il motore di ricerca decide come trattare i simboli tipografici, la
+ Le stopwords, i token ritenuti inutili ai fini delle ricerche, vengono eliminate dall'insieme di token ottenuto nel passo precedente.
+
+ Stopwords comuni sono gli
+ Talvolta capita di dover distinguere tra stopwords e nomi propri, soprattutto
+ nell'inglese; per risolvere il problema ci si affida alla disambiguazione degli Omonimi
+ effettuata durante l'analisi lessicale.
+
+ Ai token del passo precedente vengono sostituite le radici (stems) oppure le forme base (lemmas) delle parole.
+
+ Alcune delle operazioni di stemming che possono essere effettuate sono:
+
+ Alcune delle operazioni di lemmatizzazione che possono essere effettuate sono:
+
+ Gli algoritmi che realizzano questo passo sono detti rispettivamente stemmer o lemmatizer.
+
+ Il motore di ricerca stabilisce la relativa importanza di ciascun token dell'insieme, in modo da determinare più facilmente in seguito la rilevanza del documento in cui si trovano.
+
+ I termini più importanti di un documento sono detti index term.
+
+ Essi solitamente sono individuati da parser e scanner, che
+ analizzano la semantica di ciascun token.
+
+ Opzionalmente, l'intero documento può essere inserito in una o più categorie di un thesaurus, una gerarchia predeterminata di categorie di documenti.
+
+ Una misura di quanto due token hanno significati in comune.
+
+
+
+
+ Generalmente si basa su un thesaurus.
+
+ La word sense disambiguation sfrutta la similitudine tra l'ononimo e i token circostanti per stabilire il significato corretto.
+
+ Talvolta alla similitudine sono aggiunte anche altre informazioni, come la distanza tra i token e dati provenienti da sorgenti esterne.
+
+ Un modo di misurare la similitudine tra due token basato sulla loro posizione all'interno del thesaurus.
+
+ Si basa sull'inverso della distanza tra i due token all'interno dell'albero:
+
+ Si basa sulla profondità del minimo antenato comune tra i due token:
+
+ L'
+ Definendo
+ La similitudine
+ Si basa sull'
+ Una parte della normalizzazione dei token che corregge gli errori ortografici commessi
+ durante l'inserimento della query.
+
+ Aumenta la soddisfazione dell'utente e gli consente di effettuare ricerche per termini di
+ cui non conosce lo spelling.
+
+ È possibile trovare per ogni token dei suoi vicini utilizzabili per migliorare la query:
+
+ Dato un token, si cercano tutti i token entro un certo valore di edit distance.
+
+ Il numero minimo di operazioni per convertire un token in un altro.
+
+ Definisce operazioni le seguenti azioni:
+
+ Matrice costruita per calcolare la distanza di Levenshtein con un algoritmo greedy:
+
+ Estende la distanza di Levenshtein con una nuova operazione:
+
+ Differenzia i costi delle varie operazioni, diffenenziando ad esempio in base al carattere sostituito.
+
+ Calcolare l'edit distance
+ È possibile evitare di calcolare l'edit distance per la maggior parte dei termini del
+ vocabolario pre-filtrandoli su criteri computazionalmente più veloci.
+
+ Richiede che venga tenuto traccia delle posizione dei
+ Dato un token, si ordinano i token del vocabolario in base al numero di
+ Misura di overlap tra due insiemi di
+ Usando trigrammi, il coefficiente di Jaccard tra
+ Esistono motori di ricerca che usano un algoritmo per convertire i token nella loro
+ corrispondente pronuncia ed effettuano match sulla base di quest'ultima.
+
+ Scoperti i token "vicini", si può optare per varie soluzioni:
+
+ Sostituire automaticamente il token originale con il più vicino ad esso.
+
+ Richiede che le possibili correzioni siano ordinate.
+
+ È quello che fa di default Google:
+
+ Visualizzare l'errore all'utente, e permettergli di correggerlo rapidamente.
+
+ Richiede più interazione da parte dell'utente.
+
+ È quello che fa Google quando non è sicuro della correzione proposta:
+
+ Aggiungere automaticamente alla query i token corretti.
+
+ Richiede più tempo di ricerca, perchè nella query saranno presenti più token.
+
+ È possibile confrontare ogni token con il contesto dei termini circostanti per rilevare ulteriori errori.
+
+ Un metodo che prevede di enumerare varie alternative aventi contesti concordi e di restituire quella con il maggior numero di risultati.
+
+ Un metodo che prevede di enumerare varie alternative aventi contesti concordi e di restituire quella che è stata ricercata più volte.
+
+ Gli indici sono strutture dati in cui vengono inseriti i documenti e i loro token dopo essere stati preparati.
+
+ L'indicizzazione è la procedura che crea e mantiene aggiornati uno o più indici.
+
+ Sono fondamentali per velocizzare notevolmente le ricerche e per permettere certi tipi di operazioni sulle query.
+
+ Un indice basato sulla costruzione di una matrice in cui le righe sono i documenti, le colonne i token e le celle valori booleani che descrivono se il token compare nel documento.
+
+ È terribilmente inefficiente in termini di spazio, perchè la matrice è sparsa.
+
+ Una sua evoluzione spazialmente più efficiente è l'inverted index.
+
+ L'indice più comune, costituito da tante posting list raggiungibili attraverso un vocabolario.
+
+ L'insieme di tutte le occorrenze di un dato token.
+
+ Può essere realizzata in due modi:
+
+ Essendo le liste ordinate, vi è possibile effettuare operazioni di unione e intersezione in tempo lineare utilizzando dei cursori.
+
+ Non è però altrettanto efficiente in operazioni di negazione.
+
+ L'insieme delle associazioni tra token e la loro posting list.
+
+ Ci sono tanti modi diversi di implementarlo:
+
+ Generalmente, occupano spazio logaritmico rispetto al numero di token.
+
+ Ogni motore di ricerca implementa un diverso query language, un'interfaccia per l'utente che gli permette di effettuare ricerche in base alla sua necessità di informazioni
+ Ogni query language può poi implementare diverse funzionalità in base al tipo di documento indicizzato.
+
+ Essendo una via di mezzo tra linguaggio naturale e linguaggio di programmazione, permettono a un utente qualunque di fruire del motore di ricerca, senza bisogno di conoscenze approfondite sul suo funzionamento.
+
+ All'interno della query vengono inserite una o più keywords da ricercare all'interno dei documenti.
+
+ Praticamente tutti i motori di ricerca le supportano!
+
+ Prevedono la possibilità di richiedere che due o più keyword siano consecutive.
+
+ Solitamente è possibile specificarlo circondando di virgolette le keyword in questione.
+
+ Prevedono la possibilità di richiedere che due o più keyword siano a una certa distanza una dall'altra.
+
+ È molto raro al giorno d'oggi che un motore di ricerca permetta di ricercare la distanza tra le keyword.
+
+ Uno dei pochi motori di ricerca che lo permette ancora è
+ Prevedono la possibilità di cercare prefissi, suffissi, sottostringhe e intervalli di keyword.
+
+ Le
+ Prevedono la possibilità di usare tag provenienti da un thesaurus limitato di cui è garantita la precisione.
+
+ Il più famoso motore di ricerca a concetti è
+ Prevedono la possibilità di limitare la query a specifiche sezioni del documento.
+
+ Un esempio di query strutturali è
+ Prevedono la possibilità di effettuare più query e applicare le operazioni di intersezione, unione e negazione sui risultati.
+
+ Moltissimi motori di ricerca permettono boolean query, inclusa la
+ È costoso in termini di tempo: ci saranno tanti risultati che andranno processati, e
+ l'intersezione è
+ Un particolare prefix tree in cui vengono inserite tutte le possibili permutazioni di ogni token, con in aggiunta un marcatore per la fine della parola (░):
+
+ È possibile effettuare ricerche wildcard ruotando la wildcard a destra, trasformando
+ tutti i pattern in prefissi:
+
+ È costoso in termini di spazio: ogni termine va salvato molte volte nel vocabolario (permuterm problem).
+
+ Vocabolario aggiuntivo che associa
+ È possibile interpretare la ricerca come intersezione di
+ Utilizzando dei bigrammi:
+
+ I risultati della ricerca andranno post-filtrati, in quanto ci potrebbero essere dei falsi positivi:
+
+ Utilizzando dei bigrammi:
+
+ È un'ottima via di mezzo tra prefix-suffix tree e permuterm tree sia per il tempo impiegato sia per lo spazio richiesto.
+
+ Sono modelli matematici in grado di selezionare e ordinare i documenti in base alla loro rilevanza rispetto alla query.
+
+ Stabiliscono i risultati richiamati dal motore di ricerca e l'ordine con cui vengono visualizzati.
+
+ Rappresentano la query come un insieme di index term, e assegnano le rilevanze confrontando l'insieme con gli index term dei documenti.
+
+ Ad ogni index term del documento viene indipendentemente assegnato un peso in base alla sua rilevanza nella query.
+
+ Modello classico che rappresenta la query come un
+ Variante del modello booleano che permette ai documenti di soddisfare
+ parzialmente il
+ Le operazioni fuzzy diventano quindi:
+
+ Modello classico che rappresenta il vocabolario come uno spazio vettoriale, in cui ogni dimensione rappresenta un token.
+
+ Ogni documento viene rappresentato come un vettore
+ Le query vengono anch'esse trasformate in vettori
+ Un metodo di assegnamento peso che si basa sul prodotto dei fattori
+ Misura quanto un token è frequente nel singolo documento:
+
+ Nella formula principale, viene normalizzato dividendolo per il
+ Misura quanto un token è raro nella collezione di documenti:
+
+ Nella formula principale, viene logaritmizzato, al fine di ridurre significativamente il suo impatto:
+
+ Un modo di misurare la similitudine tra insiemi di token rappresentati come dimensioni vettoriali.
+
+ Si basa sulla norma a 2, e corrisponde a cercare l'angolo centrato all'origine tra i due vettori:
+
+ Altre misure comuni di similitudine vettoriale sono:
+
+ Implementazione del modello vettoriale che ordina i documenti
+ Si dimostra che è possibile determinare quanto la presenza di un dato token
+ Il valore del primo "blocco" dipende dalla presenza del token
+ Il valore del primo "blocco" dipende dalla presenza del token
+ Modello classico che ordina i documenti in base a un punteggio
+ L'
+ Un moltiplicatore basato sull'
+ Un moltiplicatore basato sulla
+ Ad esso viene in genere applicata una normalizzazione basata sulla lunghezza del documento:
+
+ Un moltiplicatore basato sulla
+ Ad esso non viene ovviamente applicata alcuna normalizzazione.
+
+ Modello per classificare documenti intercollegati in base a come essi sono collegati tra loro.
+
+ Algoritmo di Link Analysis Ranking query-independent che assegna un grado a ogni pagina indicizzata.
+
+ Misura iterativa di quanto una pagina è importante rispetto a tutte le altre indicizzate.
+
+ In cui:
+
+ Funzione che introduce nuovo rank nel sistema ad ogni iterazione.
+
+ PageRank normale prevede che questa funzione sia costante; è possibile però personalizzarlo rendendo la funzione variabile, facendo in modo che vengano assegnati rank più alti a certi tipi di pagine.
+
+ Rank riscalato a valori inclusi tra 0 e 1.
+
+ Solitamente, il rank viene rinormalizzato ad ogni iterazione.
+
+ Algoritmo di Link Analysis Ranking query-dependent che attribuisce due diversi valori ad ogni pagina: autorità e hubness.
+
+ Viene applicato solo a un base set, ovvero all'unione del root set (i match
+ della query) con tutti i nodi ad essi direttamente connessi.
+
+ Misura di quanto la pagina in questione viene referenziata da altri siti
+ autoritativi.
+
+ Misura di quanto la pagina in questione referenzia siti autoritativi.
+
+ Autorità riscalata a valori inclusi tra 0 e 1.
+
+ Hubness riscalata a valori inclusi tra 0 e 1.
+
+ Misurazioni che vengono effettuate sui sistemi di
+ Per vedere quanto funziona bene un sistema di
+ Per ottenere delle misure, solitamente si preparano in anticipo delle query dette benchmark delle quali si è già a conoscenza dei documenti rilevanti.
+
+ Le due misure usate più di frequente per misurare l'utilità dei risultati sono recall e precision.
+
+ Misura quanti documenti rilevanti sono stati richiamati dalla collezione:
+
+ Misura quanti documenti richiamati sono rilevanti:
+
+ La precisione di una query che richiama
+ A precisione
+ Curva che associa percentili di richiamo ai corrispondenti valori di R-Precision.
+
+ Ad esempio:
+
+ È detta naturale se include un punto per ogni documento richiamato.
+
+ È detta standard se usa le percentuali da 10% a 100% come punti.
+
+ Mostra il valore massimo di precisione per valori di richiamo maggiori o uguali a quelli del punto.
+
+ Ad esempio:
+
+ Esistono misure che riassumono i risultati di più benchmark in una sola.
+
+ Se si hanno più benchmark, corrispondenti a più curve di richiamo, si possono
+ ottenere le medie dei valori ai vari livelli, ottenendo così una curva di
+ precisione media.
+
+ La media di tutti i livelli di precisione media.
+
+ Misura che combina richiamo e precisione in un singolo valore:
+
+ Complemento della media armonica configurabile che permette di selezionare se
+ dare priorità
+ Misura che attribuisce guadagni decrescenti in base alla precisione di ogni
+ documento richiamato.
+
+ Una formula per il DCG potrebbe essere:
+
+ Applicata, sarebbe:
+
+ Variante del Discounted Cumulative Gain che divide il punteggio finale per il
+ valore perfetto ottenibile.
+
+ Normalizzando la formula precedente si ottiene:
+
+ Il modo in cui i risultati vengono visualizzati all'utente.
+
+ Permettere all'utente di vedere velocemente tutti i risultati e di scegliere il
+ risultato a lui più utile.
+
+ Il motore di ricerca web mostra all'utente un elenco di collegamenti ai documenti
+ richiamati.
+
+ Solitamente include alcuni dati del documento, come titolo, sommario e url.
+
+ Un breve riassunto del contenuto del documento richiamato.
+
+ Un sommario i cui contenuti dipendono solo dal documento, e non dalla query
+ immessa.
+
+ Un sommario che varia da query a query, evidenziando le parti rilevanti del
+ documento.
+
+ Linguaggi dinamici è stato il Dark Souls delle introduzioni a Python.
+
+ Un sacco di concetti complessi spiegati molto velocemente (o addirittura in modo errato!), un po' di Perl buttato lì a caso (per giustificare il plurale nel nome del corso?), e vaghi riferimenti alle macro di Lisp (trattato nel semestre successivo!)...
+
+ Per non parlare dell'esame che è stato praticamente una sfida di code golfing...
+
+ Avendo già usato Python ampiamente in passato, non ho avuto problemi, quindi non ho preso appunti.
+
+ Ho però alcune risorse che possono aiutare molto ad apprendere il linguaggio!
+
+ Paradigmi e linguaggi di programmazione è stato... la parte mancante di Linguaggi dinamici.
+
+ È stato quell'anello mancante che ha dato un senso a tutta la teoria decontestualizzata di
+ Non ho moltissimo materiale di Paradigmi...
+
+ Ho qualche esercizietto svolto qua e là, e un link alla guida che ho usato per imparare CLisp.
+
+ Progetto del Software. Una montagna, in termini di tempo richiesto per svolgere il progetto.
+
+ Ma al tempo stesso, molto, molto soddisfacente. Svolgere un progetto in 7 e vedere lentamente che prende forma è stata un'esperienza importante, a mio parere.
+
+ Complimenti al resto del mio gruppo per aver portato a termine l'impresa! :D
+
+ Abbiamo pubblicato il nostro progetto completato su GitHub!
+
+ Un esame decisamente ben fatto, ma il cui materiale trattava la materia di indirizzo delle mie scuole superiori. Niente miei appunti qui, mi spiace...
+
+ Le slides del prof. erano ottime: se le fornisce ancora, vi consiglio di studiare su quelle!
+
+ Avendo fatto tirocinio e tesi con la prof.ssa di Tecnologie Web, l'esame orale è stato più una formalità che altro.
+
+ Non saprei bene cosa consigliare a chi deve dare questo esame: di sicuro servono buone conoscenze di Python e in generale di programmazione, ma oltre a quello... boh?
+
+ Ho allegato qui il mio progetto di tesi con tutta la relativa documentazione.
+
+ Spero possa esservi utile, anche se è di un ordine di grandezza superiore a quello che va realizzato per passare l'esame!
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ m
ed n
sono vicini sulla tastiera e quindi la loro sostituzione "costa" meno, rispetto a q
e p
.
+
+
+
+
+
+
+
+
+ site:stackoverflow.com
per restringere la ricerca!
+
+ Divina Commedia Dante
+
+
+ "Nel mezzo del cammin di nostra vita"
+
+
+ Dante /3 Beatrice
+
+
+ /^V.?rgilio/
+
+
+ **/V?rgilio.png
+
+
+ "Plague"[Mesh]
+
+
+ inauthor:Dante inauthor:Alighieri
+
+
+ "Dante" and "Vergil" and ("Devil May Cry" or "DMC") and not "Divina Commedia"
+
+
+
+ AND
:
+ AND
+
+ AND
+
+ AND
AND
AND
AND
+
+ 1
se il 0
se il
+
+ 1.00
se il 0.XX
se il 0.00
se il
+
+ AND
: OR
: NOT
:
+
+
+
+
+
+
+
+
+
+
+ Richiamo
+ R-Precision
+
+
+ 10%
+ 90%
+
+
+ 20%
+ 60%
+
+
+ 30%
+ 10%
+
+
+ ...
+ ...
+
+
+
+ 100%
+ 2%
+
+
+
+
+
+
+
+ Richiamo
+ Precisione
+ Interpolata
+
+
+ 10%
+ 90%
+ 90%
+
+
+ 20%
+ 40%
+ 50%
+
+
+ 30%
+ 30%
+ 50%
+
+
+ 40%
+ 50%
+ 50%
+
+
+ ...
+ ...
+ ...
+
+
+
+ 100%
+ 2%
+ 2%
+
+
+
+
+
+
+
+ Posizione
+ Stelle
+ Punti
+
+
+ 0
+ ★★★★☆
+
+
+
+ 1
+ ★★☆☆☆
+
+
+
+ 2
+ ★★★☆☆
+
+
+
+ 3
+ ★★★★★
+
+
+
+
+ Tot
+ -----
+
+ manifest.json
, dai
+ tag OpenGraph, dalle prime righe del documento e quelli che Google genera
+ dalle applicazioni web (Web 3.0).
+