fun with machine translation apis

51
Fun with Machine Translation APIs Massimo Bonanni [email protected] http://codetailor.blogspot.com @massimobonanni

Upload: massimo-bonanni

Post on 14-Jan-2015

787 views

Category:

Technology


3 download

DESCRIPTION

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.

TRANSCRIPT

Page 1: Fun with Machine Translation APIs

Fun with Machine Translation APIs

Massimo [email protected]://codetailor.blogspot.com@massimobonanni

Page 2: Fun with Machine Translation APIs

Sponsor

Page 3: Fun with Machine Translation APIs

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.

Page 4: Fun with Machine Translation APIs

agenda

• Introduzione.

• Il widget web.

• La traduzione collaborativa

• Le API• L’autenticazione.• I servizi

• Translator Hub.

Page 5: Fun with Machine Translation APIs

Introduzione

Partiamo da 3 assunti:

1. Internet è formato da contenuti

2. I contenuti hanno visibilità planetaria.

3. Affinchè i contenuti possano avere diffusione,

debbono essere compresi dalla maggior

parte delle persone.

Page 6: Fun with Machine Translation APIs

Introduzione

Quando scriviamo i contenuti in una specifica

lingua, questi possono essere compresi da coloro

che parlano tale lingua e poco più.

Una soluzione (non sempre applicabile) è

ricorrere ad una traduzione automatica.

Page 7: Fun with Machine Translation APIs

Cosa è Microsoft Translator

Microsoft Translator è un progetto Microsoft

Research che nasce con lo scopo di fornire un

prodotto di traduzione automatica:

• Affidabile

• Facile da utilizzare

• Applicabile in molteplici scenari

Page 8: Fun with Machine Translation APIs

Cosa non è Microsoft Translator

Microsoft Translator non nasce con lo scopo

di sostituire un traduttore professionale.

In alcuni casi, infatti, non ha senso che il

nostro contenuto sia tradotto

automaticamente.

Page 9: Fun with Machine Translation APIs

Quando utilizzarlo

Esistono scenari in cui una traduzione fornita da uno

strumento automatico raggiunge, invece, egregiamente lo

scopo di far comprendere il concetto esposto:

• Blog,

• Siti tecnici,

• News

• .........

Page 10: Fun with Machine Translation APIs

Quando utilizzarlo

Nei casi esposti, la quantità di informazione e la

rapidità di pubblicazione (vedi news o blog), non

permettono una traduzione «umana».

Un traduttore automatico assolve pienamente il

compito di far capire di cosa si parla anche

senza una traduzione rigorosa.

Page 11: Fun with Machine Translation APIs

Quando non utilizzarlo

In altri scenari non è possibile lasciare ad una

traduzione automatica l’onere di comunicare un

concetto.

Ad esempio, una campagna pubblicitaria, in cui la

forma, a volte, è quasi più importante della sostanza,

non può essere lasciata ad una traduzione automatica.

Page 12: Fun with Machine Translation APIs

Gli strumenti di Microsoft Translator

La piattaforma Microsoft Translator ci mette a

disposizione un ampio ventaglio di strumenti da

utilizzare nei nostri siti:

• il widget web

• le API (JSON, REST o SOAP)

• Microsoft Translator HUB

Page 13: Fun with Machine Translation APIs

Il Web Widget

Il widget web è un “controllo” web (di fatto una

serie di controlli HTML contenuti in un <div>) che i

web master possono inserire nel proprio sito per

permettere agli utenti di tradurre le pagine.

Page 14: Fun with Machine Translation APIs

Il Web Widget

La versione base del widget è utilizzabile

senza registrazione, mentre per le funzioni

avanzate dello stesso e per le API è

necessario registrarsi tramite LiveID.

Page 15: Fun with Machine Translation APIs

Il Web Widget

L’utilizzo del Widget è assolutamente gratuito

