L'IA envahit le monde rapidement. Chaque segment de la technologie est repensé et révolutionné à l'aide de l'IA. En tant que développeur de logiciels, à un moment donné de votre carrière, vous aurez certainement une rencontre avec l'IA, il est donc logique d'avoir une certaine expérience de travail avec elle à votre actif. Le domaine de l'IA est extrêmement vaste et dépasse largement le cadre de cet article, mais je veux quand même vous montrer à quel point il est facile d'intégrer l'intelligence dans vos applications avec un minimum de travail. Bien sûr, vous n'entraînerez aucun modèle d'apprentissage automatique pour y parvenir, vous utiliserez une solution pré-construite, c'est pourquoi cela vous demandera un travail extrêmement minime.
Nous allons créer un système d'analyse des sentiments extrêmement simple sur Android à l'aide de l'API Watson d'IBM. IBM crée de nombreuses intégrations utiles qui peuvent être directement utilisées par les développeurs sans avoir à se soucier de construire l'infrastructure de leur côté. Ils associent toutes leurs offres à Bluemix, une suite de produits permettant de créer de meilleurs logiciels. Ce qui est génial avec Bluemix, c'est qu'il est gratuit pendant 30 jours, vous n'avez donc pas à vous engager directement. Si vous souhaitez découvrir leurs offres, rendez-vous sur le Site Web Bluemix et inscrivez-vous pour un essai de 30 jours.
Très bien, commençons à créer l'application. Avant de commencer, voici un avertissement rapide. Cet article supposera complètement que vous avez une certaine expérience de la programmation orientée objet et d'Android. La partie Android du projet est assez minime, vous n'avez donc besoin que d'une connaissance de base des vues et de la façon de les manipuler.
Maintenant que nous avons terminé les formalités, commençons.
Étape 1 : la configuration
Lancez Android Studio et créez un nouveau projet. Nommez-le comme vous le souhaitez et acceptez les valeurs par défaut dans l'assistant de configuration. Une fois le projet généré, exécutez-le sur un appareil ou un émulateur juste pour vous assurer que tout fonctionne correctement. Si tout va bien jusqu'à présent, vous êtes prêt à passer à l'étape suivante.
Étape 2 : Créer l'interface utilisateur
Commençons à construire la mise en page. Étant donné que l'application est assez minime, éliminons la partie mise en page le plus rapidement possible. Voici à quoi ressemblera l'écran final de l'application.
Il comprend un TextView, un EditText et un Button, tous contenus dans un LinearLayout. Une fois que vous avez terminé de répliquer la mise en page, accédez simplement au fichier Java correspondant et connectez votre interface utilisateur comme suit.
La classe publique MainActivity étend AppCompatActivity { TextView textView; EditText editText; Bouton bouton ; Sentiment de chaîne ; @Override protected void onCreate(Bundle protectedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //initialiser les éléments de l'interface utilisateur textView = (TextView) findViewById(R.id.textView); editText = (EditText) findViewById(R.id.editText); button = (Bouton) findViewById(R.id.button);
Associons le bouton à un écouteur de clics afin qu'il réponde aux événements tactiles. Voici le code pour cela :
button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { System.out.println("Connexion à la console sur laquelle le bouton a appuyé pour le texte : " + editText.getText()); textView .setText("Affichage sur l'interface utilisateur du sentiment à vérifier : " + editText.getText()); AskWatsonTask task = new AskWatsonTask(); task.execute(new String[]{}); } });
Remarquez la tâche AskWatson ? C'est ce qui sera utilisé pour récupérer les résultats de l'analyse des sentiments de l'API Watson. Ce n'est rien d'autre qu'une simple AsyncTask. Copiez et collez le morceau de code suivant :
la classe privée AskWatsonTask étend AsyncTask { @Override protected String doInBackground(String... textToAnalyse) { System.out.println(editText.getText()); runOnUiThread(new Runnable() { @Override public void run() { textView.setText ("ce qui se passe dans un thread - nous exécutons Watson AlchemyAPI"); } }); sentiment = "Tester le sentiment" ; System.out.println(sentiment); //transmettre le résultat à afficher à l'interface utilisateur dans le sentiment de retour de la bande de roulement principale ; } //définir la valeur de l'interface utilisateur en dehors du thread @Override protected void onPostExecute(String result) { textView.setText ("Le sentiment du message est : " + result); } }
L'AsyncTask mentionnée ci-dessus récupérera les résultats de Watson au format JSON que nous analyserons plus tard et afficherons dans l'interface utilisateur. Pour l'instant, l'application est assez stupide mais elle fonctionne. Pour enregistrer un point de contrôle, déployons l'application que nous avons créée jusqu'à présent et voyons ce qu'elle fait. Appuyez sur le bouton vert Play et regardez-le fonctionner. Cela ne fait rien.
Si vous cliquez sur le Analyser! bouton, vous devriez pouvoir voir le résultat dans le champ TextView. Vous devriez également voir une sortie dans la fenêtre log cat.
Étape 3 : ajouter les Smarts
Il est temps d'ajouter la capacité cognitive à ce squelette d'une application. La première chose que vous devez faire est d'ajouter le Watson Cloud SDK for Java dans votre application. dirigez-vous vers ce lien pour une explication détaillée sur la façon de le faire. Téléchargez la bibliothèque Java sur ce lien. Et ajoutez-le au dossier libs comme suit.
Une fois la bibliothèque intégrée, vous devez acquérir des autorisations Internet dans votre application. Ouvrez AndroidManifest.xml et ajoutez les lignes suivantes
Les autorisations ci-dessus vous permettront d'accéder au réseau pour récupérer les résultats de Watson.
Étape 3b : Récupérer la clé API de Bluemix
Dans le catalogue IBM Bluemix, cliquez sur Watson => AlchemyAPI => Créer. Assurez-vous d'utiliser une clé API statique, comme illustré dans l'image suivante :
Étape 4 : ajouter le code pour invoquer Watson
Il est maintenant temps d'ajouter du code pour communiquer avec l'API Watson Alchemy. Développez AskWatson AsyncTask avec le code suivant.
Service AlchemyLanguage = new AlchemyLanguage(); service.setApiKey(""); Carte params = nouveau HashMap (); params.put(AlchemyLanguage.TEXT, editText.getText()); DocumentSentiment sentiment = service.getSentiment(params).execute(); System.out.println(sentiment); //transmettre le résultat à afficher à l'interface utilisateur dans le thread principal return sentiment.getSentiment().getType().name();
Il est temps de tester rapidement si l'application fonctionne. Appuyez sur Ctrl+R et regardez l'application être toute intelligente !
{ "docSentiment": { "score": -0.42344, "type": "negative" }, "language": "english", "totalTransactions": 1 }
Conclusion
Vous venez de voir à quel point il était facile de créer une application cognitive à l'aide de Watson Sentiment Analysis. L'application que nous avons créée n'avait aucune fonctionnalité réelle à proprement parler, mais elle montrait les capacités de Bluemix et de ses offres. Vous pouvez placer ces offres sous plusieurs supports et créer des expériences utilisateur extrêmement riches. Rendez-vous sur le site Web de Bluemix pour en savoir plus sur tout ce que vous pouvez créer.
Laissez un commentaire
Avez vous quelque chose à dire sur cet article? Ajoutez votre commentaire et lancez la discussion.