Il web intelligente

44
Il web intelligente Smart is the new sexy Better Software 2011 Firenze - 27/ 28 giugno 2011

description

Sono passati decine di anni dai primi siti web composti solo da testo, immagini e link. Ora gli utenti pretendono di più volendo fare di meno. Desiderano che il tuo sito web capisca i loro gusti, fornisca approfondimenti, si modifichi in base alle loro esigenze. Durante questo intervento verranno forniti consigli su quali tecniche e servizi di text analysis, collective intelligence e semantic web possono rendere il nostro sito web intelligente.

Transcript of Il web intelligente

Page 1: Il web intelligente

Il web intelligenteSmart is the new sexy

Better Software 2011Firenze - 27/ 28 giugno 2011

Page 2: Il web intelligente

http://www.exmachina.ch

http://about.me/davidecerbo

http://www.linkedin.com/in/davidecerbo http://twitter.com/davide_cerbo

Happy Developer .

Page 3: Il web intelligente

Ringraziamenti

Costantino Cerbo

Senior developer @ Gebitin Germania

• http://linkedin.com/in/ccerbo• http://text-analysis.sourceforge.net/• http://twitter.com/webtextanalysis

Davide Palmisano

CEO @ Smarteticsin Inghilterra

• http://linkedin.com/in/davidepalmisano• http://smartetics.co.uk/• http://twitter.com/dpalmisano

Page 4: Il web intelligente

 

“Quello che l’informazione consuma è piuttosto ovvio: consuma l’attenzione dei suoi destinatari. Dunque un’abbondanza di 

informazione crea povertà d’attenzione, ed il bisogno di scegliere come distribuire in maniera 

efficiente questa attenzione tra la sovrabbondanza di informazioni che potrebbero 

consumarla”H.A. Simon

Page 5: Il web intelligente

Come ne usciamo?

Aiutiamo il web a diventare piùintelligente!

Page 6: Il web intelligente

Le nostre armi segrete

Analisi del testo

Sistemi di raccomandazione

Open Data

Web Semantico

Page 7: Il web intelligente

Analisi del testo

"si riferisce al processo di estrazione di informazioni di alta qualità dal testo"

