Utilizzando Watson Sentiment Analysis per costruire intelligente e consapevole applicazioni Android

AI sta prendendo il mondo rapidamente. Ogni segmento Tech viene ripensata e rivoluzionato con AI. Come uno sviluppatore di software, ad un certo punto della tua carriera, avrete sicuramente un incontro con IA così ha senso solo per avere qualche esperienza di lavoro con esso sotto la cintura. Il campo di AI è ...

A+ A-

AI sta prendendo il mondo rapidamente. Ogni segmento Tech viene ripensata e rivoluzionato con AI. Come uno sviluppatore di software, ad un certo punto della tua carriera, avrete sicuramente un incontro con IA così ha senso solo per avere qualche esperienza di lavoro con esso sotto la cintura. Il campo di intelligenza artificiale è molto vasto ed è ben oltre la portata di questo post, ma ancora, voglio mostrare come sia facile da integrare l'intelligenza in tue applicazioni con un lavoro minimo. Naturalmente, non verrà addestramento eventuali modelli di apprendimento automatico per raggiungere questo obiettivo, viene utilizzato un pre soluzione integrata, che è il motivo per cui ci vorrà un lavoro estremamente minimo sul finale.

Watson Sentiment Analysis

Costruiremo un sistema estremamente semplice sentiment analysis su Android utilizzando l'API Watson da IBM. IBM costruisce un sacco di integrazioni utili che possono direttamente essere utilizzato dagli sviluppatori senza passare attraverso il fastidio di costruzione delle infrastrutture sul loro fine. Legano tutte le loro offerte sotto bluemix cui una suite di prodotti per costruire software migliore. La cosa fantastica di bluemix è il fatto che si tratta in gratuitamente per 30 giorni in modo da non dovete fare un impegno dritto. Se siete interessati a verificare le loro offerte oltre al capo del sito bluemix e di iscrizione per una prova di 30 giorni.

Va bene così cerchiamo di iniziare la costruzione della app. Prima di iniziare ecco una rapida dichiarazione di non responsabilità. In questo articolo vi completamente supporre che avete una certa esperienza con programmazione orientata agli oggetti e Android. La parte Android del progetto è piuttosto minimale quindi tutto ciò che serve è una conoscenza di base di punti di vista e come manipolarli.

Ora che abbiamo finito con le formalità cominciamo.

Fase 1: Il programma di installazione

Fuoco su Android Studio e creare un nuovo progetto. Nome che tutto quello che vuoi e accettare le impostazioni predefinite nella procedura guidata di installazione. Una volta che il progetto si basa, eseguirlo su un dispositivo o un emulatore solo per assicurarsi che tutto funzioni bene. Se tutto è bene finora si è pronti a passare alla fase successiva.

Marek Android Studio

Fase 2: Creazione l'interfaccia utente

Cominciamo la costruzione del layout. Dal momento che l'applicazione è piuttosto minimale cerchiamo di ottenere la parte di layout di mezzo il più rapidamente possibile. Ecco cosa lo schermo applicazione finale sarà simile.

App layout

