MVP Challenge Azure Data & AI – Partie 5

logo azure

Dernière semaine du MVP Challenge Data & AI. Pour finir le tout en beauté, j’ai eu la chance de revenir sur les API d’analyse de texte, j’ai découvert la solution de recherche cognitive d’Azure, j’ai construit des bots et finalement j’ai fait un survol de plusieurs aspects entourant l’accessibilité. Voici mes découvertes, bonne lecture!

La première partie est disponible ici: Partie 1
La deuxième partie est disponible ici: Partie 2
La troisième partie est disponible ici: Partie 3
La quatrième partie est disponible ici: Partie 4

Reconnaissance d’entités

La reconnaissance d’entités, qui fait parti de l’API Text Analytics, nous permet d’extraire une liste d’entités ou d’items que le service reconnait, pouvant même nous retourner des liens sur ces entités si possible (par exemple un lien vers la page de Wikipedia). Comme cet API est déjà en place, tout ce qu’on a à faire une fois qu’on a notre ressource Azure pour les services cognitifs, c’est de l’appeler. Si on utilise le SDK déjà disponible pour C#, un appel à ce service sera aussi simple que ces quelques lignes (avec quelques instructions en amont pour initialiser le client):

L’API est fait pour recevoir du JSON en paramètre, chose que le SDK s’occupe de faire pour nous à l’utilisation. Dans l’exemple ci-haut, le résultat nous donnerait une liste contenant entre autre « Microsoft » et « Bill Gates ».

Dans le même genre, il existe aussi des APIs et SDK qui nous permettent d’extraire les phrases clé d’un texte ou encore de détecter la langue à partir du texte reçu. Pour ce qui est de la détection de langue, on peut très bien imaginer l’utilisation avec un bot qui doit savoir dans quelle langue une personne s’y adresse pour être en mesure de lui répondre la bonne chose, dans la bonne langue.

Azure Cognitive Search

La recherche cognitive est un outil qui nous permet de se construire une solution d’indexage et de requête à partir de plusieurs sources de données pour avoir une solution de recherche à grande échelle. En d’autres mots, on peut prendre plusieurs sources de données, en extraire ce dont on a besoin pour de la recherche et le préserver dans un index qui sera représenté sous forme de documents JSON et donc très facile à rechercher.

Contrairement à une recherche « classique », cette recherche permet d’utiliser les services cognitifs pour nous retourner des résultats en fonction de la pertinence de ceux-ci et non uniquement sur le fait que la valeur recherchée est retrouvée dans un champ. On peut même y ajouter un suggester, qui va permettre les suggestions pendant qu’on écrit et l’auto-complétion.

Pour configurer un service de recherche, on peut passer par l’interface web d’Azure ou même y aller directement via le code. Personnellement, j’ai trouvé que l’interface web était plus simple pour apprendre sur le sujet, qui peut être relativement imposant lorsqu’on ne sait pas tout ce que cela permet.

Les bots

Alors que j’avais vu brièvement comment créer un bot, cette fois c’est dans la construction que j’ai eu la chance d’apprendre. J’ai tout d’abord exploré le Bot Framework SDK, qui permet de créer un bot via un projet en C#. Essentiellement, il faut faire un override des méthodes qu’on veut redéfinir le comportement. Par exemple, cette méthode qui permet de répondre quelle heure il est lorsque une question avec le mot time est inscrite:

L’autre manière de créer un bot est avec l’aide du Bot Framework Composer. Cet outil, qu’on doit installer localement sur notre ordinateur, nous permet de composer les différents dialogues grâce à une interface où on ajoute différentes actions, questions ou réactions à prendre selon ce qui a été entré par l’utilisateur. Pour donner un léger aperçu, voici une partie d’un bot que j’ai créé avec le menu pour ajouter une question:

Accessibilité

L’accessibilité est au coeur de beaucoup des services d’intelligence artificielle. Une phrase qui m’a beaucoup raisonné en tête en faisant les apprentissages disait que lorsqu’on ne considère pas l’accessibilité, nous avons le pouvoir d’exclure des gens. Ceci devrait donc être au coeur de nos préoccupations en tant que développeur, de manière hâtive dans nos projets plutôt qu’à la fin, souvent fait à moitié.

Dans ces quelques modules, j’ai entre autre appris l’existance du Accessibility Insights, qui permet de détecter les problèmes d’accessibilité sur nos applications, autant mobile, web et de bureau. Du côté de la suite Office, une chose que je ne connaissais pas est au niveau de PowerPoint, où on peut utiliser un Presenter Coach qui est un service utilisant l’AI pour nous donner du feedback sur notre présentation et nous offrir des recommandations. On retrouve aussi dans la majorité des produits des outils qui peuvent nous aider à identifier et corriger les problèmes d’accessibilité, comme par exemple un texte alternatif manquant sur une image d’un courriel.

Conclusion

Le mois de mai fût pour moi extrèmement chargé en apprentissages, avec un examen pour une certification et un autre (Azure AI-102) que je vais continuer de me préparer dans les prochaines semaines, car il est à mon avis un peu plus difficile que le AI-900. Je vous remets les liens vers mes collections de module d’apprentissages, qui ont été bonifiées avec certains modules de ma dernière semaine. Je suis aussi en préparation d’un épisode du Bracket Show pour une démonstration de certaines des choses que j’ai vu pendant le mois.

Si vous avez des commentaires ou des questions sur tous ces apprentissages, ou sur les certifications s’y rattachant, n’hésitez surtout pas à me laisser savoir dans les commentaires.

Collection sur le Data & AI: Voir la collection
Collection sur le Machine Learning: Voir la collection
Collection sur l’analyse d’images: Voir la collection
Collection sur l’analyse de mots: Voir la collection

Bruno

MVP Challenge

La première partie est disponible ici: Partie 1
La deuxième partie est disponible ici: Partie 2
La troisième partie est disponible ici: Partie 3
La quatrième partie est disponible ici: Partie 4

Auteur : Bruno

De jour, je suis développeur, chef d'équipe et le co-animateur du Bracket Show. De soir, je suis un mari et le père de deux magnifiques enfants. Le temps qu'il me reste après tout cela, je le passe à tenter de bouger, à jouer et écrire des critiques de jeux vidéos, ainsi qu'à préparer du matériel pour les enregistrements du Bracket Show et pour ce blog. Au travers tout cela, je suis aussi passionné de musique et de microbrasseries.