(http://en.wikipedia.org/wiki/Text_mining)

I 4 passi base

Esempio

"Grazie a tutti per essere venuti a Better Software"

Page 8: Il web intelligente

Tokenizzazione• Analizzare il testo per estrarre i termini

String[] tokens = {"Grazie", "a", "tutti", "per", "essere", "venuti", "a", "Better", "Software!"}

Normalizzazione• Pulire il testo da caratteri e differenze non utili

String[] tokens = {"grazie", "a", "tutti", "per", "essere", "venuti", "a", "better", "software"}

Page 9: Il web intelligente

Eliminazione "Stop Words"

• Eliminare le parole di uso comune in una lingua che non incidono per l'identificazione del contenuto del testo.

• Esistono delle liste open source per le varie lingue, per l'italiano: http://snowball.tartarus.org/algorithms/italian/stop.txt

String[] tokens = {"grazie", "a", "tutti", "per", "essere", "venuti", "a", "better", "software"}

Page 10: Il web intelligente

Stemming

Lo stemming è il processo di riduzione della forma flessa di una parola alla sua forma radice, detta tema. Il tema non corrisponde necessariamente alla radice morfologica (lemma) della parola: normalmente è sufficiente che le parole correlate siano mappate allo stesso tema. (http://it.wikipedia.org/wiki/Stemming)

Esempio: andare, andai, andò = and

String[] tokens = {"graz", "tutt", "ess", "venut", "better", "softwar"}

Approfondimento su: http://snowball.tartarus.org/algorithms/italian/stemmer.html

Page 11: Il web intelligente

Principali algoritmi• Estrazione contenuto rilevante da pagina web

o http://boilerpipe-web.appspot.com/o https://www.readability.com/

• Rilevamento della linguao https://ajax.googleapis.com/ajax/services/language/detect?v=1.0&q=Benvenuta

%20genteo http://www.alchemyapi.com/api/demo.html

• Estrazione parole chiaveo http://www.alchemyapi.com/api/demo.htmlo http://developer.yahoo.com/search/content/V1/termExtraction.htmlo http://saplo.com/api

• Categorizzazione testoo http://uclassify.com/

• Riassunti automaticio http://topicmarks.com/dashboardo http://shablast.com/?id=1080961&type=Summaryo http://lada.si.umich.edu:8080/clair/nie1/nie.cgi

• Estrazione di "Named entity"o http://cogcomp.cs.illinois.edu/demo/ner/?id=8 o http://access.alchemyapi.com/demo/entities_int.html?mode=entityo http://www.opencalais.com/about

Page 12: Il web intelligente

Categorizza dei testi in positivi o negativi tramite l'estrazione di frasi o

parole chiave

Molto usato per analisi su Twitter o su post dei blog

• Twittero http://www.tweetfeel.como http://twittersentiment.appspot.com/

• Ristoranti, hotel, aziendeo http://www.infoglutton.com

• Mercato azionarioo http://www.thestocksonar.com

• Marchi, avvenimenti, etco http://www.repustate.com

Sentimental Analysis

Page 13: Il web intelligente

Sentimental Analysis: un esempio

Page 14: Il web intelligente

Il Semantic Web

Semantic Web, Web of Data, Machine-readable Web, Web 3.0 ... termini differenti per indicare la stessa idea:

correlare dati eterogenei tra di loro come fossero pagine Web

"The Semantic Web is a webby way to link data"  - Dave Beckett, Yahoo Inc.

Page 15: Il web intelligente

Il Semantic Web: building blocks

RDF

RDFa

Microformats

Microdata

schema.org

Page 16: Il web intelligente

Il Semantic Web: RDFResource Description Framework (RDF) è lo standard base del W3C.

• qualsiasi entità descrivibile è identificata da una URI• proprietà e relazioni tra entità vengono espresse con URI• lo statement (o tripla) è l'unità base: soggetto - predicato - oggetto• un insieme di statement fanno un grafo RDF • i grafi si serializzano tramite: RDF/XML, N-Triples, Notation3, ...

Esempio: Davide Cerbo è l'autore della presentazione il Web Intelligente

diventa in RDF/XML:<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:au="http://description.org/schema/"><rdf:Description about="http://snoopal.com/..."> <au:author>http://snoopal.com/user/davidecerbo</au:author></rdf:Description> </rdf:RDF>

Page 17: Il web intelligente

Il Semantic Web: RDFaResource Description Framework-in-Attribute (RDFA) è una W3C

Recommendation per aggiungere RDF nelle pagine web.

Gli attributi usati sono: about o src, rel o rev, href or resource, property, content, datatype e typeof

Esempio:

<div xmlns:dc="http://purl.org/dc/elements/1.1/" about="http://snoopal.com..."> <span property="dc:title">Il web Intelligente</span> <span property="dc:creator">Davide Cerbo</span> <span property="dc:date">2011-06-27</span></div>

Page 18: Il web intelligente

Il Semantic Web: Microformats

Microformats è una specifica per includere informazioni semantiche in una pagina web usando gli attributi:• class• rel

Ha molte specifiche per descrivere, ad esempio: ricette (hRecipe), CV (hResume), recensioni (hReview) e risorse multimediali (hMedia).

Esempio:<div class="vcard"> <div class="fn">Davide Cerbo</div> <div class="org">Ex Machina</div> <div class="tel">+41 00 000 000 000</div> <a class="url" href="http://...">http//exmachina.ch</a></div>

Page 19: Il web intelligente

Il Semantic Web: MicrodataMicrodata e' parte di una specifica di HTML5 per annotare semanticamente porzioni della pagina Web. La specifica prevede un algoritmo per convertirle Microdata in RDF. L'idea alla base e' quella di prevedere gruppi (items) di coppie chiave-valore (itemprop), rappresentati da elementi del DOM annotati con i seguenti attributi:

itemscope, itemtype, itemid, itemref e itemprop

Esempio:<section itemscope itemtype="http://example.org/animals#cat"> <h1 itemprop="name">Hedral</h1> <p itemprop="desc">Hedral is a male american domestic shorthair, with a fluffy black fur with white ...</p> <img itemprop="img" src="hd.jpg" title="Hedral,age 18 "> </section>

Page 20: Il web intelligente

Il Semantic Web: Schema.orgDa un accordo tra i principali motori di ricerca

nasce schema.org, un vocabolario basato su Microdata per la descrizione di entità di uso comune: • Creative works: Book, Movie, MusicRecording, Recipe, TVSeries ...• Embedded non-text objects: AudioObject, ImageObject, VideoObject• Person• Place, LocalBusiness, Restaurant ...

I SEO dovranno rispettare un solo standard!

Page 21: Il web intelligente

Il Semantic Web: Real life :-)

Page 22: Il web intelligente

Il Semantic Web: Real life :-)