Comprende una TextView un EditText e un pulsante tutti loro sono contenuti all'interno di un LinearLayout. Una volta che hai finito di replicare il layout, solo saltare al file Java corrispondente e cablare l'interfaccia utente nel modo seguente.

 public class MainActivity estende AppCompatActivity {
 
    TextView textView;
    EditText EditText;
    Pulsante;
    String sentimento;

@Oltrepassare
    vuoto protetto onCreate (Bundle savedInstanceState) {
        super.onCreate (savedInstanceState);
        setContentView (R.layout.activity_main);
 
        // inizializza elementi UI
        textView = (TextView) findViewById (R.id.textView);
        EditText = (EditText) findViewById (R.id.editText);
        Pulsante = (Button) findViewById (R.id.button); 

Cerchiamo di collegare il pulsante con un clic ascoltatore in modo che risponda al tatto eventi. Ecco il codice per questo:

 button.setOnClickListener (nuova View.OnClickListener () {
            @Oltrepassare
            public void onClick (Visualizza v) {
                System.out.println ( "Accesso alla console che il pulsante premuto per il testo:" + editText.getText ());
                textView.setText ( "Visualizzazione a UI il sentimento di essere controllato per:" + editText.getText ());
 
                compito AskWatsonTask = new AskWatsonTask ();
                task.execute (new String [] {});
            }
}); 

Si noti l'AskWatsonTask? Questo è quello che verrà utilizzato per il recupero dei risultati di analisi sentimento da Watson API. Non è niente, ma un semplice AsyncTask. Copia e incolla il seguente pezzo di codice:

 Classe AskWatsonTask privato estende AsyncTask <String, Void, String> { 
    @Oltrepassare
    protetta String doInBackground (String ... textsToAnalyse) {               
        System.out.println (editText.getText ());               
        runOnUiThread (new Runnable () {                 
            @Oltrepassare                 
            public void run () {                     
                textView.setText ( "ciò che sta accadendo all'interno un filo - stiamo correndo Watson AlchemyAPI");                 
            }             
        });       
      
        sentimento = "sentimento di prova";             
        System.out.println (sentiment);
  
        // passando il risultato da visualizzare sulla interfaccia utente nel battistrada principale           
        restituire il sentimento;         
    }           

    // impostare il valore di UI di fuori del filo         
    @Oltrepassare         
    protetta OnPostExecute vuoto (risultato String) {             
        textView.setText ( "sentimento del messaggio è:" + risultato);         
    }     
} 

L'AsyncTask suddetto preleverà risultati da Watson in formato JSON che verrà analizzare più avanti e visualizzazione nell'interfaccia utente. A partire da ora, l'applicazione è abbastanza stupida ma funziona. Per registrare un checkpoint consente distribuire l'applicazione che abbiamo costruito finora e visto quello che fa. Premi il pulsante verde Play e guardarlo correre. E non fa nulla.

Android Emulator

Se si fa clic sul Analizza! pulsante, si dovrebbe essere in grado di vedere il risultato al campo TextView. Si dovrebbe anche vedere un po 'di output nella finestra di log cat.

Fase 3: Aggiungere gli Smarts

E 'il momento di aggiungere la capacità cognitiva di questa nude ossa di un app. La prima cosa che dovete fare è aggiungere la Watson cloud SDK per Java nella vostra app. oltre al capo questo link per una spiegazione dettagliata su come farlo. Scaricare la libreria Java da questo link. E aggiungerlo alla cartella librerie come segue.

Watson Dipendenza

Una volta che la biblioteca è integrato, è necessario acquisire i permessi di Internet nella vostra app. Aprire l'AndroidManifest.xml e aggiungere le seguenti righe

 <Usa-permesso android: name = "android.permission.ACCESS_NETWORK_STATE" /> 
<Usa-permesso android: name = "android.permission.INTERNET" /> 

I permessi di cui sopra vi permetterà di accedere alla rete per andare a prendere i risultati da Watson.

Passo 3b: recuperare la chiave API da bluemix

Dal catalogo IBM bluemix, fare clic su Watson => AlchemyAPI => Crea. Assicurarsi di utilizzare una chiave API statica, come mostrato nella figura seguente:

Watson API Key Fase 4: Aggiungere il codice a Invoke Watson

Ora è il momento di aggiungere un po 'di codice per comunicare con l'API Watson Alchemy. Espandere l'AskWatson AsyncTask con il seguente codice.

 AlchemyLanguage service = new AlchemyLanguage ();
service.setApiKey ( "");
 
Map <String, Object> params = new HashMap <String, Object> ();
params.put (AlchemyLanguage.TEXT, editText.getText ());
DocumentSentiment sentimento = service.getSentiment (params) .Execute ();
System.out.println (sentiment);
 
// passando il risultato da visualizzare sulla interfaccia utente nel thread principale
tornare sentiment.getSentiment () getType () Nome ()..; 

È ora di testare rapidamente se l'applicazione è in funzione. Premere Ctrl + R e guardare l'applicazione essere tutti intelligenti!

Android Emulator Watson API
Se pensavate che questo è stato magico, non è in realtà. È stato fatto tutto attraverso il JSON restituito che sembra qualcosa di simile
 {
   "DocSentiment": {
     "Score": -,42344,
     "Tipo": "negativo"
   },
   "lingua inglese",
   "totalTransactions": 1
} 

Conclusione

Hai appena visto quanto sia stato facile costruire un'applicazione cognitiva utilizzando Watson Sentiment Analysis. L'applicazione che abbiamo costruito non ha avuto alcun reale funzionalità per dire ma ha mostrato la capacità di bluemix e le sue offerte. È possibile inserire queste offerte sotto molteplici staffe e costruire alcune estremamente ricche esperienze utente. Oltre al capo il sito web di bluemix per saperne di più su quello che tutti si può costruire.