Fun with Machine Translation APIs
-
Upload
massimo-bonanni -
Category
Technology
-
view
804 -
download
3
description
Transcript of Fun with Machine Translation APIs
![Page 1: Fun with Machine Translation APIs](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b667824a795974768b45c1/html5/thumbnails/1.jpg)
Fun with Machine Translation APIs
Massimo [email protected]://codetailor.blogspot.com@massimobonanni
![Page 2: Fun with Machine Translation APIs](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b667824a795974768b45c1/html5/thumbnails/2.jpg)
Sponsor
![Page 3: Fun with Machine Translation APIs](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b667824a795974768b45c1/html5/thumbnails/3.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b667824a795974768b45c1/html5/thumbnails/4.jpg)
agenda
• Introduzione.
• Il widget web.
• La traduzione collaborativa
• Le API• L’autenticazione.• I servizi
• Translator Hub.
![Page 5: Fun with Machine Translation APIs](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b667824a795974768b45c1/html5/thumbnails/5.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b667824a795974768b45c1/html5/thumbnails/6.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b667824a795974768b45c1/html5/thumbnails/7.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b667824a795974768b45c1/html5/thumbnails/8.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b667824a795974768b45c1/html5/thumbnails/9.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b667824a795974768b45c1/html5/thumbnails/10.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b667824a795974768b45c1/html5/thumbnails/11.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b667824a795974768b45c1/html5/thumbnails/12.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b667824a795974768b45c1/html5/thumbnails/13.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b667824a795974768b45c1/html5/thumbnails/14.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b667824a795974768b45c1/html5/thumbnails/15.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b667824a795974768b45c1/html5/thumbnails/16.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b667824a795974768b45c1/html5/thumbnails/17.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b667824a795974768b45c1/html5/thumbnails/18.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b667824a795974768b45c1/html5/thumbnails/19.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b667824a795974768b45c1/html5/thumbnails/20.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b667824a795974768b45c1/html5/thumbnails/21.jpg)
demoWeb Widget – Pasta & Basta
![Page 22: Fun with Machine Translation APIs](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b667824a795974768b45c1/html5/thumbnails/22.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b667824a795974768b45c1/html5/thumbnails/23.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b667824a795974768b45c1/html5/thumbnails/24.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b667824a795974768b45c1/html5/thumbnails/25.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b667824a795974768b45c1/html5/thumbnails/26.jpg)
Web Widget – Traduzione collaborativa
Viene fornita una dashboard per gestire il tutto in
maniera più semplice:
![Page 27: Fun with Machine Translation APIs](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b667824a795974768b45c1/html5/thumbnails/27.jpg)
demoWeb Widget – Traduzione collaborativa
![Page 28: Fun with Machine Translation APIs](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b667824a795974768b45c1/html5/thumbnails/28.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b667824a795974768b45c1/html5/thumbnails/29.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b667824a795974768b45c1/html5/thumbnails/30.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b667824a795974768b45c1/html5/thumbnails/31.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b667824a795974768b45c1/html5/thumbnails/32.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b667824a795974768b45c1/html5/thumbnails/33.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b667824a795974768b45c1/html5/thumbnails/34.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b667824a795974768b45c1/html5/thumbnails/35.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b667824a795974768b45c1/html5/thumbnails/36.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b667824a795974768b45c1/html5/thumbnails/37.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b667824a795974768b45c1/html5/thumbnails/38.jpg)
demoAPI – Recuperare l’Access Token
![Page 39: Fun with Machine Translation APIs](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b667824a795974768b45c1/html5/thumbnails/39.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b667824a795974768b45c1/html5/thumbnails/40.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b667824a795974768b45c1/html5/thumbnails/41.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b667824a795974768b45c1/html5/thumbnails/42.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b667824a795974768b45c1/html5/thumbnails/43.jpg)
Le API – Translate Ajax
Bearer Token
I parametri della chiamata debbono essere Encodati
![Page 44: Fun with Machine Translation APIs](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b667824a795974768b45c1/html5/thumbnails/44.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b667824a795974768b45c1/html5/thumbnails/45.jpg)
Le API – Translate SOAP
Bearer Token
![Page 46: Fun with Machine Translation APIs](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b667824a795974768b45c1/html5/thumbnails/46.jpg)
demoAPI – Translate, Speak e altre amenità
![Page 47: Fun with Machine Translation APIs](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b667824a795974768b45c1/html5/thumbnails/47.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b667824a795974768b45c1/html5/thumbnails/48.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b667824a795974768b45c1/html5/thumbnails/49.jpg)
Q&A
![Page 50: Fun with Machine Translation APIs](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b667824a795974768b45c1/html5/thumbnails/50.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b667824a795974768b45c1/html5/thumbnails/51.jpg)
Valutazione – Codice GF6
www.dotnetcampus.it/eval -> GF6