Upload
net7
View
903
Download
2
Embed Size (px)
DESCRIPTION
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
Citation preview
I servizi semantici di analisi testuale nel progetto SenTaClAus
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?
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
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?
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.
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
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
In principio c’era… TagMe!
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.
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
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
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)
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”
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
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
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
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
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
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
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
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…
• 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
• 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
• 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
• 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
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
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
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
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
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
Similitudine e Clustering
• Identificare la similitudine tra documenti a seconda dei concetti che contengono
• Clustering: raggruppare i documenti simili tra loro
Similitudine e Clustering
• Identificare la similitudine tra documenti a seconda dei concetti che contengono
• Clustering: raggruppare i documenti simili tra loro
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
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
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
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
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
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
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.
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???
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, [email protected], @naturemaxphoto.
– “Hyperborea srl” -> Hyperborea, HB, H2 srl, H2
• Motore basato su Solr/Lucene
*: http://www.netseven.it/portfolio/hypernexus/
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
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 • S l ide 4 : Ha r tmann Masch inenha l l e 1868 (01 ) - h t tp : / / en .w i k iped ia .o rg /w i k i / I ndus t r i a l _Revo lu t i on#med iav iewe r /
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/