I servizi semantici di analisi testuale nel progetto SenTaClAus

Preview:

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, pardini@netseven.it, @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/

Recommended