e non impone limiti di traduzioni (Microsoft si

«accontenta» della pubblicità che le fate con

il logo esposto dal controllo)

Ogni pagina può avere un solo widget.

Page 16: Fun with Machine Translation APIs

Il Web Widget

Per configurare ed ottenere

il widget è sufficiente

utilizzare la pagina presente

all’indirizzo:

http://www.microsofttranslator.com/widget/

Page 17: Fun with Machine Translation APIs

Il Web Widget

Per 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);

Page 18: Fun with Machine Translation APIs

Il Web Widget

Il 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;

Page 19: Fun with Machine Translation APIs

Il Web Widget – un esempio

Compare se gli script Javascript sono disabilitati

Inietta, al momento del caricamento della pagina, l’effettivo codice HTML

per il controllo Translator

Page 20: Fun with Machine Translation APIs

Web Widget – Decidere cosa tradurre

Se lo riteniamo opportuno, possiamo anche escludere

parti della pagina dal processo di traduzione (resteranno

come le abbiamo scritte 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.

Page 21: Fun with Machine Translation APIs

demoWeb Widget – Pasta & Basta

Page 22: Fun with Machine Translation APIs

Web Widget – Traduzione collaborativa

Il web widget permette di abilitare la traduzione

collaborativa.

Possiamo dare, ai visitatori del nostro sito, la

possibilità di intervenire nella traduzione

automatica correggendo traduzioni inesatte o

suggerendo traduzioni alternative

Page 23: Fun with Machine Translation APIs

Web Widget – Traduzione collaborativa

Per abilitare la traduzione collaborativa è necessario

avere un codice di invito che si può richiedere dal

pannello di attivazione presente nella pagina di

creazione del Widget

Page 24: Fun with Machine Translation APIs

Web Widget – Traduzione collaborativa

Se viene abilitata la traduzione collaborativa,

l’utente può segnalare una sua traduzione diversa

da quella proposta dal sistema.

Page 25: Fun with Machine Translation APIs

Web Widget – Traduzione collaborativa

Il proprietario del sito (colui che ha generato il

widget) può «invitare» altri utenti, tramite LiveID, a

partecipare alla moderazione delle traduzioni.

Page 26: Fun with Machine Translation APIs

Web Widget – Traduzione collaborativa

Viene fornita una dashboard per gestire il tutto in

maniera più semplice:

Page 27: Fun with Machine Translation APIs

demoWeb Widget – Traduzione collaborativa

Page 28: Fun with Machine Translation APIs

Le API

Se vogliamo avere maggior controllo sulla traduzione dei

nostri contenuti oppure non abbiamo un’applicazione

web, possiamo utilizzare le API messe a disposizione

dalla piattaforma.

Si tratta di «servizi web» che possono essere richiamati

con diverse modalità: AJAX, HTTP o SOAP

Page 29: Fun with Machine Translation APIs

Le API - Sottoscrizione

Per poter utilizzare le API

è necessario sottoscrivere

una abbonamento

sull’Azure Data

Marketplace utilizzando il

proprio LiveId.

Page 30: Fun with Machine Translation APIs

Le API – ClientId & SecretClient

Sottoscritto l’abbonamento è necessario generare un

ClientId e far generare dalla piattaforma il

SecretClient necessari per l’autenticazione.

https://datamarket.azure.com/developer/applications/

Page 31: Fun with Machine Translation APIs

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 la sua scelta è a nostra discrezione anche se il

sistema controlla che non esista già il ClientId scelto.

Page 32: Fun with Machine Translation APIs

Le API - Autenticazione

Tutti 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, per

tale motivo, supporta, ancora, la vecchia autenticazione di

Bing (anche se in futuro verrà abbandonata).

Page 33: Fun with Machine Translation APIs

Le API - Autenticazione oAuth

Open Authorization (oAuth), è un

protocollo di comunicazione open

mediante il quale un’applicazione (o un

servizio web) può gestire in modo sicuro

l'accesso autorizzato ai dati sensibili.

Page 34: Fun with Machine Translation APIs

Le API – Autenticazione oAuth

Client

ResourceOwner

AuthorizationServer

ResourceServer

1. Authorization Request

3. Authorization Grant

5. Access Token

2. Authorization Grant

4. Access Token

6. Protected Resource

GenerazioneClientId e

SecretClient

Richiesta Access Token e chiamata

ai servizi

Page 35: Fun with Machine Translation APIs

Le API – Access Token

Il meccanismo di autenticazione di Microsoft Translator è,

quello di recuperare, tramite ClientId e SecretClient, un access

token ed utilizzarlo per le richieste al server (finchè il token non

scade).

Per recuperare l’access token è sufficiente eseguire una

richiesta HTTP di tipo POST all’URL:

https://datamarket.accesscontrol.windows.net/v2/

OAuth2-13

Page 36: Fun with Machine Translation APIs

Le API – Access Token

La risposta del server di autenticazione è,

in caso 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”}

