Fun with Machine Translation APIs
Upcoming SlideShare
Loading in...5
×
 

Fun with Machine Translation APIs

on

  • 689 views

Sessione "Fun with Machine Translation APIs" tenuta al DotNetCmpus 2012....

Sessione "Fun with Machine Translation APIs" tenuta al DotNetCmpus 2012.
Microsoft Translator è il frutto del reparto ricerca e sviluppo Microsoft che permette, tramite una serie di API multi protocollo, di fornire ai nostri utenti un servizio di traduzione automatica. La sessione è dedicata alla scoperta delle funzionalità e degli scenari supportati da questa innovativa piattaforma di traduziuone automatica. Durante la sessione si cercherà di dare un quadro preciso e puntuale di quando usare e quando non utilizzare un meccanismo di traduzione automatica.

Statistics

Views

Total Views
689
Views on SlideShare
688
Embed Views
1

Actions

Likes
0
Downloads
0
Comments
0

1 Embed 1

http://www.docshut.com 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Fun with Machine Translation APIs Fun with Machine Translation APIs Presentation Transcript

  • Fun with MachineTranslation APIs Massimo Bonanni massimo.bonanni@domusdotnet.org http://codetailor.blogspot.com @massimobonanni
  • Sponsor
  • chi sono• Mi occupo di sviluppo dal 1982, prima in maniera amatoriale e, poi, in maniera «professionale». Mi «diletto» con il framework .NET dall’inizio degli anni 2000. Sono MVP per VB.NET e presidente di DomusDotNet.• La sessione nasce con lo scopo di fornire una panoramica degli strumenti messi a disposizione degli sviluppatori (non solo .NET) per utilizzare le traduzioni automatiche all’interno dei propri applicativi.
  • agenda• Introduzione.• Il widget web.• La traduzione collaborativa• Le API • L’autenticazione. • I servizi• Translator Hub.
  • IntroduzionePartiamo da 3 assunti:1. Internet è formato da contenuti2. I contenuti hanno visibilità planetaria.3. Affinchè i contenuti possano avere diffusione, debbono essere compresi dalla maggior parte delle persone.
  • IntroduzioneQuando scriviamo i contenuti in una specifica lingua,questi possono essere compresi da coloro cheparlano tale lingua e poco più.Una soluzione (non sempre applicabile) è ricorreread una traduzione automatica.
  • Cosa è Microsoft TranslatorMicrosoft Translator è un progetto MicrosoftResearch che nasce con lo scopo di fornire unprodotto di traduzione automatica:• Affidabile• Facile da utilizzare• Applicabile in molteplici scenari
  • Cosa non è Microsoft TranslatorMicrosoft Translator non nasce con lo scopo disostituire un traduttore professionale.In alcuni casi, infatti, non ha senso che il nostrocontenuto sia tradotto automaticamente.
  • Quando utilizzarloEsistono scenari in cui una traduzione fornita da uno strumentoautomatico raggiunge, invece, egregiamente lo scopo di farcomprendere il concetto esposto:• Blog,• Siti tecnici,• News• .........
  • Quando utilizzarloNei casi esposti, la quantità di informazione e larapidità di pubblicazione (vedi news o blog), nonpermettono una traduzione «umana».Un traduttore automatico assolve pienamente ilcompito di far capire di cosa si parla anche senzauna traduzione rigorosa.
  • Quando non utilizzarloIn altri scenari non è possibile lasciare ad unatraduzione automatica l’onere di comunicare unconcetto.Ad esempio, una campagna pubblicitaria, in cui laforma, a volte, è quasi più importante dellasostanza, non può essere lasciata ad una
  • Gli strumenti di Microsoft TranslatorLa piattaforma Microsoft Translator ci mette adisposizione un ampio ventaglio di strumenti dautilizzare nei nostri siti:• il widget web• le API (JSON, REST o SOAP)• Microsoft Translator HUB
  • Il Web WidgetIl widget web è un “controllo” web (di fatto una seriedi controlli HTML contenuti in un <div>) che i webmaster possono inserire nel proprio sito perpermettere agli utenti di tradurre le pagine.
  • Il Web WidgetLa versione base del widget è utilizzabile senzaregistrazione, mentre per le funzioni avanzatedello stesso e per le API è necessario registrarsitramite LiveID.
  • Il Web WidgetL’utilizzo del Widget è assolutamente gratuito enon impone limiti di traduzioni (Microsoft si«accontenta» della pubblicità che le fate con illogo esposto dal controllo)Ogni pagina può avere un solo widget.
  • Il Web WidgetPer configurare edottenere il widget èsufficiente utilizzare lapagina presenteall’indirizzo: http://www.microsofttranslator.com/wid get/
  • Il Web WidgetPer ottenere lo snippet dell’HTML, è necessario:• inserire l’indirizzo del sito che si intende tradurre e la lingua di origine dello stesso• configurare il tipo di traduzione che si intende fornire agli utenti: • manuale; • notifica ; • automatica;• scegliere colore e dimensione del widget;• accettare i termini di utilizzo (obbligatorio per generare l’HTML);
  • Il Web WidgetIl widget può avere 3 differenti modalità di utilizzo:• manuale : nella pagina apparirà il widget e sarà l’utente, se vorrà, a tradurre il contenuto premendo il tasto per la traduzione;• notifica : all’utente verrà notificato (tramite una barra in alto nella pagina) che è possibile tradurre il contenuto e sarà, comunque, lui a tradurlo;• automatica : il contenuto verrà automaticamente tradotto nella lingua dell’utente che visita il sito e questo potrà, se vuole, vedere il contenuto originale;
  • Il Web Widget – un esempioCompare se gli Inietta, al momento del caricamentoscript Javascript della pagina, l’effettivo codice HTMLsono disabilitati per il controllo Translator
  • Web Widget – Decidere cosa tradurreSe lo riteniamo opportuno, possiamo anche escludere parti dellapagina dal processo di traduzione (resteranno come le abbiamoscritte noi in qualunque lingua l’utente scelga).Per fare ciò possiamo procedere in due modi:• inserire nel tag da non tradurre l’attributo custom translate=no;• decorare il tag da mantenere inalterato con la classe di stile notranslate.
  • demoWeb Widget – Pasta &Basta
  • Web Widget – Traduzione collaborativaIl web widget permette di abilitare la traduzionecollaborativa.Possiamo dare, ai visitatori del nostro sito, lapossibilità di intervenire nella traduzione automaticacorreggendo traduzioni inesatte o suggerendotraduzioni alternative
  • Web Widget – Traduzione collaborativaPer abilitare la traduzione collaborativa è necessarioavere un codice di invito che si può richiedere dal pannellodi attivazione presente nella pagina di creazione delWidget
  • Web Widget – Traduzione collaborativaSe viene abilitata la traduzione collaborativa, l’utente puòsegnalare una sua traduzione diversa da quella propostadal sistema.
  • Web Widget – Traduzione collaborativaIl proprietario del sito (colui che ha generato il widget) può«invitare» altri utenti, tramite LiveID, a partecipare allamoderazione delle traduzioni.
  • Web Widget – Traduzione collaborativaViene fornita una dashboard per gestire il tutto in manierapiù semplice:
  • demoWeb Widget – Traduzionecollaborativa
  • Le APISe vogliamo avere maggior controllo sulla traduzione dei nostricontenuti oppure non abbiamo un’applicazione web, possiamoutilizzare le API messe a disposizione dalla piattaforma.Si tratta di «servizi web» che possono essere richiamati condiverse modalità: AJAX, HTTP o SOAP
  • Le API - SottoscrizionePer poter utilizzare leAPI è necessariosottoscrivere unaabbonamento sull’AzureData Marketplaceutilizzando il proprioLiveId.
  • Le API – ClientId & SecretClientSottoscritto l’abbonamento è necessario generare unClientId e far generare dalla piattaforma il SecretClientnecessari per l’autenticazione.
  • Le API – ClientId & SecretClient• Clientid e nome dell’applicazione sono obbligatori (e li possiamo inventare a nostro piacimento);• Il SecretClient è generato dal sistema;• La descrizione è facoltativa;• Il Redirect URI non è utilizzato (anche se va inserito);Il ClientId (assieme al SecretClient) identifica la nostra applicazione e lasua scelta è a nostra discrezione anche se il sistema controlla che nonesista già il ClientId scelto.
  • Le API - AutenticazioneTutti i servizi esposti da Microsoft Translator prevedono,attualmente, due possibili modi per autenticarsi: • uno di tipo “legacy” che sfrutta l’autenticazione dei vecchi servizi di Bing (attualmente supportata per retrocompatibilità); • uno oAuth.Microsoft Translator sostituisce Bing Translator e, pertale motivo, supporta, ancora, la vecchia autenticazione diBing (anche se in futuro verrà abbandonata).
  • Le API - Autenticazione oAuthOpen Authorization (oAuth), è un protocollo dicomunicazione open mediante il qualeun’applicazione (o un servizio web) può gestire inmodo sicuro laccesso autorizzato ai datisensibili.
  • Le API – Autenticazione oAuth Generazione ClientId e 1. Authorization Request SecretClient Resource Owner Richiesta Access 2. Authorization Grant Token e chiamata ai servizi 3. Authorization Grant Authorization Client Server 4. Access Token 5. Access Token Resource 6. Protected Resource Server
  • Le API – Access TokenIl meccanismo di autenticazione di Microsoft Translator è,quello di recuperare, tramite ClientId e SecretClient, un accesstoken ed utilizzarlo per le richieste al server (finchè il token nonscade).Per recuperare l’access token è sufficiente eseguire unarichiesta HTTP di tipo POST all’URL:https://datamarket.accesscontrol.windows.net/v2/OAuth2- 13
  • Le API – Access TokenLa risposta del server di autenticazione è, incaso di autenticazione corretta, di tipo JSON: { "access_token":"http.............lAPlcjWWR412WlHOoEh6cIKA7mg%3d", "token_type":"http://schemas.xmlsoap.org/ws/2009/11/swt-token- profile-1.0", "expires_in":"599", "scope":”http://api.microsofttranslator.com” }
  • Le API – Access TokenI nodi JSON restituiti sono:• access_token: è l’access token vero e proprio;• token_type: è il formato del token restituito dal sistema. Attualmente viene restituito sempre un token definito nel namespace http://schemas.xmlsoap.org/ws/2009/11/swt-token-profile-1.0;• expires_in: numero di secondi di validità del token. Attualmente è pari a 600;• scope: è il dominio per cui è valido il token. Nel caso di Microsoft Translator è sempre http://api.microsofttranslator.com.
  • demoAPI – Recuperare l’AccessToken
  • Le API – Ajax, Http o SOAPI servizi di Microsoft Translator sono erogati con tre differentimodalità:• La modalità Ajax è adatta per un utilizzo all’interno di pagine Web;• La modalità Http prevede chiamate GET o POST a seconda delle funzionalità richieste ed è ideale nell’utilizzo con quei linguaggi in cui non è semplice l’interazione con web services;
  • Le API – Ajax, Http o SOAPEntrambe le modalità Ajax e Http restituiscono idati in formato JSON.Tutte le modalità prevedono, nell’invocazionedella funzionalità, il passaggio di un AccessToken valido.
  • Le API – Cosa possiamo fareAttualmente, a prescindere dal protocollo scelto abbiamole seguenti funzionalità: AddTranslation GetLanguageNames Speak AddTranslationArray GetLanguagesForSpeak Translate BreakSentences GetLanguagesForTranslate TranslateArray Detect GetTranslations DetectArray GetTranslationsArray
  • Le API – Il metodo TranslatePer capire le differenze tra le tre modalità,prendiamo il metodo Translate che ci consente ditradurre un testo da una lingua ad un’altra.
  • Le API – Translate Ajax Bearer Token I parametri della chiamata debbono essere Encodati
  • Le API – Translate Http Bearer Token passato al c.daniele71@gmail.com server attraverso l’header della chiamata HTTPDefinisce il tipo di testo da tradurre. Attualmente disponibili solamente«text/plain» o «text/html»
  • Le API – Translate SOAP Bearer Token
  • demoAPI – Translate, Speak ealtre amenità
  • Microsoft Translator HubTutti i sistemi di traduzione automatica permettonola traduzione da un numero di lingue molto basso (almassimo un centinaio su oltre le 7.000 in uso alivello mondiale).Translator Hub permette di costruire il propriosistema di traduzione.
  • Microsoft Translation HubPer accedere a Microsoft Translation Hubsi deve richiedere un codice all’indirizzo: http://hub.microsofttranslator.com
  • Q&A
  • Link UtiliStrumenti di traduzione • http://www.microsofttranslator.com/tools/Strumenti per sviluppatori • http://www.microsofttranslator.com/dev/Web Widget • http://www.microsofttranslator.com/widget/Azure Data Marketplace • http://tinyurl.com/ADMTranslatorMSDN Library • http://msdn.microsoft.com/en-us/library/dd576287.aspxMicrosoft Translator Hub • http://hub.microsofttranslator.com
  • Valutazione – Codice GF6www.dotnetcampus.it/eval -> GF6