L'intelligenza artificiale sta conquistando rapidamente il mondo. Ogni segmento della tecnologia viene ripensato e rivoluzionato utilizzando l'intelligenza artificiale. Come sviluppatore di software, a un certo punto della tua carriera, avrai sicuramente un incontro con l'intelligenza artificiale, quindi ha senso solo avere un po' di esperienza lavorando con essa sotto la cintura. Il campo dell'intelligenza artificiale è estremamente vasto ed è ben oltre lo scopo di questo post, ma voglio mostrarti quanto sia facile integrare l'intelligenza nelle tue app con un lavoro minimo. Naturalmente, non allenerai alcun modello di apprendimento automatico per raggiungere questo obiettivo, utilizzerai una soluzione precostruita, motivo per cui richiederà un lavoro estremamente minimo da parte tua.
Costruiremo un sistema di analisi del sentiment estremamente semplice su Android utilizzando l'API Watson di IBM. IBM crea molte utili integrazioni che possono essere utilizzate direttamente dagli sviluppatori senza il fastidio di creare l'infrastruttura da parte loro. Legano tutte le loro offerte sotto Bluemix, che è una suite di prodotti per creare software migliore. La cosa fantastica di Bluemix è il fatto che è disponibile gratuitamente per 30 giorni, quindi non devi impegnarti subito. Se sei interessato a dare un'occhiata alle loro offerte, vai su Sito web Bluemix e registrati per una prova di 30 giorni.
Bene, quindi iniziamo a creare l'app. Prima di iniziare, ecco un breve disclaimer. Questo articolo presumerà completamente che tu abbia una certa esperienza con la programmazione orientata agli oggetti e Android. La parte Android del progetto è piuttosto minimale, quindi tutto ciò di cui hai bisogno è una conoscenza di base delle viste e come manipolarle.
Ora che abbiamo finito con le formalità, cominciamo.
Passaggio 1: la configurazione
Avvia Android Studio e crea un nuovo progetto. Denominalo come vuoi e accetta le impostazioni predefinite nella procedura guidata di installazione. Una volta che il progetto è stato compilato, eseguilo su un dispositivo o un emulatore solo per assicurarti che tutto funzioni correttamente. Se tutto è andato bene finora, sei pronto per procedere al passaggio successivo.
Passaggio 2: creazione dell'interfaccia utente
Iniziamo a costruire il layout. Poiché l'app è piuttosto minimale, togliamo di mezzo la parte del layout il più rapidamente possibile. Ecco come apparirà la schermata finale dell'app.
Comprende un TextView, un EditText e un Button, tutti contenuti all'interno di un LinearLayout. Una volta terminata la replica del layout, passa al file Java corrispondente e collega l'interfaccia utente come segue.
public class MainActivity estende AppCompatActivity { TextView textView; ModificaTesto modificaTesto; Pulsante pulsante; Sentimento di stringa; @Override protected void onCreate(Bundle saveInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //inizializza gli elementi dell'interfaccia utente textView = (TextView) findViewById(R.id.textView); editText = (EditText) findViewById(R.id.editText); button = (Button) findViewById(R.id.button);
Colleghiamo il pulsante con un ascoltatore di clic in modo che risponda agli eventi di tocco. Ecco il codice per questo:
button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { System.out.println("Accesso alla console che il pulsante ha premuto per il testo: " + editText.getText()); textView .setText("Visualizzazione nell'interfaccia utente del sentimento da controllare per: " + editText.getText()); AskWatsonTask task = new AskWatsonTask(); task.execute(new String[]{}); } });
Notare l'AskWatsonTask? Questo è ciò che verrà utilizzato per recuperare i risultati dell'analisi del sentiment dall'API Watson. Non è altro che un semplice AsyncTask. Copia e incolla il seguente pezzo di codice:
La classe privata AskWatsonTask estende AsyncTask { @Override protected String doInBackground(String... textsToAnalyse) { System.out.println(editText.getText()); runOnUiThread(new Runnable() { @Override public void run() { textView.setText ("cosa sta succedendo all'interno di un thread - stiamo eseguendo Watson AlchemyAPI"); } }); sentiment = "Test sentiment"; System.out.println(sentiment); //trasferimento del risultato da visualizzare nell'interfaccia utente nel sentimento di ritorno del battistrada principale; } //impostazione del valore dell'interfaccia utente al di fuori del thread @Override protected void onPostExecute(String risultato) { textView.setText ("Il sentimento del messaggio è: " + risultato); } }
Il suddetto AsyncTask recupererà i risultati da Watson in formato JSON che analizzeremo in seguito e visualizzeremo nell'interfaccia utente. Al momento, l'app è piuttosto stupida ma funziona. Per registrare un checkpoint, distribuiamo l'app che abbiamo creato finora e abbiamo visto cosa fa. Premi il pulsante verde Play e guardalo correre. Non fa niente.
Se si fa clic sul Analizzare! pulsante, dovresti essere in grado di vedere il risultato nel campo TextView. Dovresti anche vedere un output nella finestra del log cat.
Passaggio 3: aggiungere gli Smart
È tempo di aggiungere la capacità cognitiva a questa struttura essenziale di un'app. La prima cosa che devi fare è aggiungere Watson Cloud SDK per Java nella tua app. vai a questo link per una spiegazione dettagliata su come farlo. Scarica la libreria Java da questo link. E aggiungilo alla cartella libs come segue.
Una volta integrata la libreria, devi acquisire le autorizzazioni Internet nella tua app. Apri il file AndroidManifest.xml e aggiungi le seguenti righe
Le autorizzazioni di cui sopra ti permetteranno di accedere alla rete per recuperare i risultati da Watson.
Passaggio 3b: recuperare la chiave API da Bluemix
Dal catalogo IBM Bluemix, fare clic su Watson => AlchemyAPI => Crea. Assicurati di utilizzare una chiave API statica come mostrato nell'immagine seguente:
Passaggio 4: aggiungere il codice per invocare Watson
Ora è il momento di aggiungere del codice per comunicare con l'API Watson Alchemy. Espandi AskWatson AsyncTask con il codice seguente.
AlchemyLanguage service = new AlchemyLanguage(); service.setApiKey(""); Carta geografica parametri = nuova HashMap (); params.put(AlchemyLanguage.TEXT, editText.getText()); Sentiment DocumentSentiment = service.getSentiment(params).execute(); System.out.println(sentiment); //passando il risultato da visualizzare nell'interfaccia utente nel thread principale return sentiment.getSentiment().getType().name();
È ora di verificare rapidamente se l'app funziona. Premi Ctrl + R e guarda l'app essere tutta intelligente!

{ "docSentiment": { "score": -0.42344, "type": "negative" }, "language": "english", "totalTransactions": 1 }
Conclusione
Hai appena visto quanto è stato facile creare un'app cognitiva utilizzando Watson Sentiment Analysis. L'app che abbiamo creato non aveva alcuna reale funzionalità per dire, ma ha mostrato le capacità di Bluemix e delle sue offerte. Puoi mettere queste offerte sotto più parentesi e creare esperienze utente estremamente ricche. Vai al sito Web di Bluemix per saperne di più su cosa puoi costruire.
Lascia un commento
Hanno qualcosa da dire su questo articolo? Aggiungi il tuo commento e avvia la discussione.