• 6 hours
  • Medium

Free online content available in this course.

course.header.alt.is_video

course.header.alt.is_certifying

You can get support and mentoring from a private teacher via videoconference on this course.

Got it!

Last updated on 7/11/18

Détecter la personnalité avec Watson

Log in or subscribe for free to enjoy all this course has to offer!

Nous allons utiliser l'intelligence artificielle Watson d'IBM dans ce chapitre et le suivant. Elle permet de faire un certain nombre de calculs et de répondre à des questions parfois complexes.

Watson est devenu célèbre pour avoir gagné le jeu télévisé Jeopardy en 2011, face à des candidats humains :

Watson dans Jeopardy
Watson dans Jeopardy

Dans la pratique, il s'agit d'une sorte de super-calculateur capable de répondre à des questions complexes en peu de temps :

Le super-calculateur Watson
Le super-calculateur Watson

Pourquoi je vous parle de Watson ? Parce qu'IBM donne accès à de nombreux services d'analyse basés sur l'intelligence artificielle de Watson :

Les services Watson disponibles dans Bluemix
Les services Watson disponibles dans Bluemix

Nous allons ici nous intéresser au service "Personality Insights". Ce n'est pas forcément celui dont vous aurez le plus souvent besoin pour être franc, mais il permet de se familiariser avec Watson et est capable... de donner des informations sur la personnalité de quelqu'un simplement en lisant son texte.

A partir du texte rédigé par quelqu'un, Watson est capable de dire si cette personne est curieuse, créative, aventureuse... bref, de dévoiler sa personnalité !

Créer un projet utilisant Watson

Créez un nouveau projet Node.js vide dans Bluemix et ajoutez-y le service "Personality Insights". Si vous avez bien suivi les chapitres précédents, vous ne devriez pas avoir de difficultés. ;)

Une fois le service ajouté au projet, vous pouvez agrandir le bloc "Personality Insights" pour dévoiler les identifiants de connexion à Watson Personality Insights.

Le service Personality Insights affiche les identifiants de connexion
Le service Personality Insights affiche les identifiants de connexion

Sur votre machine, créez un dossier pour le nouveau projet et installez-y le paquet watson-developer-cloud :

npm install watson-developer-cloud

Nous allons pouvoir faire appel à Watson très simplement dans un petit programme :

var express = require('express');
var bodyParser = require('body-parser');
var urlencodedParser = bodyParser.urlencoded({ extended: false });
var watson = require('watson-developer-cloud');
 
var personality_insights = watson.personality_insights({
  username: 'VOTRE_LOGIN_ICI',
  password: 'VOTRE_MOT_DE_PASSE_ICI',
  version: 'v2'
});

var app = express();

// Définition de l'hôte et du port
var host        = process.env.VCAP_APP_HOST || process.env.HOST || 'localhost';
var port        = process.env.VCAP_APP_PORT || process.env.PORT || 8080;


app.get('/', function(req, res) { 
    res.render('index.ejs');
})

.post('/', urlencodedParser, function(req, res) {
    if (req.body.message != '') {
        personality_insights.profile({ text: req.body.message }, function (err, response) {
            res.render('index.ejs', { 'personality': JSON.stringify(response, null, 2 )});
        });
    }
})

.listen(port, host);

Le programme retourne une page HTML et affiche le résultat (brut) de Watson lorsqu'on lui envoie un texte. Ce résultat est affiché dans le template EJS suivant :

<!DOCTYPE html>

<html>
    <head>
        <title>Watson</title>
        <style>
            a {text-decoration: none; color: black;}
        </style>
    </head>

    <body>
        <h1>Watson</h1>

        <form action="/" method="post">
            <p>
                <label for="message">Saisissez votre message pour que je puisse analyser votre personnalité :</label><br />
                <textarea name="message" id="message" rows="7" cols="100"></textarea>
                <input type="submit" />
            </p>
        </form>

        <% if (typeof personality !== 'undefined') { %>
            <pre><%= personality %></pre>
        <% } %>
    </body>
</html>

Vous remarquerez que je suis volontairement allé au plus simple. Le design est brut et il n'y a aucun traitement. Cela vous permet cependant de lire les résultats de la personnalité détectée par Watson à partir du texte !

Les résultats de personnalité avec Watson
Les résultats de personnalité renvoyés par Watson

Plus visuel : l'application de démonstration

Evidemment, vous allez me dire que tout ça n'est pas très digeste. Je suis on ne peut plus d'accord.

Faire une belle visualisation de la personnalité prendrait du temps. Pourquoi ne pas directement essayer l'application de démonstration d'IBM ?

L'application de démonstration avec le tableau des résultats
L'application de démonstration avec le tableau des résultats

Si vous regardez plus bas dans la page, vous avez aussi droit à un graphe de visualisation réalisé avec d3.js qui mérite le coup d'oeil :

Le graphe de visualisation de la personnalité
Le graphe de visualisation de la personnalité

Le pourcentage indiqué sur chaque caractéristique correspond à votre positionnement par rapport à l'ensemble des individus. Sur ce texte de démonstration, on voit que la personne est très ouverte mais pas très agréable. ;)

Le projet est disponible sur Github si vous voulez vous en inspirer, voire même le forker. Un bouton "Deploy to Bluemix" est d'ailleurs présent pour vous permettre de copier directement ce projet dans votre espace Bluemix. A vous de jouer !

Example of certificate of achievement
Example of certificate of achievement