Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

La semantica per automatizzare una redazione web: l’esperienza di Innolabsplus.eu

1,748 views

Published on

Slide della presentazione tenuta al Drupal Day del 4 dicembre 2015 a Bologna da Luca De Santis e Massimiliano Pardini sul progetto Innolabsplus.
Innolabsplus.eu è un portale informativo sulle politiche comunitarie. La sua peculiarità è quello di integrare un motore semantico per automatizzare le funzioni redazionali. Il portale importa oltre 40 feed da siti informativi e istituzionali: tramite il motore semantico identifica i concetti chiave nel testo e applica una classificazione automatica. Il portale integra le funzionalità semantiche delle Dandelion API: il risultato è un modulo Drupal 7 che Net7 ha rilasciato con licenza open source.

Published in: Internet
  • DOWNLOAD THAT BOOKS INTO AVAILABLE FORMAT (2019 Update) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full doc Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download doc Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... ......................................................................................................................... ................................................................................................................................... eBook is an electronic version of a traditional print book that can be read by using a personal computer or by using an eBook reader. (An eBook reader can be a software application for use on a computer such as Microsoft's free Reader application, or a book-sized computer that is used solely as a reading device such as Nuvomedia's Rocket eBook.) Users can purchase an eBook on diskette or CD, but the most popular method of getting an eBook is to purchase a downloadable file of the eBook (or other reading material) from a Web site (such as Barnes and Noble) to be read from the user's computer or reading device. Generally, an eBook can be downloaded in five minutes or less ......................................................................................................................... .............. Browse by Genre Available eBooks .............................................................................................................................. Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, ......................................................................................................................... ......................................................................................................................... .....BEST SELLER FOR EBOOK RECOMMEND............................................................. ......................................................................................................................... Blowout: Corrupted Democracy, Rogue State Russia, and the Richest, Most Destructive Industry on Earth,-- The Ride of a Lifetime: Lessons Learned from 15 Years as CEO of the Walt Disney Company,-- Call Sign Chaos: Learning to Lead,-- StrengthsFinder 2.0,-- Stillness Is the Key,-- She Said: Breaking the Sexual Harassment Story That Helped Ignite a Movement,-- Atomic Habits: An Easy & Proven Way to Build Good Habits & Break Bad Ones,-- Everything Is Figureoutable,-- What It Takes: Lessons in the Pursuit of Excellence,-- Rich Dad Poor Dad: What the Rich Teach Their Kids About Money That the Poor and Middle Class Do Not!,-- The Total Money Makeover: Classic Edition: A Proven Plan for Financial Fitness,-- Shut Up and Listen!: Hard Business Truths that Will Help You Succeed, ......................................................................................................................... .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