Page 23: Il web intelligente

"Pensiamo che sia ingiusto che Google o altri prendano i nostri 

contenuti senza pagare "  

Carlo De Benedetti

Page 24: Il web intelligente

"My Administration is committed to creating an unprecedented level of openness in Government.   

We will work together to ensure the public trust and establish a system of transparency, 

public participation, and collaboration. Openness will strengthen our democracy and promote efficiency and effectiveness in Government."

Open Government Initiative Memorandum, President B. Obama 

Page 25: Il web intelligente

Open data e il Semantic Web• L'idea alla base prevede che alcuni dati siano pubblici e

riusabili da liberamente al fine di promuovere trasparenza e partecipazione democratica

• Numerose iniziativeo data.govo data.gov.uko dati.piemonte.ito datasf.orgo ... cerca #opendata su twitter ;)

Page 26: Il web intelligente

Open data e il Semantic WebTuttavia la pubblicazione dei dati rimane estremamente eterogenea:• file CSV, testi non strutturati• XML• ...• fino a piattaforme più sofisticate

L'eterogeneità rimane un ostacolo allo sviluppo rapido di mashups e applicazioni Necessità di gestire il licensing dei dati

Necessità di monetizzare API e mashups su questi dati

Metodo per il riconoscimento della qualità dei data sets

Page 27: Il web intelligente

Il Semantic Web: Linked Open Data

Il web permette di collegare documenti. Similarmente permette di collegare dati. Il termini Linked Data fa riferimento ad un

insieme di best practices per pubblicare e collegare dati strutturati nel Web. Le tecnologie chiave che supportano

Linked Data sono URI ( un modo generico per indentificare entità o concetti nel mondo), HTTP (un meccanismo semplice, ma universale, per recuperare risorse o descrizioni di risorse), e RDF (un generico modello basato su grafo che struttura e

collega le cose nel mondo).

Tom Heath

(http://tomheath.com/papers/bizer-heath-berners-lee-ijswis-linked-data.pdf)

Page 28: Il web intelligente

ottobre 2007...

Page 29: Il web intelligente

...settembre 2010

Page 30: Il web intelligente

Il Semantic Web: a 5 stelle

★★★★★ rendi i tuoi dati disponibili sul web (in qualsiasi formato) e con una licenza aperta★★★★★ forniscili come dati strutturati★★★★★ usa formati non proprietari★★★★★ usa URI per identificare le tue risorse, così che gli utenti possano puntarle direttamente★★★★★ collega i dati ad altri dati per fornire un contesto

http://lab.linkeddata.deri.ie/2010/star-scheme-by-example/

Page 31: Il web intelligente

Il Semantic Web: data marketsLinked Open Data è un modello per la pubblicazione e l'interlinking di open data sets differenti.

La ricerca degli stessi, la loro catalogazione, la pubblicazione di API derivate dal mashup degli stessista portando ai primi data markets: • datamarket.com• infochimps.com• kasabi.com• factual.com• ckan.net

Si intravedono i primi revenue model per data owner e API

Page 32: Il web intelligente

Ed ora?

Mashup     Sistemi di raccomandazione   Data mining

Page 33: Il web intelligente

 

 "Il 90% di tutto è spazzatura"

Theodore Sturgeon

Page 34: Il web intelligente

  

"Che cos'è l'intelligenza collettiva? In primo luogo bisogna riconoscere che l'intelligenza è distribuita dovunque c'è 

umanità, e che questa intelligenza, distribuita dappertutto, può essere valorizzata al massimo mediante le nuove 

tecniche, soprattutto mettendola in sinergia. Oggi, se due persone distanti sanno due cose complementari, per il 

tramite delle nuove tecnologie, possono davvero entrare in comunicazione l'una con l'altra, scambiare il loro sapere, 

cooperare. Detto in modo assai generale, per grandi linee, è questa in fondo l'intelligenza collettiva"

Pierre Lévy

Page 35: Il web intelligente

Sistemi di raccomandazione

La nostra missione: Fornire ai nostri utenti gli elementi di loro interesse a partire dai dati di cui si dispone: informazioni su utenti e oggetti.

Tipi:• Basati sul contenuto

elementi simili a quelli piaciuti nel passato

• Collaborativielementi che sono piaciuti a persone con profili simili

• Ibridiun mix trai precedenti

Page 36: Il web intelligente

Basati sul contenutoPunti chiave:• Creare un profilo per ogni elemento • Il profilo assegnato manualmente o automaticamente. • Per i testi si utilizzano le tecniche di analisi del testo.

Esempio:Se io compro un libro di James Frey mi verranno suggeriti tutti 

gli altri libri dello stesso autore, dello stesso genere, pubblicati nello stesso anno

Pro:• buoni risultati anche in sistemi con pochi utenti

Contro:• offre raccomandazioni scontate (e.s.: i libri di James Frey li posso scoprire anche vedendo 

la sua bibliografia)

Page 37: Il web intelligente

Collaborativi: Memory-basedPunti chiave:• Si basano sulla storie delle valutazioni degli utenti. • Vengono usate diverse tecniche euristiche per calcolare la somiglianza tra

utenti come il calcolo del Coefficiente di correlazione di r di Pearson. • Non tutti gli utenti valutano gli elementi nello stesso modo. I voti vanno

normalizzati!

Esempio:Se io compro un libro di James Frey mi verranno suggeriti i libri

comprati da un gruppo di persone che hanno fatto lo stesso acquisto.

Pro:• offre raccomandazioni più imprevedibili• crea relazioni fra utenti e la possibilità di raccomandazioni indirette

Contro:• cold start: servono molti utenti per avere buone raccomandazioni• difficilmente tutti gli utenti esprimeranno preferenze su un numero sufficiente

di risultati (si può risolvere con la Dimensionality Reduction)• Banana Problem: si suggeriscono sempre degli elementi molto comuni

Page 38: Il web intelligente

Collaborativi: Model-basedPunti chiave:• Si basano sulla storie delle valutazioni degli utenti per creare un modello• Solitamente basato sul calcolo delle probabilità. • Sfruttano l'Analisi del Collegamenti.

Esempio:Se io compro un libro di James Frey mi verranno suggeriti i libri

comprati da un gruppo di persone che hanno fatto lo stesso acquisto.Dando maggior peso a quelli acquistati da utenti molto 

attivi o importanti nel sistema.

Pro:• offre raccomandazioni più affidabili rispetto ai Memory-based• gli stessi del Memory-based

Contro:• costi computazionali elevati• gli stessi del Memory-based

Page 39: Il web intelligente

Links raccomandati :)

