mirror of
https://github.com/Steffo99/unisteffo.git
synced 2024-11-24 08:54:21 +00:00
44 lines
No EOL
28 KiB
JavaScript
Generated
44 lines
No EOL
28 KiB
JavaScript
Generated
(window.webpackJsonp=window.webpackJsonp||[]).push([[7],{"0tML":function(e,l,i){"use strict";(function(e){var n=i("hosL"),a=i("mbOI"),t=i("ke5e"),o=i("YNhk");l.a=function(){return e(n.Fragment,null,e(a.s,{title:"Summaries"},e(a.r,{title:"Cosa sono?"},e("p",null,"Le summary sono ",e("b",null,"brevi spezzoni di testo")," che permettono all'utente di capire quali documenti siano rilevanti per lui."),e(t.a,null,e(a.j,{src:"https://i.imgur.com/8aMrIDY.png"}))),e(a.r,{title:"Static summaries"},e("p",null,"Summary fisse che dipendono ",e("b",null,"solo dal documento"),"."),e("p",null,"Possono essere generate dalle ",e("b",null,"prime parole del documento"),", dalle ",e("b",null,"frasi più importanti")," o da ",e("b",null,"metadati")," del documento stesso (",e(o.a,{href:"https://ogp.me/"},"OpenGraph"),")."),e(t.a,null,"Opinione personale: le summary generate da OpenGraph solitamente fanno schifo :(")),e(a.r,{title:"Dynamic summaries"},e("p",null,"Summary che dipendono ",e("b",null,"sia dal documento"),", ",e("b",null,"sia dalla query effettuata"),"."),e("p",null,"Generalmente, estraggono le frasi vicino alle occorrenze dei termini della query."))))}}).call(this,i("hosL").h)},"0vRf":function(e,l,i){"use strict";(function(e){var n=i("hosL"),a=i("mbOI");let t,o,r,u,s,c=e=>e;const d=String.raw;l.a=function(){return e(n.Fragment,null,e(a.s,{title:"Un approccio probabilistico"},e(a.r,{title:"Probabilità dei token"},e("p",null,"Un supplemento al thesaurus specifico a un certo testo: aggiunge ad ogni token ",e(a.i,null,d(t||(t=c`c`)))," la ",e("b",null,"probabilità")," ",e(a.i,null,d(o||(o=c`P(c)`)))," che un ",e("b",null,"termine selezionato a caso del testo appartenga al sottoalbero")," formato dal token e i suoi discendenti."),e("p",null,"La radice del thesaurus ha sempre probabilità ",e(a.i,null,d(r||(r=c`1`))),".")),e(a.r,{title:"Information content"},e("p",null,"Una misura ",e("b",null,"probabilistica")," di quanto un certo token ",e(a.i,null,d(u||(u=c`c`)))," sia ",e("b",null,"specifico")," in un certo contesto:"),e(a.q,null,d(s||(s=c`
|
|
IC(c) = - \log \left( P(c) \right)
|
|
`))),e("p",null,"È anche detta ",e("i",null,"sorpresa")," o ",e("i",null,"informazione di Shannon"),"."))))}}).call(this,i("hosL").h)},"1Gqa":function(e,l,i){"use strict";(function(e){var n=i("hosL"),a=i("mbOI"),t=i("ke5e"),o=i("YNhk");l.a=function(){return e(n.Fragment,null,e(a.s,{title:"Thesaurus"},e(a.r,{title:"Cos'è?"},e("p",null,"Un ",e("b",null,"albero di token")," organizzati in una gerarchia di significato."),e(t.a,null,'Il token "mela" avrà come genitore "frutto" e come figli ',e(o.a,{href:"https://it.wikipedia.org/wiki/Renetta"},'"Renetta"'),", ",e(o.a,{href:"https://it.wikipedia.org/wiki/Fuji_(mela)"},'"Fuji"')," e ",e(o.a,{href:"https://it.wikipedia.org/wiki/Granny_Smith"},'"Granny Smith"'),"."),e(t.a,null,e(o.a,{href:"https://wordnet.princeton.edu/"},"WordNet")," è un thesaurus generale per la lingua inglese, mentre ",e(o.a,{href:"https://thes.bncf.firenze.sbn.it/thes-dati.htm"},"Nuovo soggettario")," è un thesaurus generale per la lingua italiana."))))}}).call(this,i("hosL").h)},"29je":function(e,l,i){"use strict";(function(e){var n=i("hosL"),a=i("mbOI"),t=i("ke5e"),o=i("YNhk");let r,u,s,c=e=>e;const d=String.raw;l.a=function(){return e(n.Fragment,null,e(a.s,{title:"Indicizzazione"},e(a.r,{title:"Inverted index"},e("p",null,"Una ",e("b",null,"struttura dati")," che permette di velocizzare le ricerche su testi ",e("b",null,"grandi")," e ",e("b",null,"semi-statici"),"."),e("aside",null,e("u",null,"Testo semi-statico"),": un testo che viene aggiornato raramente."),e("p",null,"Si crea un ",e("i",null,"vocabolario")," dall'",e("b",null,"insieme dei token"),", e ad ogni ",e("b",null,"token")," del vocabolario si associa una ",e("b",null,"lista ordinata di tutte le sue occorrenze")," (",e("i",null,"posting list"),")."),e("p",null,"L'efficacia ed efficienza dell'indice dipendono dalle ",e("i",null,"strutture di indicizzazione")," utilizzate per serializzarlo."))),e(a.s,null,e(a.r,{title:"Vocabolario"},e("p",null,e("b",null,"Insieme")," di ",e("b",null,"tutti i token")," ricercabili."),e("p",null,"Può essere implementato con diverse strutture dati:"),e("ul",null,e("li",null,e("b",null,"Array ordinato"),", utilizzando la ",e("b",null,"bisezione")," per gli accessi;",e(a.f,null,d(r||(r=c`
|
|
ciao → R1, R15, R123
|
|
steffo → R1, R14
|
|
ciano → R1231
|
|
`)))),e("li",null,e("b",null,"Prefix tree")," (",e("i",null,"trie"),"), utilizzando le ",e("b",null,"proprietà degli alberi")," per gli accessi;",e(a.f,null,d(u||(u=c`
|
|
- [root]
|
|
- c
|
|
- i
|
|
- a
|
|
- o
|
|
- R1
|
|
- R15
|
|
- R123
|
|
- no
|
|
- R1231
|
|
- steffo
|
|
- R1
|
|
- R14
|
|
`)))),e("li",null,e("b",null,"Suffix tree"),", come il prefix tree ma partendo dall'ultima lettera"),e("li",null,e("b",null,"B+ tree"),", utilizzando le ",e("b",null,"proprietà degli alberi B+")," per gli accessi",e(t.a,null,e(o.a,{href:"https://www.cs.usfca.edu/~galles/visualization/BPlusTree.html"},"Visualizzazione di un B+ tree")),e(t.a,null,"È la stessa struttura utilizzata dai ",e(a.b,{href:"/basididati"},"database relazionali"),".")),e("li",null,e("b",null,"Dizionario"),", utilizzando gli ",e("b",null,"hash")," per gli accessi.")),e("p",null,"Per permettere ",e("i",null,"pattern-based query"),", è possibile utilizzare ",e("b",null,"più vocabolari")," per un singolo documento.")),e(a.r,{title:"Posting list"},e("p",null,e("b",null,"Insieme")," di ",e("b",null,"tutte le occorrenze")," di un determinato token."),e("p",null,"Viene implementata attraverso una ",e("b",null,"lista ordinata")," (",e("i",null,"sorted list"),")."),e("p",null,"Essendo ordinata, è efficiente ",e(a.i,null,d(s||(s=c`O(n + m)`)))," nelle operazioni di ",e("b",null,"unione")," e ",e("b",null,"intersezione")," tra più posting list: si mantiene su ognuna un ",e("b",null,"cursore")," che avanza quando l'occorrenza a cui punta è stata superata."),e("p",null,"Non è però efficiente nelle operazioni di ",e("b",null,"negazione"),"."),e("p",null,"È possibile aggiungere ",e("i",null,"skip pointers")," alle posting list, in modo da rendere più efficiente l'intersezione."))),e(a.s,null,e(a.r,{title:"Utilizzo dell'indice"},e("p",null,"Per effettuare una ricerca utilizzando l'indice, sono necessari i seguenti passi:"),e("ol",null,e("li",null,"Si ",e("b",null,"cercano")," individualmente i termini della query nel vocabolario"),e("li",null,"Si ",e("b",null,"accede")," alle posting list dei vari termini"),e("li",null,"Si ",e("b",null,"effettuano")," operazioni logiche sui dati delle posting list"),e("li",null,"Si ",e("b",null,"restituisce")," il sottoinsieme di token risultante")))))}}).call(this,i("hosL").h)},"2w3n":function(e){e.exports={red:"red__2y1B_",orange:"orange__dD2kx",yellow:"yellow__OEpwl",lime:"lime__CVe41",cyan:"cyan__26ZAg",blue:"blue__LO7Xm",magenta:"magenta__1Akee",example:"example__2PzAa"}},"3f/I":function(e,l,i){"use strict";i.r(l),function(e){var n=i("uilM"),a=i("hGQu"),t=i("KMEV"),o=i("roys"),r=i("9ooG"),u=i("1Gqa"),s=i("0vRf"),c=i("RaT1"),d=i("29je"),p=i("oaLv"),m=i("zl8t"),b=i("0tML");l.default=function(){return e("div",null,e("h1",null,"Gestione dell'informazione"),e(n.a,null),e(a.a,null),e(o.a,null),e(r.a,null),e(u.a,null),e(s.a,null),e(t.a,null),e(c.a,null),e(d.a,null),e(p.a,null),e(m.a,null),e(b.a,null))}}.call(this,i("hosL").h)},"9ooG":function(e,l,i){"use strict";(function(e){var n=i("hosL"),a=i("mbOI"),t=(i("KwpI"),i("ke5e"));l.a=function(){return e(n.Fragment,null,e(a.s,{title:"Document processing"},e(a.r,{title:"Cos'è?"},e("p",null,"Una ",e("b",null,"procedura")," che ottimizza un documento per la ricerca."))),e(a.s,null,e(a.r,{title:"1. Analisi lessicale"},e("p",null,"Passo che trasforma il documento in un ",e("b",null,"insieme di parole")," (",e("i",null,"token"),")."),e("p",null,"Deve decidere come considerare i ",e("b",null,"simboli tipografici"),", il ",e("b",null,"case")," delle lettere e le ",e("b",null,"cifre"),"."),e("p",null,"Inoltre, è possibile che disambigui tra i vari significati delle parole (",e("i",null,"word sense disambiguation"),").")),e(a.r,{title:"2. Eliminazione delle stopwords"},e("p",null,"Passo che ",e("b",null,"elimina")," dalla lista i ",e("b",null,"token inutili")," ai fini delle ricerche."),e("p",null,"Esse solitamente sono gli ",e("b",null,"articoli")," e le ",e("b",null,"preposizioni"),"."),e("p",null,"Con l'avanzare degli anni, le stopwords hanno iniziato a ",e("b",null,"diminuire")," sempre di più."),e(t.a,null,"I motori di ricerca moderni non usano nessuna stopword.")),e(a.r,{title:"3. Stemming dei token"},e("p",null,"Passo che ",e("b",null,"riduce alla radice")," tutti i token della lista."),e("p",null,"Converte i ",e("b",null,"plurali in singolari"),", ",e("b",null,"passati ai presenti"),", e così via.")),e(a.r,{title:"4. Normalizzazione dei token"},e("p",null,"Passo che ",e("b",null,"rimuove i caratteri speciali")," contenuti nei token."),e("p",null,"Duplica le parole separate da trattino nella versione con spazio e senza spazio, rimuove gli accenti non significativi, etc.")),e(a.r,{title:"5. Selezione degli index term"},e("p",null,"Passo che ",e("b",null,"seleziona i termini più importanti")," della lista."),e("p",null,"Generalmente sfrutta dei ",e("i",null,"parser")," o dei ",e("i",null,"tagger"),"."),e("aside",null,e("u",null,"Parser"),": impreciso ma molto dettagliato, effettua l'analisi grammaticale, logica e del periodo."),e("aside",null,e("u",null,"Tagger"),": preciso ma poco dettagliato, effettua solo l'analisi logica.")),e(a.r,{title:"6. Categorizzazione"},e("p",null,"Passo che ",e("b",null,"classifica")," il documento in una o più ",e("b",null,"categorie")," del ",e("i",null,"thesaurus"),"."),e("aside",null,e("u",null,"Thesaurus"),": gerarchia di categorie, può essere creata ",e("b",null,"manualmente")," o generata ",e("b",null,"automaticamente"),"."))))}}).call(this,i("hosL").h)},KMEV:function(e,l,i){"use strict";(function(e){var n=i("hosL"),a=i("mbOI");i("KwpI");let t,o,r,u,s,c,d,p=e=>e;const m=String.raw;l.a=function(){return e(n.Fragment,null,e(a.s,{title:"Relazioni tra parole"},e(a.r,{title:"Sinonimia"},e("blockquote",null,"synonymy"),e("p",null,"Due parole sono ",e("i",null,"sinonimi")," quando hanno lo ",e("b",null,"stesso identico significato"),".")),e(a.r,{title:"Similarità"},e("blockquote",null,"similarity"),e("p",null,"Due parole sono ",e("i",null,"simili")," rappresentano concetti con ",e("b",null,"caratteristiche in comune"),".")),e(a.r,{title:"Correlazione"},e("blockquote",null,"relatedness"),e("p",null,"Due parole sono ",e("i",null,"correlate")," quando rappresentano ",e("b",null,"concetti vengono usati insieme")," spesso."))),e(a.s,{title:"Similarità path-based"},e(a.r,{title:"Cos'è?"},e("p",null,"Un modo per misurare la somiglianza tra due parole confrontando solo la loro ",e("b",null,"posizione nel thesaurus"),"."))),e(a.s,null,e(a.r,{title:"Similarità path-distance"},e("p",null,"Calcola la similarità basandosi sull'",e("b",null,"inverso della distanza")," tra le due parole ",e(a.i,null,m(t||(t=p`c_1`)))," e ",e(a.i,null,m(o||(o=p`c_2`)))," nell'albero:"),e(a.q,null,m(r||(r=p`
|
|
sim\_pd(c_1, c_2) = \frac{1}{dist(c_1, c_2) + 1}
|
|
`)))),e(a.r,{title:"Similarità Wu-Palmer"},e("p",null,"Calcola la similarità basandosi sulla ",e("b",null,"profondità dei due nodi")," e sulla ",e("b",null,"profondità del minimo antenato comune")," ",e(a.i,null,m(u||(u=p`mac`))),":"),e(a.q,null,m(s||(s=p`
|
|
sim\_wp(c_1, c_2) = \frac{2 \cdot depth(mac(c_1, c_2))}{depth(c_1) + depth(c_2)}
|
|
`))))),e(a.s,{title:"Somiglianza information-content-based"},e(a.r,{title:"Cos'è?"},e("p",null,"Un modo per misurare la similarità tra due parole attraverso i loro valori di ",e("b",null,"information content"),"."))),e(a.s,null,e(a.r,{title:"Somiglianza Resnik"},e("p",null,"Calcola la similarità basandosi sull'",e("b",null,"information content del minimo antenato comune")," ",e(a.i,null,m(c||(c=p`mac`)))," tra i due termini."),e(a.q,null,m(d||(d=p`
|
|
sim\_rs(c_1, c_2) = - \log P( mac(c_1, c_2) )
|
|
`))))))}}).call(this,i("hosL").h)},KwpI:function(e,l,i){"use strict";(function(e){var n=i("mbOI");l.a=function(l){return e(n.r,{title:"To be continued",color:n.e.YELLOW},e("p",null,"Questa sezione è incompleta. Torna più avanti!"),l.children)}}).call(this,i("hosL").h)},RaT1:function(e,l,i){"use strict";(function(e){var n=i("hosL"),a=i("mbOI");l.a=function(){return e(n.Fragment,null,e(a.s,{title:"Analisi lessicale"},e(a.r,{title:"Word sense disambiguation"},e("p",null,"Procedura che ",e("b",null,"disambigua tra più significati")," dello stesso token."),e("p",null,"Si può realizzare confrontando la somiglianza di ogni significato con tutti gli altri nomi presenti nella frase."))))}}).call(this,i("hosL").h)},hGQu:function(e,l,i){"use strict";(function(e){var n=i("mbOI"),a=i("hosL"),t=i("ke5e");i("YNhk");l.a=function(){return e(a.Fragment,null,e(n.s,{title:"Information Retrieval (IR)"},e(n.r,{title:"Cos'è?"},e("p",null,e("b",null,"Processo")," di ",e("b",null,"raccolta")," e ",e("b",null,"recupero approssimato")," di informazioni spesso ",e("b",null,"non strutturate"),"."),e("p",null,"Riceve in input una ",e("b",null,"query"),", elabora ",e("b",null,"documenti")," e restituisce una ",e("b",null,"risposta")," più rilevante possibile."),e("p",null,"Un'applicazione che effettua IR si chiama ",e("b",null,"motore di ricerca"),".")),e(n.r,{title:"Documenti"},e("p",null,e("b",null,"Raggruppamenti di informazioni")," che possono avere ",e("b",null,"varie forme"),"."),e(t.a,null,"Potrebbe essere un documento un file, oppure un gruppo di informazioni contenute in quel file (email, slides)..."))))}}).call(this,i("hosL").h)},ke5e:function(e,l,i){"use strict";(function(e){var n=i("2w3n"),a=i.n(n);l.a=function(l){return e("div",{class:a.a.example},l.children)}}).call(this,i("hosL").h)},oaLv:function(e,l,i){"use strict";(function(e){var n=i("hosL"),a=i("mbOI"),t=i("ke5e");let o,r,u,s,c,d,p,m,b,f,h,g=e=>e;const z=String.raw;l.a=function(){return e(n.Fragment,null,e(a.s,{title:"Information retrieval models"},e(a.r,{title:"Cosa sono?"},e("p",null,e("b",null,"Modelli matematici")," che ",e("b",null,"ordinano per rilevanza")," (",e("i",null,"ranking"),") i risultati di una query."),e("p",null,"Formalmente, sono composti da:"),e("ul",null,e("li",null,"I documenti ",e(a.i,null,z(o||(o=g`D`)))),e("li",null,"La query ",e(a.i,null,z(r||(r=g`Q`)))),e("li",null,"Una funzione di ",e("i",null,"ranking")," ",e(a.i,null,z(u||(u=g`rank(q_i, d_j) \to \mathbb{R}`)))," che quantifica la similarità")))),e(a.s,null,e(a.r,{title:"Modello classico"},e(t.a,null,"I motori di ricerca web usano generalmente questo modello."),e("p",null,e("b",null,"Modello IR")," che rappresenta ogni documento come un insieme ordinato di ",e("b",null,"parole chiave")," (",e("i",null,"index terms"),")."),e("p",null,"Associa un ",e("b",null,"peso")," a ogni token, e ordina l'insieme in base a quel peso."),e("p",null,"Generalmente, i pesi sono ",e("b",null,"indipendenti")," uno dall'altro, e questo permette di ",e("b",null,"calcolarli parallelamente"),"."),e("p",null,e("u",null,"Bag-of-words"),": L'ordine delle parole nel documento viene solitamente ignorato dal ranking.")),e(a.r,{title:"Modello booleano"},e(t.a,null,e("code",null,"grep")," è a tutti gli effetti un modello booleano."),e("p",null,e("b",null,"Modello IR classico")," che dà un peso booleano a ogni documento: ",e(a.i,null,z(s||(s=g`1`)))," se soddisfa tutti i requisiti della query, ",e(a.i,null,z(c||(c=g`0`)))," se non li soddisfa."),e("p",null,"Ha una ",e("b",null,"precisione perfetta"),", ma richiede query ben preparate e specifiche."),e("p",null,"È anche facile da implementare utilizzando una ",e("b",null,"posting list"),".")),e(a.r,{title:"Modello vettoriale"},e(t.a,null,"Apache Lucene si basa su questo modello."),e("p",null,e("b",null,"Modello IR")," in cui ogni ",e("b",null,"caratteristica")," di un documento è rappresentata con un ",e("b",null,"valore floating point")," e l'intero documento è quindi rappresentato da una ",e("b",null,"n-pla")," di tutte le sue caratteristiche."),e("p",null,e("u",null,"Similarità cosinusoidale"),': il ranking si basa sull\'angolo tra il "vettore query" e il "vettore documento":'),e(a.q,null,z(d||(d=g`
|
|
rank(d_j, q) = \frac{d_j \cdot q}{\| d_j \| \times \| q \|}
|
|
`))),e("p",null,"Spesso si associa un peso a ogni dimensione in modo da variare l'importanza di una data caratteristica; comunemente, per i testi, si usano come pesi le ",e("b",null,"frequenza dei token")," normalizzate (",e("i",null,"df"),") o logaritmiche (",e("i",null,"idf"),")."),e("p",null,"Come il modello classico, ignora l'ordine delle parole.")),e(a.r,{title:"Modello probabilistico"},e("p",null,e("b",null,"Modello IR")," che effettua il ranking in base alla ",e("b",null,"probabilità")," di comparsa dei termini della query nei documenti."),e("p",null,"Si basa sul calcolare un peso ",e(a.i,null,z(p||(p=g`c_i`)))," per ogni termine della query. Quest'ultimo diventa più grande se il termine ",e("b",null,"compare in documenti rilevanti"),", e più piccolo se compare in documenti irrilevanti. Se il termine compare in ugual modo in entrambi, allora esso varrà ",e(a.i,null,z(m||(m=g`0`))),"."),e("p",null,e("i",null,"Ci sarebbe una dimostrazione complessa che ho omesso per brevità."))),e(a.r,{title:"Modello fuzzy"},e("p",null,"Estensione del ",e("b",null,"modello booleano")," che ammette la possibilità che certe condizioni siano ",e("b",null,"parzialmente soddisfatte"),"."),e("p",null,"Invece che usare solo ",e(a.i,null,z(b||(b=g`0`)))," e ",e(a.i,null,z(f||(f=g`1`))),", permette ai documenti di avere valori intermedi tra quei due."),e("p",null,"Le operazioni booleane vengono quindi modificate:"),e(a.q,null,z(h||(h=g`
|
|
\begin{cases}
|
|
a \land b = \min(a, b)\\
|
|
a \lor b = \max(a, b)\\
|
|
\neg\ a = 1 - a
|
|
\end{cases}
|
|
`)))),e(a.r,{title:"Modello BM25"},e("p",null,e("b",null,"Modello IR")," simile ai modelli classici che però tiene conto anche della ",e("b",null,"frequenza dei termini")," nei documenti e della ",e("b",null,"lunghezza dei documenti"),"."),e("p",null,"Permette anche di tenere in considerazione la frequenza dei termini ",e("b",null,"nella query"),", nel caso essa sia molto lunga."),e("p",null,e("i",null,"Ci sono formule che ho omesso per brevità.")))))}}).call(this,i("hosL").h)},roys:function(e,l,i){"use strict";(function(e){var n=i("hosL"),a=i("mbOI"),t=i("ke5e"),o=i("YNhk");l.a=function(){return e(n.Fragment,null,e(a.s,{title:"Query"},e(a.r,{title:"User Information Need (UIN)"},e("p",null,"La ",e("b",null,"richiesta")," di informazioni effettuata da un utente ",e("b",null,"in linguaggio naturale"),".")),e(a.r,{title:"Query"},e("p",null,"La ",e("b",null,"traduzione")," dell'UIN in un linguaggio ",e("b",null,"specifico al motore di ricerca"),"."),e("p",null,"La complessità di questo linguaggio dipende dall'utilizzatore del motore di ricerca: il suo ",e("b",null,"livello di esperienza"),", il suo ",e("b",null,"background di conoscenze")," e il ",e("b",null,"livello di approfondimento desiderato"),"."))),e(a.s,{title:"Query languages"},e(a.r,{title:"Keyword-based query"},e(t.a,null,e(o.a,{href:"https://it.wikipedia.org/w/index.php?search=&title=Speciale:Ricerca&go=Go"},"Wikipedia")," e la ",e(o.a,{href:"https://telegram.org/blog/shared-files#multisearch"},"ricerca di Telegram")," usano un linguaggio di query ",e("i",null,"keyword-based"),"."),e("p",null,"Definisce ",e("b",null,"parole chiave")," da cercare all'interno dei documenti."),e("p",null,"In esse, è possibile cercare ",e("b",null,"molteplici")," parole chiave, ",e("b",null,"concatenarle")," per formare una ",e("b",null,"frase")," oppure cercare parole a una data ",e("b",null,"prossimità")," l'una dall'altra."),e("p",null,"Spesso processa il linguaggio naturale per trasformarne le parole specifiche in parole chiave più generiche."),e(t.a,null,"Cercando su Telegram un plurale inglese, verranno restituiti anche i messaggi che riportano la stessa parola ma al singolare.")),e(a.r,{title:"Pattern-based query"},e(t.a,null,"Le ",e(o.a,{href:"https://regex101.com/"},"regex")," e i ",e(o.a,{href:"https://en.wikipedia.org/wiki/Glob_(programming)"},"glob")," sono due dei pattern-based query languages più comuni."),e("p",null,"Definisce ",e("b",null,"parti di testo")," da cercare all'interno dei documenti."),e("p",null,"Permettono dunque la ricerca di ",e("b",null,"prefissi"),", ",e("b",null,"suffissi"),", ",e("b",null,"sottostringhe")," e ",e("b",null,"intervalli"),"."))),e(a.s,null,e(a.r,{title:"Boolean query"},e(t.a,null,e(o.a,{href:"https://www.google.it/"},"Google"),", ",e(o.a,{href:"https://duckduckgo.com/"},"DuckDuckGo"),", ",e(o.a,{href:"https://www.ecosia.org/"},"Ecosia")," usano tutti un linguaggio di query keyword-based booleano."),e("p",null,e("b",null,"Estendono")," gli altri tipi di query permettendo l'inserimento di ",e("b",null,"operatori booleani")," (",e("code",null,"AND"),", ",e("code",null,"OR")," e ",e("code",null,"NOT"),") tra le parole chiave."),e(t.a,null,"Per esempi sulla sintassi per effettuare ricerche booleane su Google, visita ",e(o.a,{href:"https://www.google.it/advanced_search"},"Google Advanced Search"),".")),e(a.r,{title:"Structural query"},e(t.a,null,e(o.a,{href:"https://books.google.com/advanced_book_search"},"Google Books")," permette di sfruttare la struttura fissa delle informazioni sui libri (titolo, autore, editore...) per ottenere risultati più precisi.,"),e("p",null,"Permettono di effettuare i precedenti tipi di query su ",e("b",null,"specifiche parti della struttura")," dei documenti.")),e(a.r,{title:"Concept-based query"},e(t.a,null,e(o.a,{href:"https://www.ncbi.nlm.nih.gov/mesh"},"MeSH")," cataloga i paper di medicina caricati su PubMed organizzandoli in una gerarchia di categorie."),e("p",null,"Limitano le keyword a un ",e("b",null,"vocabolario predefinito")," utilizzato anche dai documenti."))))}}).call(this,i("hosL").h)},uilM:function(e,l,i){"use strict";(function(e){var n=i("hosL"),a=i("mbOI"),t=i("YNhk");l.a=function(){return e(n.Fragment,null,e(a.s,{title:"Esame"},e(a.r,{title:"Contatti"},e("ul",null,e("li",null,e(t.a,{href:"mailto:federica.mandreoli@unimore.it"},"Prof. Federica Mandreoli")))),e(a.r,{title:"Collegamenti"},e("ul",null,e("li",null,e(t.a,{href:"https://dolly.fim.unimore.it/2020/course/view.php?id=69"},"Pagina Dolly Unimore")))),e(a.r,{title:"Download videolezioni"},e("p",null,"Puoi scaricare le videolezioni di Gestione dell'informazione con ",e(t.a,{href:"https://github.com/Steffo99/bbbdl"},"bbbdl"),":"),e(a.f,{language:"bash"},"bbbdl sync -r https://raw.githubusercontent.com/Steffo99/unimoreinfo-wiki/main/gestionedellinformazione.json"))))}}).call(this,i("hosL").h)},zl8t:function(e,l,i){"use strict";(function(e){var n=i("hosL"),a=i("mbOI"),t=i("ke5e");i("KwpI");let o,r,u,s,c,d,p,m,b,f,h,g,z,v=e=>e;const k=String.raw;l.a=function(){return e(n.Fragment,null,e(a.s,{title:"Parametri di valutazione"},e(a.r,{title:"Richiamo"},e("p",null,"La ",e("b",null,"frazione dei documenti rilevanti totali restituita"),":"),e(a.q,null,k(o||(o=v`
|
|
\frac{R \cap A}{R}
|
|
`)))),e(a.r,{title:"Precisione"},e("p",null,"La ",e("b",null,"frazione dei documenti restituiti che sono rilevanti"),":"),e(a.q,null,k(r||(r=v`
|
|
\frac{R \cap A}{A}
|
|
`))))),e(a.s,{title:"Precisione e richiamo"},e(a.r,{title:"Valutazione dei modelli IR"},e("p",null,"Si effettuano ",e("i",null,"test")," e si valutano precisione e richiamo ottenuti."),e("aside",null,e("u",null,"Test"),": verifica di un programma in cui l'output corretto è conosciuto a priori."),e("p",null,"Il modello IR ideale ha valori di richiamo e precisione di 1, ma nella realtà questi valori tendono ad essere ",e("b",null,"inversamente proporzionali"),"."),e("p",null,"Un fattore significativo nel richiamo e nella precisione è la ",e("b",null,"forma del documento"),"."),e(t.a,null,"Libri interi, capitoli, pagine o frasi; possono essere tutti documenti, cambia solo la loro ",e("i",null,"granularità"),".")),e(a.r,{title:"Misura a livelli di richiamo fissi"},e("p",null,"Si fissano un certo numero di livelli di richiamo desiderati e si misura la precisione che ha il modello in quei punti, creando una ",e("i",null,"curva di richiamo standard"),"."),e("p",null,"È possibile ottenere una ",e("i",null,"curva di richiamo interpolata")," prendendo per ogni punto il valore di massima precisione tra esso e i punti precedenti."),e(t.a,null,"Interpolata mi sembra un termine orribile... Non sarebbe molto meglio ",e("b",null,"monotonica"),"?")),e(a.r,{title:"Media o valore singolo?"},e("p",null,"È possibile misurare la ",e("i",null,"curva di richiamo media")," effettuando la media su più query dei vari valori, e la ",e("i",null,"curva di richiamo a valore singolo")," effettuando una query sola."),e("p",null,"Sono entrambe importanti per effettuare una valutazione, perchè la curva media potrebbe ",e("b",null,"mascherare problemi di specifiche query")," nei modelli.")),e(a.r,{title:"Mean Average Precision (MAP)"},e("p",null,"La media tra i valori di più curve di richiamo."),e("p",null,"È utile per le valutazioni in cui l'utente sta cercando ",e("b",null,"più documenti rilevanti")," alla volta.")),e(a.r,{title:"R-recall e R-precision"},e("p",null,"Valori di recall e precision riguardo i primi ",e(a.i,null,k(u||(u=v`R`)))," documenti restituiti."),e(t.a,null,"La prima pagina di Google (10 documenti) considererà i valori di 10-recall e 10-precision."))),e(a.s,{title:"Misure aggregate"},e(a.r,{title:"Misura F"},e("p",null,"È anche detta ",e("i",null,"media armonica"),"."),e("p",null,"Un ",e("b",null,"singolo valore")," che tiene conto sia della precisione ",e(a.i,null,k(s||(s=v`p`)))," sia del richiamo ",e(a.i,null,k(c||(c=v`r`))),":"),e(a.q,null,k(d||(d=v`
|
|
F = \frac{2}{\frac{1}{p} + \frac{1}{r}}
|
|
`)))),e(a.r,{title:"Misura E"},e("p",null,"Una versione più configurabile della Misura F che permette di ",e("b",null,"dare priorità")," ",e(a.i,null,k(p||(p=v`b`)))," a precisione (",e(a.i,null,k(m||(m=v`b > 1`))),") o a richiamo (",e(a.i,null,k(b||(b=v`b < 1`))),") in base alle proprie esigenze:"),e(a.q,null,k(f||(f=v`
|
|
E = 1 - \frac{1 + b^2}{\frac{b^2}{r} + \frac{1}{p}}
|
|
`))))),e(a.s,{title:"Misure cumulative"},e(a.r,{title:"Discounted Cumulative Gain (DCG)"},e("p",null,"Misura per valutare i motori di ricerca online che tiene conto dell'",e("b",null,"ordine in cui vengono restituiti i documenti"),"."),e("p",null,"Si basa su ",e("b",null,"valutazioni di rilevanza")," e su ",e("b",null,"pesi posizionali")," dei risultati."),e(t.a,null,"Valuta quanto è stata utile questa ricerca:",e("span",{style:"font-size: xx-large; padding-left: 8px;"},"☆☆☆☆☆")),e(t.a,null,"La valutazione del primo risultato viene moltiplicata per ",e(a.i,null,k(h||(h=v`\frac{1}{\log_2(1)}`))),", la seconda per ",e(a.i,null,k(g||(g=v`\frac{1}{\log_2(2)}`))),", la terza per ",e(a.i,null,k(z||(z=v`\frac{1}{\log_2(3)}`)))," e così via.")),e(a.r,{title:"Normalized DCG (NDCG)",color:a.e.YELLOW},e("p",null,"Miglioramento alla DCG che supporta ",e("b",null,"quantità di risultati differenti"),"."),e("i",null,"Non dice la formula, e l'esempio non esemplifica un bel niente..."))))}}).call(this,i("hosL").h)}}]);
|
|
//# sourceMappingURL=route-GestioneDellInformazione.chunk.af84a.esm.js.map
|