Page 37: Fun with Machine Translation APIs

Le API – Access Token

I 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.

Page 38: Fun with Machine Translation APIs

demoAPI – Recuperare l’Access Token

Page 39: Fun with Machine Translation APIs

Le API – Ajax, Http o SOAP

I servizi di Microsoft Translator sono erogati con tre

differenti modalità:

• 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;

• La modalità Soap è, di fatto, una chiamata a web

service.

Page 40: Fun with Machine Translation APIs

Le API – Ajax, Http o SOAP

Entrambe le modalità Ajax e Http

restituiscono i dati in formato JSON.

Tutte le modalità prevedono,

nell’invocazione della funzionalità, il

passaggio di un Access Token valido.

Page 41: Fun with Machine Translation APIs

Le API – Cosa possiamo fare

Attualmente, a prescindere dal protocollo scelto

abbiamo le seguenti funzionalità:AddTranslation GetLanguageNames Speak

AddTranslationArray GetLanguagesForSpeak Translate

BreakSentences GetLanguagesForTranslate TranslateArray

Detect GetTranslations

DetectArray GetTranslationsArray

Page 42: Fun with Machine Translation APIs

Le API – Il metodo Translate

Per capire le differenze tra le tre modalità,

prendiamo il metodo Translate che ci

consente di tradurre un testo da una lingua

ad un’altra.

Page 43: Fun with Machine Translation APIs

Le API – Translate Ajax

Bearer Token

I parametri della chiamata debbono essere Encodati

Page 44: Fun with Machine Translation APIs

Le API – Translate Http

[email protected] Token passato al

server attraverso l’header della chiamata HTTP

Definisce il tipo di testo da tradurre. Attualmente disponibili solamente

«text/plain» o «text/html»

Page 45: Fun with Machine Translation APIs

Le API – Translate SOAP

Bearer Token

Page 46: Fun with Machine Translation APIs

demoAPI – Translate, Speak e altre amenità

Page 47: Fun with Machine Translation APIs

Microsoft Translator Hub

Tutti i sistemi di traduzione automatica

permettono la traduzione da un numero di

lingue molto basso (al massimo un centinaio su

oltre le 7.000 in uso a livello mondiale).

Translator Hub permette di costruire il proprio

sistema di traduzione.

Page 48: Fun with Machine Translation APIs

Microsoft Translation Hub

Per accedere a Microsoft Translation

Hub si deve richiedere un codice

all’indirizzo:

http://hub.microsofttranslator.com

Page 49: Fun with Machine Translation APIs

Q&A

Page 50: Fun with Machine Translation APIs

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/ADMTranslator

MSDN Library• http://msdn.microsoft.com/en-us/library/dd576287.aspx

Microsoft Translator Hub• http://hub.microsofttranslator.com

Page 51: Fun with Machine Translation APIs

Valutazione – Codice GF6

www.dotnetcampus.it/eval -> GF6