Descrizione dei servizi di analisi testuale sviluppati nell'ambito del progetto di ricerca SenTaClAus.
Per maggiori informazioni sul progetto visitate il sito http://sentaclaus.netseven.it
2. Perché servono i servizi di analisi del testo?
• I documenti testuali sono una forma di conoscenza non strutturata e
“disordinata”
• Come mettere “ordine”?
• Come estrarre informazioni strutturate da essi?
3. Come gestire il testo
• Indicizzazione via motore di ricerca
– Efficace ma tratta il testo come una “bag of words”
– Impossibile identificare sinonimi o polisemie
– Es. “Rock”. Si parla di Geologia o di Musica?
• Classificazione: assegno dei concetti (es. dei tag) per categorizzare
un documento
– Come farla? A mano? Precisa ma onerosa.
– Più efficace se il vocabolario dei concetti è controllato, per evitare il
rischio di una “balcanizzazione” delle chiavi di classificazione
4. Entity Extraction: cos’è?
• Estrazione automatica di conoscenza da un testo
• In che forma?
– Riconosce i concetti contenuti nel testo
• Concetti e non “parole chiave”
– Un motore di ricerca full-text (es. Solr) indicizza le stringhe senza
discernere il loro significato
• Es. “Industrial revolution”? Si parla di storia o di musica industriale?
5. Entity Extraction and Annotation
• Riconoscere concetti vuol dire:
– Risolvere eventuali omonimie
– Identificare i concetti anche se sono scritti in forma alternativa o parziale
• Annotazione: i frammenti di testo associati ai concetti vengono
riconosciuti e “linkati” ad essi.
6. Entity Extraction: un esempio
• Dall’analisi del contesto si riescono a identificare i termini in modo
preciso e non ambiguo.
NIN leader says he's working on another soundtrack after the golden
globe victory for "The Social Network". Reznor says: "Expect
something dark, gloomy and industrial”
!
– NIN –> Nine Inch Nails
– The Social Network -> il film, non Facebook!
– Reznor -> Trent Reznor
– Industrial ->Industrial Music
7. In principio c’era… TagMe!
• Servizio ideato dal gruppo di ricerca del Prof. Ferragina dell’Università di
Pisa
http://tagme.di.unipi.it/
• RESTful API: invocata con parametri key, lang e text
!
!
• Es. di Response
9. Welcome SenTaClAus!
• Sentiment Tagging & Clustering Analysis on web & social contents
• Progetto di Ricerca Industriale finanziato dalla Regione Toscana
nell’ambito del Bando Unico 2012
• Durata due anni; data di inizio 1/1/2013
• Due le linee di ricerca:
– Analisi ed estrazione di semantica da documenti di testo (Text Analysis)
• Il punto di partenza per questa attività è stato proprio TagMe
– Analisi delle tendenze, comportamenti e opinioni degli utenti a partire dai
contenuti pubblicati sui Social Networks (Trend Analysis).
• Usa la Text Analysis come motore per l’analisi delle tendenze.
10. I partner
• Net7 (Capofila)
– Coordinamento, ricerca e sviluppo sulla Text e Trend Analysis
• SpazioDati!
– Ricerca e sviluppo in ambito di Text Analysis
• StudioFlu!
– Ricerca e sviluppo in ambito di infografica e usabilità
applicate alla Trend Analysis
• Gruppo A3 del Dipartimento di Informatica dell'Università
di Pisa, diretto dal Prof. Paolo Ferragina
– Consulenza scientifica e attività di ricerca in materia di Text
Analysis
11. La logica di Entity Extraction in SenTaClAus
• L’obiettivo è il riconoscimento del giusto contesto per interpretare i
termini di un testo
• Passaggio di gestione da “bag of words” ad un “graph of topics”
– Bag of words: parole gestite in modo slegato e indipendente tra loro
– Graph of topics: concetti in relazione tra loro in funzione del loro significato
(approccio semantico)
• Uso di vocabolari controllati per riconoscere i concetti e le relazioni tra
di essi
• Uso di Wikipedia come vocabolario controllato!
– Ogni pagina di Wikipedia è un concetto: tramite i link fra le sue pagine
identifico le relazioni tra i termini
12. Pregi e difetti dei questo approccio
• Pregi
– Genericità!
– Wikipedia è una risorsa “generica” applicabile ad ogni campo dello scibile
umano
– Multilingua!
– È possibile applicare lo stesso approccio per realizzare un’efficace Entity
Extraction per tutte le lingue su cui Wikipedia ha un numero significativo di
termini.
• Difetti:
– Il link dà poca espressività nelle relazioni tra i termini (stesso difetto del “web of
documents”). Non spiega da cosa nasce la relazione.
– Poco efficace nell’analisi di testo per domini specifici o privati (es. documenti
aziendali)
13. Un esempio di Text Analysis
NIN leader says he's working on another soundtrack after the golden
globe victory for "The Social Network". Reznor says: "Expect
something dark, gloomy and industrial”
14. Un esempio di Text Analysis
NIN leader says he's working on another soundtrack after the golden
globe victory for "The Social Network". Reznor says: "Expect
something dark, gloomy and industrial”
API JSON (get/post):
http://devsentaclaus.netseven.it/tag?
text=….&include=types,categories&min_confidence=0.4
15. Un esempio di Text Analysis
NIN leader says he's working on another soundtrack after the golden
globe victory for "The Social Network". Reznor says: "Expect
something dark, gloomy and industrial”
NIN -> Nine Inch Nails (Musical Artist)
API JSON (get/post):
http://devsentaclaus.netseven.it/tag?
text=….&include=types,categories&min_confidence=0.4
16. Un esempio di Text Analysis
NIN leader says he's working on another soundtrack after the golden
globe victory for "The Social Network". Reznor says: "Expect
something dark, gloomy and industrial”
NIN -> Nine Inch Nails (Musical Artist)
Soundtrack (Concept)
API JSON (get/post):
http://devsentaclaus.netseven.it/tag?
text=….&include=types,categories&min_confidence=0.4
17. Un esempio di Text Analysis
NIN leader says he's working on another soundtrack after the golden
globe victory for "The Social Network". Reznor says: "Expect
something dark, gloomy and industrial”
NIN -> Nine Inch Nails (Musical Artist)
Soundtrack (Concept)
Golden Globe -> Golden Globe Award (Concept)
API JSON (get/post):
http://devsentaclaus.netseven.it/tag?
text=….&include=types,categories&min_confidence=0.4
18. Un esempio di Text Analysis
NIN leader says he's working on another soundtrack after the golden
globe victory for "The Social Network". Reznor says: "Expect
something dark, gloomy and industrial”
NIN -> Nine Inch Nails (Musical Artist)
Soundtrack (Concept)
The Social Network (Work)
Golden Globe -> Golden Globe Award (Concept)
API JSON (get/post):
http://devsentaclaus.netseven.it/tag?
text=….&include=types,categories&min_confidence=0.4
19. Un esempio di Text Analysis
NIN leader says he's working on another soundtrack after the golden
globe victory for "The Social Network". Reznor says: "Expect
something dark, gloomy and industrial”
NIN -> Nine Inch Nails (Musical Artist)
Soundtrack (Concept)
The Social Network (Work)
Reznor -> Trent Reznor (Person)
Golden Globe -> Golden Globe Award (Concept)
API JSON (get/post):
http://devsentaclaus.netseven.it/tag?
text=….&include=types,categories&min_confidence=0.4
20. Un esempio di Text Analysis
NIN leader says he's working on another soundtrack after the golden
globe victory for "The Social Network". Reznor says: "Expect
something dark, gloomy and industrial”
NIN -> Nine Inch Nails (Musical Artist)
Soundtrack (Concept)
The Social Network (Work)
Reznor -> Trent Reznor (Person)
Golden Globe -> Golden Globe Award (Concept)
Industrial -> Industrial Music (Concept)
API JSON (get/post):
http://devsentaclaus.netseven.it/tag?
text=….&include=types,categories&min_confidence=0.4
21. La Text Analysis nel progetto SenTaClAus
• Estensione e reingegnerizzazione del motore di TagMe
• Integrazione con repository semantici per riconoscere le classi dei concetti
identificati
– Macrocategorizzazione in 5 tipologie: Work, Concept, Place, Organisation, Person
– Possibilità di ottenere i tipi e le categorie da Wikipedia e DBPedia
• Estensione alle altre lingue
– Supporto dell’italiano e dell’inglese. Presto arriveranno anche il francese e il tedesco.
• Verticalizzazioni del servizio
– Classificazione automatica, Similitudine/Clustering
• Estensione del vocabolario con concetti personalizzati
– Es. i termini usati di frequente da un’azienda nei propri documenti
• Sentiment Analysis: coming soon…
22. • Il più ovvio: identificazione dei termini rilevanti in un testo
!
• In SenTaClAus si usa come “motore” della Trend Analysis
– Dato un flusso di post dai Social Network, si identificano in esso i
concetti più citati.
Usi possibili della Entity Extraction
23. • Il più ovvio: identificazione dei termini rilevanti in un testo
!
• In SenTaClAus si usa come “motore” della Trend Analysis
– Dato un flusso di post dai Social Network, si identificano in esso i
concetti più citati.
Usi possibili della Entity Extraction
24. • Il più ovvio: identificazione dei termini rilevanti in un testo
!
• In SenTaClAus si usa come “motore” della Trend Analysis
– Dato un flusso di post dai Social Network, si identificano in esso i
concetti più citati.
Usi possibili della Entity Extraction
25. • Il più ovvio: identificazione dei termini rilevanti in un testo
!
• In SenTaClAus si usa come “motore” della Trend Analysis
– Dato un flusso di post dai Social Network, si identificano in esso i
concetti più citati.
Usi possibili della Entity Extraction
26. Altri usi possibili: classificazione automatica
• Data una mia tassonomia, associo alle sue categorie dei concetti di
Wikipedia
• Un testo viene classificato in funzione dei concetti riconosciuti in
esso
27. Altri usi possibili: classificazione automatica
Concetto
X
Concetto
Y
Concetto
Z
• Data una mia tassonomia, associo alle sue categorie dei concetti di
Wikipedia
• Un testo viene classificato in funzione dei concetti riconosciuti in
esso
28. Altri usi possibili: classificazione automatica
Concetto
X
Concetto
Y
Concetto
Z
• Data una mia tassonomia, associo alle sue categorie dei concetti di
Wikipedia
• Un testo viene classificato in funzione dei concetti riconosciuti in
esso
29. Altri usi possibili: classificazione automatica
Concetto
X
Concetto
Y
Concetto
Z
• Data una mia tassonomia, associo alle sue categorie dei concetti di
Wikipedia
• Un testo viene classificato in funzione dei concetti riconosciuti in
esso
30. Altri usi possibili: classificazione automatica
Concetto
X
Concetto
Y
Concetto
Z
• Data una mia tassonomia, associo alle sue categorie dei concetti di
Wikipedia
• Un testo viene classificato in funzione dei concetti riconosciuti in
esso
31. Similitudine e Clustering
• Identificare la similitudine tra documenti a seconda dei concetti che
contengono
• Clustering: raggruppare i documenti simili tra loro
32. Similitudine e Clustering
• Identificare la similitudine tra documenti a seconda dei concetti che
contengono
• Clustering: raggruppare i documenti simili tra loro
33. Similitudine e Clustering
• Identificare la similitudine tra documenti a seconda dei concetti che
contengono
• Clustering: raggruppare i documenti simili tra loro
Concetto
X
Concetto
Y
Concetto
Z
34. Similitudine e Clustering
• Identificare la similitudine tra documenti a seconda dei concetti che
contengono
• Clustering: raggruppare i documenti simili tra loro
Concetto
X
Concetto
Y
Concetto
Z
35. Similitudine e Clustering
• Identificare la similitudine tra documenti a seconda dei concetti che
contengono
• Clustering: raggruppare i documenti simili tra loro
Concetto
X
Concetto
Y
Concetto
Z
36. Similitudine e Clustering
• Identificare la similitudine tra documenti a seconda dei concetti che
contengono
• Clustering: raggruppare i documenti simili tra loro
Concetto
X
Concetto
Y
Concetto
Z
37. Servizi esistenti di Entity Extraction
• AlchemyAPI: http://www.alchemyapi.com/
– Azienda leader nel campo dei servizi di analisi testuale
– Moltissimi clienti e servizi assai diversificati
– Qualità limitata dei suoi servizi su testi in italiano
• Machine Linking: http://www.machinelinking.com/
– Azienda italiana nata da uno spin-off della FBK di Trento
– Usa una tecnica simile a quella della Text Analysis di SenTaClAus, con
risultati paragonabili sull’italiano e l’inglese
– Oltre 35 le lingue supportate finora
38. Altri servizi di Entity Extraction
• OpenCalais: http://www.opencalais.com/
– Azienda del gruppo Reuters
– Italiano non supportato
• Semantria: https://semantria.com
– Numero crescente di clienti grazie alla possibilità di usare i suoi servizi da
Excel
– Italiano non supportato
• TextAlytics: http://textalytics.com
– Buon servizio di classificazione automatica
– Italiano non supportato
39. Altri servizi di Entity Extraction (cont)
• Zemanta: http://www.zemanta.com/
– Entity extraction finalizzata a strategie di SEO
– Italiano non supportato
• DBPedia Spotlight: http://dbpedia-spotlight.github.com/demo/
– Servizio nato da un’iniziativa di ricerca dell’Università di Berlino
– Fino a poco tempo fa supportava solo l’inglese e aveva delle
performance scarse
– Nuova reingegnerizzazione con oltre 10 lingue supportate (incluso
l’italiano) e un netto incremento dei tempi di risposta.
40. Limiti di tutti questi servizi
• Inefficaci su concetti “specifici”, legati a contesti ben determinati.
• Si pensi all’interpretazione di un documento sulla vita aziendale di Net7
Federico Ruberti e Alessio Piccoli sono fra i soci di maggioranza di Net7 Srl.
L’azienda ha partecipato per anni al Consorzio Apice di CNA. Uno dei suoi
progetti di punta sulle Digital Humanities è Burckhardt. Altro progetto digihum è
il Furioso.
• Persone non riconosciute. Aziende e Partner non riconosciuti. Progetti
non riconosciuti. “Slang” aziendali non riconosciuti.
• Utile affiancare strumenti che consentono di gestire un vocabolario
“custom” di concetti (un “graph of topics” privato)
COSA USARE IN QUESTO CASO???
41. Prima esperienza in Net7: Apache Stanbol
• Progetto Apache molto ambizioso ed esteso
– http://stanbol.apache.org/
• Fra i suoi moduli c’è il Keyword Linking Engine
– Consente la Entity Extractions da vocabolari controllati, creati ad-hoc.
• Usato da Net7 nel progetto Hypernexus* per identificare persone e aziende.
Es.:
– “Massimiliano Pardini” -> Pardini, Pardo, pardini@netseven.it,
@naturemaxphoto.
– “Hyperborea srl” -> Hyperborea, HB, H2 srl, H2
• Motore basato su Solr/Lucene
*: http://www.netseven.it/portfolio/hypernexus/
42. Coming soon: estensioni della Text Analysis
• Custom Spots: etichette alternative e personalizzabili da associare a
concetti esistenti
– Es. digihum -> http://en.wikipedia.org/wiki/Digital_Humanities
• Custom Entities: permettono di estendere il grafo dei concetti della
Text Analysis con entità custom, che non esistono in Wikipedia.
– Es. Net7, Massimiliano Pardini, Hyperborea, Progetto Burkhardt
• Attualmente in corso di realizzazione in SenTaClAus
43. Info: http://sentaclaus.netseven.it
http://www.netseven.it
Photo credits:
• Slide 2: Robert Huffstutter - https://flic.kr/p/7fUA9X - CC BY-NC 2.0; Mike Carney - https://flic.kr/p/52LaKD - CC BY-NC-ND 2.0
• Slide 4: Har tmann Maschinenhalle 1868 (01) - http://en.wikipedia.org/wiki/Industrial_Revolution#mediaviewer/
File:Hartmann_Maschinenhalle_1868_(01).jpg - Public domain; Front cover of Industrial [r]Evolution, Giovanni Rossi - http://industrialrevolution-
gr.blogspot.it/
• Slide 5: Picture from DM2E Pundit Introduction video - http://vimeo.com/85261745
• Slide 7: TagMe web site - http://tagme.di.unipi.it/