• IntroAnalyticshttp://www.introanalytics.com/examples.php

• DirectEdgehttp://www.directededge.com/

• Sailthru Conciergehttps://www.sailthru.com/concierge

• kassandra-recommendationshttp://code.google.com/p/kassandra-recommendations/

Page 40: Il web intelligente

L'angolo dello smanettone 1/2• Apache Lucene

http://lucene.apache.org/java/docs/• Text Analysis

http://text-analysis.sourceforge.net/• Apache OpenNLP

http://incubator.apache.org/opennlp/• LingPipe

http://alias-i.com/lingpipe/• NLTK (python)

http://www.nltk.org/• Apache Mahout

http://mahout.apache.org/• Apache UIMA

http://uima.apache.org/• Any23

http://developers.any23.org

Page 41: Il web intelligente

L'angolo dello smanettone 2/2• Virtuoso (anche OpenSource)

http://virtuoso.openlinksw.com/• Jena

http://jena.sourceforge.net/• Sesame

http://www.openrdf.org/• JRDF

http://jrdf.sourceforge.net/• SIREn

http://siren.sindice.com/• Apache Clerezza

http://incubator.apache.org/clerezza/• OrientDb (graph DB prima o poi vi servirà!)

http://www.orientechnologies.com/• Sail Ouplementation

https://github.com/tinkerpop/blueprints/wiki/Sail-Ouplementation

Page 42: Il web intelligente

Letture consigliate 1/2

• Algorithms of the Intelligent Web http://www.manning.com/marmanis/

• Mining the Social Web http://oreilly.com/catalog/0636920010203/

• Collective Intelligence in Action http://www.manning.com/alag/

• Programming Collective Intelligence http://oreilly.com/catalog/9780596529321

• Costruire sistemi per la reputazione Webhttp://www.tecnichenuove.com/libri/costruire_sistemi_per_reputazione_web.html

Page 43: Il web intelligente

Letture consigliate 2/2

• Semantic Web. Dai fondamenti alla realizzazione di un'applicazione  http://hpe.pearson.it/scheda_opera.php?ID=2789&macrodestinazioneID=&materiaID=

• Thinking on the Web Web  http://www.wiley.com/WileyCDA/WileyTitle/productCd-0471768669.html

Page 44: Il web intelligente

Q&A