La semantica per automatizzare una redazione web: l’esperienza di Innolabsplus.eu

  1. 1. ! La semantica per automatizzare una redazione web:! l’esperienza di Innolabsplus.eu Bologna 4 dicembre 2015 Luca De Santis – Massimiliano Pardini Net7 Srl - Pisa
  2. 2. ! Innolabsplus.eu: cos’è http://innolabsplus.eu/! •  Innolabs+: portale informativo multilingua per professionisti e imprese sulle politiche comunitarie in materia di innovazione.! •  Realizzato nell’ambito di un progetto del Dipartimento di Scienze Politiche dell’Università di Pisa!
  3. 3. ! Innolabsplus.eu: cos’è
  4. 4. ! Innolabsplus.eu: cos’è
  5. 5. ! •  Obiettivo: fornire informazioni aggiornate, selezionate e classificate secondo 3 obiettivi principali e 11 categorie! –  Crescita Intelligente, Crescita Inclusiva, Crescita Sostenibile! •  Fonti: oltre 40 siti italiani, francesi e comunitari in lingua inglese! •  Il lavoro di cernita è facile se hai a disposizione una redazione numerosa ed esperta di politiche comunitarie…! Innolabsplus.eu: cosa fa
  6. 6. ! •  Obiettivo: fornire informazioni aggiornate, selezionate e classificate secondo 3 obiettivi principali e 11 categorie! –  Crescita Intelligente, Crescita Inclusiva, Crescita Sostenibile! •  Fonti: oltre 40 siti italiani, francesi e comunitari in lingua inglese! •  Il lavoro di cernita è facile se hai a disposizione una redazione numerosa ed esperta di politiche comunitarie…! Innolabsplus.eu: cosa fa •  …ma come fare quando il tuo team è decisamente più ristretto (e per di più pesantemente sovraccarico di lavoro???)!
  7. 7. ! Innolabsplus.eu: come fa •  Perché non farsi aiutare… dalle macchine? •  Un sistema che completamente in automatico –  analizzi gli articoli prelevati da molteplici fonti –  decida di pubblicarli o meno se il loro testo è pertinente con le tematiche del portale
  8. 8. ! Innolabsplus.eu: come fa •  Perché non farsi aiutare… dalle macchine? •  Un sistema che completamente in automatico –  analizzi gli articoli prelevati da molteplici fonti –  decida di pubblicarli o meno se il loro testo è pertinente con le tematiche del portale •  Da un lavoro puramente manuale…
  9. 9. ! Innolabsplus.eu: come fa •  Perché non farsi aiutare… dalle macchine? •  Un sistema che completamente in automatico –  analizzi gli articoli prelevati da molteplici fonti –  decida di pubblicarli o meno se il loro testo è pertinente con le tematiche del portale •  Da un lavoro puramente manuale… •  ... allo sfruttamento dell’intelligenza della macchina
  10. 10. ! Innolabsplus.eu: come fa •  Per far questo è necessario “comprendere” il testo •  Semantic web?
  11. 11. ! Innolabsplus.eu: come fa •  Per far questo è necessario “comprendere” il testo •  Semantic web? –  Potente ma complesso lo stack tecnologico su cui è basato. –  La sua visione si è avverata solo in parte.
  12. 12. ! Innolabsplus.eu: come fa •  Per far questo è necessario “comprendere” il testo •  Semantic web? –  Potente ma complesso lo stack tecnologico su cui è basato. –  La sua visione si è avverata solo in parte. •  “A little semantics goes a long way!” –  Jim Hendler
  13. 13. ! Innolabsplus.eu: come fa •  Per far questo è necessario “comprendere” il testo •  Semantic web? –  Potente ma complesso lo stack tecnologico su cui è basato. –  La sua visione si è avverata solo in parte. •  Usare servizi semantici pronti per l’uso, via RESTful API •  “A little semantics goes a long way!” –  Jim Hendler
  14. 14. ! Dandelion API •  Servizio commerciale dell’azienda Spazio Dati Srl: https://dandelion.eu/
  15. 15. ! Dandelion API •  Servizio commerciale dell’azienda Spazio Dati Srl: https://dandelion.eu/ •  Parte da una ricerca dell’Università di Pisa –  TagMe
  16. 16. ! Dandelion API •  Servizio commerciale dell’azienda Spazio Dati Srl: https://dandelion.eu/ •  Parte da una ricerca dell’Università di Pisa –  TagMe •  Potenziato anche nell’ambito del progetto di ricerca SenTaClAus –  Net7 come azienda coordinatrice –  Info: http://sentaclaus.netseven.it
  17. 17. ! Dandelion API •  Servizio commerciale dell’azienda Spazio Dati Srl: https://dandelion.eu/ •  Parte da una ricerca dell’Università di Pisa –  TagMe •  Potenziato anche nell’ambito del progetto di ricerca SenTaClAus –  Net7 come azienda coordinatrice –  Info: http://sentaclaus.netseven.it •  I servizi usati in Innolabsplus.eu –  Named Entity Recognition (NER) –  Classificazione automatica
  18. 18. ! Named Entity Recognition/Extraction •  È il servizio base delle Dandelion API •  Permette di identificate i concetti nel testo •  Concetti non parole chiave! –  Ciò di cui parla l’articolo •  Riconoscere concetti vuol dire: –  Risolvere eventuali omonimie •  Serra: Gas Serra? Richard Serra? Monte Serra? O la Serra in Agricoltura? –  Identificare i termini anche se sono scritti in forma alternativa o parziale –  In breve…. Riconoscere il contesto •  Un motore di ricerca full-text (es. Solr) può indicizzare le stringhe senza discernere il loro significato (approccio bag of words)
  19. 19. ! Perché Solr non basta
  20. 20. ! Perché Solr non basta
  21. 21. ! Perché Solr non basta
  22. 22. ! “Concetti” vs keywords su Innolabsplus.eu •  Analisi semantica del testo di un articolo (recuperato in automatico) per identificare i concetti attraverso i servizi NER
  23. 23. ! “Concetti” vs keywords su Innolabsplus.eu •  Analisi semantica del testo di un articolo (recuperato in automatico) per identificare i concetti attraverso i servizi NER
  24. 24. ! “Concetti” vs keywords su Innolabsplus.eu •  Analisi semantica del testo di un articolo (recuperato in automatico) per identificare i concetti attraverso i servizi NER
  25. 25. ! “Concetti” vs keywords su Innolabsplus.eu •  Analisi semantica del testo di un articolo (recuperato in automatico) per identificare i concetti attraverso i servizi NER
  26. 26. ! “Concetti” vs keywords su Innolabsplus.eu •  Analisi semantica del testo di un articolo (recuperato in automatico) per identificare i concetti attraverso i servizi NER
  27. 27. ! “Concetti” vs keywords su Innolabsplus.eu •  Analisi semantica del testo di un articolo (recuperato in automatico) per identificare i concetti attraverso i servizi NER
  28. 28. ! “Concetti” vs keywords su Innolabsplus.eu •  Analisi semantica del testo di un articolo (recuperato in automatico) per identificare i concetti attraverso i servizi NER
  29. 29. ! •  Wikipedia usato come un dizionario controllato •  I link tra le pagine di Wikipedia rappresentano i legami logici tra i concetti: si crea così un grafo di termini •  Tanto le pagine (concetti) sono vicine, tanto maggiore è il loro legame semantico Come funziona la NER delle Dandelion API
  30. 30. ! •  Wikipedia usato come un dizionario controllato •  I link tra le pagine di Wikipedia rappresentano i legami logici tra i concetti: si crea così un grafo di termini •  Tanto le pagine (concetti) sono vicine, tanto maggiore è il loro legame semantico Come funziona la NER delle Dandelion API
  31. 31. ! •  Wikipedia usato come un dizionario controllato •  I link tra le pagine di Wikipedia rappresentano i legami logici tra i concetti: si crea così un grafo di termini •  Tanto le pagine (concetti) sono vicine, tanto maggiore è il loro legame semantico Come funziona la NER delle Dandelion API
  32. 32. ! •  Wikipedia usato come un dizionario controllato •  I link tra le pagine di Wikipedia rappresentano i legami logici tra i concetti: si crea così un grafo di termini •  Tanto le pagine (concetti) sono vicine, tanto maggiore è il loro legame semantico Come funziona la NER delle Dandelion API
  33. 33. ! NER: il riconoscimento del “contesto” •  Analizzo il testo per riconoscere termini del mio dizionario (concetti potenziali) •  La “vicinanza” dei termini nel grafo mi permette di selezionare solo quelli effettivamente pertinenti (“di cosa parla un testo”) •  Disambiguazione di testi sintatticamente simili
  34. 34. ! NER: il riconoscimento del “contesto” •  Analizzo il testo per riconoscere termini del mio dizionario (concetti potenziali) •  La “vicinanza” dei termini nel grafo mi permette di selezionare solo quelli effettivamente pertinenti (“di cosa parla un testo”) •  Disambiguazione di testi sintatticamente simili “Nuovo record di gas serra nell’atmosfera terrestre” “Riscaldamento notturno di una serra ad energia solare anziché a gas: è record”
  35. 35. ! NER: il riconoscimento del “contesto” •  Analizzo il testo per riconoscere termini del mio dizionario (concetti potenziali) •  La “vicinanza” dei termini nel grafo mi permette di selezionare solo quelli effettivamente pertinenti (“di cosa parla un testo”) •  Disambiguazione di testi sintatticamente simili “Nuovo record di gas serra nell’atmosfera terrestre” “Riscaldamento notturno di una serra ad energia solare anziché a gas: è record”
  36. 36. ! NER: il riconoscimento del “contesto” •  Analizzo il testo per riconoscere termini del mio dizionario (concetti potenziali) •  La “vicinanza” dei termini nel grafo mi permette di selezionare solo quelli effettivamente pertinenti (“di cosa parla un testo”) •  Disambiguazione di testi sintatticamente simili “Nuovo record di gas serra nell’atmosfera terrestre” “Riscaldamento notturno di una serra ad energia solare anziché a gas: è record”
  37. 37. ! Classificazione automatica •  Data una tassonomia (Drupal), associo alle sue categorie dei concetti di Wikipedia •  Un testo viene classificato in funzione dei concetti riconosciuti in esso
  38. 38. ! Classificazione automatica •  Data una tassonomia (Drupal), associo alle sue categorie dei concetti di Wikipedia •  Un testo viene classificato in funzione dei concetti riconosciuti in esso Concetto X Concetto Y Concetto Z
  39. 39. ! Classificazione automatica •  Data una tassonomia (Drupal), associo alle sue categorie dei concetti di Wikipedia •  Un testo viene classificato in funzione dei concetti riconosciuti in esso Concetto X Concetto Y Concetto Z
  40. 40. ! Classificazione automatica •  Data una tassonomia (Drupal), associo alle sue categorie dei concetti di Wikipedia •  Un testo viene classificato in funzione dei concetti riconosciuti in esso Concetto X Concetto Y Concetto Z
  41. 41. ! Classificazione automatica •  Data una tassonomia (Drupal), associo alle sue categorie dei concetti di Wikipedia •  Un testo viene classificato in funzione dei concetti riconosciuti in esso Concetto X Concetto Y Concetto Z
  42. 42. ! Classificazione automatica •  Le 11 categorie del portale Innolabsplus.eu sono collegate ad una serie di concetti di Wikipedia
  43. 43. ! Innolabsplus.eu: come funziona •  Recupera articoli da molteplici siti via feed RSS –  …potenziati da un nostro tool (esterno a Drupal) che recupera l’intero articolo insieme al feed •  Analizza il testo dell’articolo con il servizio NER delle Dandelion API •  Misura la “distanza” logica del testo con le categorie principali del sito (classificazione automatica) –  Se “affine” l’articolo viene pubblicato –  I concetti estratti sono usati come “tag” liberi: utili per la ricerca, in ottica SEO, etc. –  Se l’articolo non è sufficientemente affine viene ignorato •  In realtà si pubblica il link in un box secondario •  Il tutto integrato in un modulo Drupal (7)
  44. 44. ! Struttura del modulo Abbiamo cercato di strutturare il modulo utilizzando gli hook ove strettamente necessario, delegando le chiamate API e la gestione del modello a classi opportune.
  45. 45. ! Modello e integrazione con API Il vocabolario da inviare a Dandelion è salvata in una entità costruita ad hoc, dove troviamo: •  Riferimento ID tassonomia su Dandelion •  Riferimento vocabolario associato Drupal •  Lingua •  Ultima data di modifica
  46. 46. ! Modello e integrazione con API Anche il singolo termine tassonomico che arriva dal servizio esterno ha una sua tabella ad hoc. Questa contiene: •  Riferimento al vocabolario Dandelion •  Riferimento alla relativa voce tassonomica Drupal •  Url Wikipedia che descrive il concetto •  Rilevanza •  Lingua •  Data di modifica
  47. 47. ! Modello e integrazione con API Le chiamate implementate verso Dandelion sono: -  Classificazione iptc -  Classificazione con vocabolario custom -  Invio del vocabolario custom -  Entity extraction -  Wikisearch
  48. 48. ! Modello e integrazione con API Queste informazioni sono inviate a Dandelion per classificare le tassonomie, come JSON tramite la chiamata API “https:// api.dandelion.com/datatxt/cl/models/v1” E’ stata inoltre realizzata un’interfaccia di backend per gestire la creazione di queste tassonomie speciali
  49. 49. ! Configurazione •  Come primo step per l’utilizzo del modulo è necessaria un po’ di configurazione… 1.  Inserire le credenziali di accesso al web service di entity recognition di Dandelion: endpoint API, app ID e app key
  50. 50. ! Configurazione 2. Settare le preferenze del servizio, divisa in due parti Classificazione contenuti •  Vocabolario assegnato per classificare gli articoli •  Possibilità di invio automatico del vocabolario a Dandelion o esplicito •  Vocabolario usato per interessi utente •  Frequenza di invio di questo vocabolario a Dandelion •  Punteggio minimo necessario ad approvare l’articolo Estrazione entità •  Vocabolario usato per gestire le entità trovate dal servizio •  Affidabilità minima per approvare il “tagging” del contenuto con queste entità Debug mode: lo vedremo più avanti
  51. 51. ! Recupero dei FEED Per il recupero dei feed che possono essere convertiti in news vere e proprie abbiamo esteso il modello che arriva dal modulo Feed importer di Drupal, per potersi meglio integrare con il nostro tool di recupero degli articoli (Social Proxy): •  E’ stato quindi creato un feed particolare (Feed Proxy)
  52. 52. ! Promozione dei feed ad articolo I feed vengono poi processati in automatico allo scattare del cron standard di Drupal, tramite code: •  Viene richiesto al Social Proxy il contenuto completo della pagina a cui riferisce il feed •  Viene analizzato con Dandelion rispetto alla tassonomia creata prima •  Se l’articolo “parla” di argomenti definiti nella tassonomia con un grado di affidabilità maggiore a quello impostato, il feed viene salvato come articolo e il feed relativo “spubblicato” •  Nel feed ci sono informazioni necessarie per recuperare informazioni accessorie •  Tramite una chiamata Server2Server verso questa applicazione si recupera non solo il feed, ma anche il testo completo dell’articolo, ripulito degli elementi decorativi della pagina.
  53. 53. ! Promozione dei feed ad articolo In alternativa un redattore può promuovere un feed ad articolo tramite il pulsante “Upgrade to content type”
  54. 54. ! Associazione a interessi utente Non c’è solo la classificazione e pubblicazione automatica dei feed, ma il sistema riesce anche a suggerire articoli alle persone che si registrano al sito. Questo avviene in due step: 1.  L’utente si registra al sito, e come avviene per la definizione dell’albero di classificazione contenuti, inserisce delle preferenze di argomenti, sempre collegati a concetti Wikipedia 2.  I testi dei feed vengono analizzati anche rispetto a questi vocabolari, e se il grado di affidabilità è maggiore di quello soglia impostato, l’articolo viene automaticamente suggerito all’utente A livello implementativo ciò si traduce nel creare tassonomie collegate agli utenti, che a loro volta sono collegate a concetti Wikipedia.
  55. 55. ! Associazione a interessi utente
  56. 56. ! Associazione a interessi utente Anche in questo caso la ricerca è aiutata da una interfaccia che consente di ricercare gli argomenti direttamente su Wikipedia
  57. 57. ! Modalità debug Nel modulo è prevista inoltre una modalità di debug (attivabile da configurazione) Grazie a questa modalità cliccando su “Find related concepts” in un articolo, viene visualizzata la risposta di Dandelion alla chiamata API, stampata tramite DPM per una lettura facilitata (per il developer J)
  58. 58. ! Migliorie future •  Suite di test per garantire affidabilità modulo •  Rifattorizzazione del codice per utilizzo di hook meno generici utilizzati in alcuni punti del codice (tipo il classico “hook_form_alter”) •  Migliorie alle azioni javascript che consentono la definizione del vocabolario dal backend •  Migliorare la gestione degli allarmi (es. Feed fermo da X giorni o nessun feed item promosso ad articolo da troppo tempo) •  Aggiunta di alter nei processi di classificazione dei feed per permettere a moduli esterni di “agganciarsi” alla procedura.
  59. 59. ! net7/dandelion-api-integration on Github! https://github.com/net7/dandelion-api-integration
  60. 60. ! Thanks! desantis@netseven.it - pardini@netseven.it @lucadex - @naturemaxphoto www.netseven.it © Immagini •  Slide 4: © David All; © Danilo Soscia •  Slide 5: http://www.wrlwnd.com/gartners-top-5-over-hyped- tech-of-2015/ •  Slide 6: http://www.scientificamerican.com/article/the-semantic- web/; © W3C; @ Jim Hendler •  Slide 7: © Paolo Ferragina •  Slide 9: http://www.santannapisa.it

×