Analyse de la présence des médias sociaux de votre entreprise avec IBM Watson et Node.js
Si vous n'êtes pas familier avec la technologie Machine Learning (ML), elle existe dans la science-fiction depuis de nombreuses années et arrive enfin à maturité dans notre société. Un des premiers exemples de ML que j'ai vus enfant était dans Star Trek The Next Generation quand le lieutenant Tasha Yar s'entraîne avec son adversaire holographique qui apprend à se battre et à mieux vaincre dans les batailles futures.
Dans la société actuelle, la Chine a mis au point un «robot de voie », un système de surveillance commandé par un système informatique capable de diriger le trafic dans différentes voies, augmentant la sécurité et améliorant le temps de déplacement. Ceci est fait automatiquement en fonction de l'heure et de la quantité de circulation dans chaque direction.
Un autre exemple est Pittsburg dévoilant des signaux de trafic AI qui détectent automatiquement les modèles de trafic et modifient les feux de circulation à la volée. Chaque lumière est contrôlée indépendamment pour aider à réduire à la fois le temps de trajet et le temps de ralenti des voitures. Selon l'article, les essais pilotes ont démontré une réduction du temps de déplacement de 25% et du temps de marche au ralenti de plus de 40%. Il y a, bien sûr, des centaines d'autres exemples de technologie de ML qui prennent des décisions intelligentes basées sur le contenu qu'il consomme.
Pour atteindre l'objectif d'aujourd'hui, je vais démontrer (en utilisant Node.js) comment effectuer une recherche avec l'API de Twitter pour récupérer le contenu qui sera entré dans l'algorithme ML à analyser. De cette façon, vous recevrez des caractéristiques sur les utilisateurs qui ont écrit ce contenu spécifique afin que vous puissiez mieux comprendre votre public. L'exemple d'application sera écrit en utilisant Node.js comme serveur.
Il est hors de propos de cet article de montrer comment écrire un algorithme ML. Au lieu de cela, pour aider à l'analyse, je vais démontrer comment utiliser IBM Watson pour vous aider à comprendre la personnalité générale de votre public de médias sociaux.
Qu'est-ce qu'IBM Watson?
En 2011, Watson a commencé comme un système informatique qui tentait d'indexer l'Internet (entier). Il a été initialement programmé pour répondre aux questions posées en anglais courant. Watson a concouru et a gagné sur l'émission de télévision Jeopardy! réclamant un prix en argent de 1.000.000 $
Watson était maintenant un succès avéré.
Avec la renommée de gagner dessus Jeopardy! IBM a continué à pousser les capacités de Watson. Watson a évolué en une application au niveau de l'entreprise qui se concentre sur l'Intelligence Artificielle (IA) que vous pouvez former pour identifier ce qui vous intéresse le plus, vous permettant de prendre des décisions plus intelligentes automatiquement.
La suite des services de Watson est divisée en six
- Conversation
Les services de cette catégorie vous permettent de créer un chatbot intelligent ou un agent de service à la clientèle virtuel. - Connaissance
Cette catégorie vise à enseigner à Watson comment interpréter les données pour débloquer - Vision
Ce service permet de marquer le contenu d'une image utilisée pour entraîner Watson à reconnaître automatiquement le même motif à l'intérieur d'autres images. - Discours
Ces services offrent la possibilité de convertir la parole en texte et l'inverse, le texte en parole. - Language
Cette catégorie est partagée entre la traduction d'une langue à l'autre ainsi que interpréter le texte pour prédire à quelle catégorie prédéfinie appartient le texte - Empathie
Cette catégorie est consacrée à la compréhension du ton, de la personnalité et de l'état émotionnel du contenu. Dans cette catégorie se trouve un service appelé "Personality Insights" qui sera utilisé dans cet article pour prédire les caractéristiques de la personnalité avec le contenu des médias sociaux que nous lui fournirons.
Cet article se concentrera sur la compréhension de la personnalité du contenu que nous ira chercher sur Twitter. Toutefois, comme vous pouvez le voir, Watson fournit de nombreuses autres fonctionnalités d'IA que vous pouvez explorer pour automatiser de nombreux autres processus simplement par la formation et l'agrégation de contenu.
Personality Insights Personality Insights analyse le contenu et l'aide vous comprenez les habitudes et les préférences au niveau individuel et à l'échelle. C'est ce qu'on appelle le «profil de personnalité». Le profil est divisé en deux groupes de haut niveau: Caractéristiques de la personnalité et Préférences de consommation . Ces groupes sont ensuite décomposés en composants plus finis
Note : Pour aider à comprendre les concepts de haut niveau (avant de plonger dans les résultats), la documentation Personality Insights fournit ce résumé utile décrivant comment le profil est déduit du contenu que vous lui fournissez
Caractéristiques de la personnalité
Le service Personality Insights déduit des caractéristiques de personnalité basées sur trois modèles primaires:
- Les caractéristiques de personnalité des «Big Five» représentent le modèle le plus largement utilisé pour décrire avec le monde. Le modèle comprend cinq dimensions principales:
- Accordabilité
- Conscience
- Extraversion
- Gamme émotionnelle
- Ouverture
Note : Chaque dimension a six facettes qui caractérisent davantage un individu selon à la dimension - Besoins décrivent quels aspects d'un produit résonneront avec une personne. Le modèle comprend douze besoins caractéristiques:
- Excitation
- Harmonie
- Curiosité
- Idéal
- Proximité
- Autoexpression
- Liberté
- Amour
- Aspect pratique
- Stabilité [19659033] Défi
- Structure
- Les valeurs décrivent les facteurs de motivation qui influencent la prise de décision d'une personne. Le modèle comprend cinq valeurs:
- Auto-transcendance / Aider les autres
- Conservation / Tradition
- Hédonisme / Prendre du plaisir dans la vie
- Amélioration de soi / Atteindre le succès
- Ouvert au changement / Excitation
Pour plus d'informations, voir Modèles de personnalité .
Préférences de consommation
Basé sur les caractéristiques de personnalité déduites du texte d'entrée, le service peut également renvoyer une indication des préférences de consommation de l'auteur. Les «préférences de consommation» indiquent la probabilité que l'auteur poursuive différents produits, services et activités. Le service regroupe les préférences individuelles en huit catégories:
- Shopping
- Musique
- Films
- Lecture et apprentissage
- Santé et activité
- Bénévolat
- Préoccupation environnementale
- Entrepreneuriat
Chaque catégorie contient de une à une douzaine de préférences individuelles
Note : Pour plus d'informations, voir Préférences de consommation . Pour un aperçu plus approfondi d'un point d'intérêt particulier, je vous suggère de vous reporter à la documentation de Personality Insights .
Pour être efficace, Watson requiert un minimum de cent mots pour fournir un aperçu de la personnalité du consommateur. Plus le nombre de mots fournis est élevé, mieux Watson peut analyser et déterminer la préférence du consommateur
Cela signifie que si vous souhaitez cibler des individus, vous devrez collecter plus de données qu'un ou deux tweets d'une personne spécifique. Cependant, si un utilisateur écrit une critique de produit, un article de blog, un courriel ou tout autre élément lié à votre entreprise, cela pourrait être analysé à la fois au niveau individuel et à l'échelle.
Pour commencer, commençons par configurer Personality service pour commencer à analyser un exemple réel.
Configuration du service Personality Insights
Watson est une application d'entreprise mais ils offrent un service gratuit et limité . Une fois que vous avez créé un compte et que vous êtes connecté, vous devez ajouter le service Personality Insight . IBM propose un plan Lite gratuit. Le plan Lite est limité à 1000 appels API par mois et est automatiquement supprimé après 30 jours – parfait pour notre démonstration.
Une fois le service ajouté, nous devrons récupérer les informations d'identification du service pour effectuer des appels d'API. De Watson's Dashboard votre service devrait s'afficher. Après avoir sélectionné le service, vous trouverez un lien pour afficher les informations d'identification du service dans le menu de gauche. Vous devrez créer une nouvelle "Informations d'identification". Un nom unique est requis et des paramètres de configuration facultatifs peuvent être définis par défaut pour cette connexion. Pour l'instant, nous laisserons les options de configuration vides.
Après avoir créé un identifiant, sélectionnez le lien 'View' credentials. Cela affichera l'URL de l'API, votre nom d'utilisateur et votre mot de passe requis pour exécuter en toute sécurité les appels d'API. Sauvegardez-les dans un endroit sûr car nous en aurons besoin à l'étape suivante.
Test du service Personality Insights
Pour effectuer des appels d'API, je vais utiliser Node.js. Si vous avez déjà installé Node.js, vous pouvez passer à l'étape suivante; sinon, suivez les instructions pour configurer Node.js à partir de la page de téléchargement officielle .
Pour montrer comment utiliser les Personality Insights je vais créer un nouveau Node.js projet sur mon ordinateur. Avec une invite de commande ouverte, accédez au répertoire dans lequel vos projets Node.js seront stockés et créez votre nouveau projet:
mkdir watson-sentiments
cd watson-sentiments
npm init
Pour aider à effectuer les appels d'API à Watson, je vais tirer parti du paquetage NPM: SDK Cloud Developer Cloud Node.js . Ce paquet peut être installé via l'invite de commande:
npm install watson-developer-cloud --save
Avant de faire le premier appel, l'objet PersonalityInsightsV3 doit être instancié avec les informations d'identification de la section précédente. Commencez par créer un nouveau fichier appelé index.js qui contiendra le code Node.js
Voici un exemple de configuration de la classe pour qu'elle soit prête à effectuer des appels d'API:
var PersonalityInsightsV3 = require ('watson-developer-cloud / personnalité-insights / v3');
var personality_insights = new PersonalityInsightsV3 ({
"url": "https://gateway.watsonplatform.net/personality-insights/api",
"Nom d'utilisateur": "**************************",
"mot de passe": "*************",
"version_date": "2017-12-01"
});
La variable personality_insights
est ce que nous utiliserons pour interagir avec l'API du service Personality Insights . Passons en revue comment exécuter un appel et retourner un profil de personnalité:
var fs = require ('fs');
personality_insights.profile ({
"contentItems": [
{
"content": "Some content that contains more than 100 words...",
"contenttype": "text/plain",
"created": 1447639154000,
"id": "666073008692314113",
"language": "en"
}
],
"consumer_preferences": true
}, (erreur, réponse) => {
if (err) throw err;
fs.writeFile ("results.txt", JSON.stringify (réponse, null, 2), function (err) {
if (err) throw err;
console.log ("Les résultats ont été sauvegardés!");
});
});
La fonction profile
accepte un tableau de contentItems
. L'élément 'content' contient le contenu réel avec quelques propriétés supplémentaires identifiant des informations supplémentaires pour aider Watson à l'interpréter.
Lorsque ceci est exécuté, les résultats sont écrits dans un fichier texte (les résultats sont trop gros pour écrire dans la console ). Le résultat est un objet qui contient les propriétés de haut niveau suivantes:
-
word_count
- Nombre de mots interprétés
-
processed_language
La langue que le contenu fourni, par exemple
- Personnalité
Ceci est un tableau des caractéristiques de la personnalité des «Cinq Grands» (Ouverture, Conscience, Extraversion, Accordabilité et Portée émotionnelle). Chaque caractéristique contient un centile global pour cette caractéristique (par exemple 0,8100175318417588). Pour vérifier plus de détails, il y a un tableau appeléenfants
qui fournit des informations plus approfondies. Par exemple, une catégorie enfant sous 'Ouverture' est 'Aventureuse' qui contient son propre centile - Besoins
Ceci est un tableau des douze caractéristiques qui définissent les aspects qu'une personne va résonner avec un produit (Excitation, Harmonie , Curiosité, Idéal, Proximité, Expression de soi, Liberté, Amour, Praticité, Stabilité, Défi et Structure). Chaque caractéristique contient un percentile de la façon dont le contenu a été interprété - Valeurs
Ceci est un tableau des cinq caractéristiques qui décrivent les facteurs de motivation qui influencent la prise de décision d'une personne (Autotranscendance / Aider les autres, Conservation / Tradition, Hédonisme / Prendre du plaisir dans la vie, Auto-amélioration / Atteindre le succès, et Ouvert au changement / Excitation). Chaque caractéristique contient un centile de la façon dont le contenu a été interprété - Comportement
Ceci est un tableau qui contient trente et un éléments. Chaque élément fournit un centile de quand le contenu a été créé. Sept des éléments définissent les jours de la semaine (du dimanche au samedi). Les vingt-quatre éléments restants définissent les heures de la journée. Cela vous aide à comprendre quand le client interagit avec votre produit. -
consumer_preferences
Ceci est un tableau qui contient huit catégories différentes avec jusqu'à douze catégories enfant fournissant un percentile de la probabilité de poursuivre différents produits, services, et activités (Shopping, Musique, Films, Lecture et apprentissage, Santé et activité, Volontariat, Préoccupation environnementale et Entrepreneuriat). - Avertissements
Ceci est un tableau qui fournit des messages si un problème a été rencontré en interprétant le contenu fourni.
Voici un CodePen des résultats formatés:
Voir le stylo Exemple Watson Résultats par Jamie Munro ( @endyourif ) le CodePen . [19659110] Configuration de Twitter
Pour rechercher sur Twitter les tweets pertinents, je vais utiliser le package Twitter NPM. Depuis une fenêtre de console où l'application est hébergée, exécutez la commande suivante pour l'installer:
npm install twitter --save
Avant de pouvoir implémenter le package Twitter, vous devez créer une application Twitter
Une fois votre application créée, vous devez récupérer les clés d'autorisation requises pour effectuer les appels d'API. Une fois votre application créée, accédez à la page "Clés" et "Accéder aux jetons". Comme nous n'effectuons pas d'appels d'API contre les utilisateurs de Twitter, l'intégration d'OAuth n'est pas requise. A la place, nous n'avons besoin que des quatre clés suivantes:
- Clé du consommateur
- Secret du consommateur
- Jeton d'accès
- Secret du jeton d'accès
Les deux dernières clés doivent être générées près du bas des 'Clés' et la page "Accéder aux jetons". Avec les touches, voici un exemple de recherche de Tweets sur #SmashingMagazine:
var Twitter = require ('twitter');
var client = nouveau Twitter ({
La clé du consommateur: '*********************',
consumer_secret: '******************',
access_token_key: '******************',
access_token_secret: '****************'
});
client.get ('search / tweets', {q: '#SmashingMagazine'}, fonction (erreur, tweets, réponse) {
si (erreur) erreur de projection;
console.log (tweets);
});
Le résultat de ce code enregistrera une liste de tweets sur Smashing Magazine. Pour les besoins de cette démonstration, les champs suivants nous intéressent:
-
id
-
created_at
-
text
-
metadata.iso_language_code
Ce sont les champs que nous allons nourrir Watson
Intégrer les aperçus de personnalité avec Twitter
Avec l'installation de Twitter et l'installation de Watson, il est temps d'intégrer les deux. Pour le rendre intéressant, cherchons #DonaldTrump
pour voir ce que le monde pense du président des États-Unis. Voici l'exemple de code pour rechercher sur Twitter, envoyer les résultats dans Watson et écrire les résultats dans un fichier texte:
var fs = require ('fs');
var Twitter = require ('twitter');
var client = nouveau Twitter ({
La clé du consommateur: '*********************',
consumer_secret: '******************',
access_token_key: '******************',
access_token_secret: '****************'
});
var PersonalityInsightsV3 = require ('watson-développeur-cloud / personnalité-insights / v3');
var personality_insights = new PersonalityInsightsV3 ({
"url": "https://gateway.watsonplatform.net/personality-insights/api",
"Nom d'utilisateur": "**************************",
"mot de passe": "*************",
"version_date": "2017-12-01"
});
client.get ('search / tweets', {q: '#DonaldTrump'}, function (erreur, tweets, réponse) {
si (erreur) erreur de projection;
var contentItems = [];
// Boucle dans les tweets
pour (var i = 0; i {
if (err) throw err;
// Ecrit les résultats dans un fichier
fs.writeFile ("results.txt", JSON.stringify (réponse, null, 2), function (err) {
if (err) throw err;
console.log ("Les résultats ont été sauvegardés!");
});
});
});
Voici un autre CodePen des résultats formatés que j'ai reçus:
Voir le stylo Donald Trump Watson Résultats par Jamie Munro ( @endyourif ) le CodePen
Que disent les résultats?
Une fois que nous avons analysé le trait 'Ouverture' des 'Cinq Grands', nous pouvons en déduire ce qui suit:
- L'émotion est assez faible à 13% [19659061] L'imagination est moyenne à 54%
- L'intellect est très élevé à 96%
- Le défi d'autorité est également assez élevé à 87%
Le trait de "Conscience" à un haut niveau est moyen à 46% comparé au «Ouverture» moyenne élevée de 88%. Alors que «l'agrément» est très faible, à seulement 25%. Je suppose que les gens sur Twitter n'aiment pas être d'accord avec Donald Trump.
Passons aux 'Besoins' Les sous-catégories de 'Curiosité' et 'Structure' sont dans le percentile 60 par rapport aux autres catégories 10e percentile (excitation, harmonie, etc.).
Enfin, sous «Valeurs», la sous-catégorie qui me semble intéressante est «l'ouverture» à «changer» à un niveau abyssal de 6%
. En fonction du moment où vous effectuez votre recherche, vos résultats peuvent varier car les résultats sont limités aux sept derniers jours après l'exécution de l'exemple.
A partir de ces résultats, je déterminerais que la personne moyenne qui parle de Donald Trump est assez intellectuelle. , défie l'autorité, et n'est pas ouvert au changement.
Avec ces résultats, cela vous permettrait de modifier automatiquement la façon dont vous allez cibler votre contenu vers votre public pour qu'il corresponde aux résultats reçus. Vous devrez déterminer quelles catégories sont intéressantes et quels percentiles souhaitez-vous cibler. Avec cette munition, vous pouvez commencer à automatiser
Que puis-je faire avec Watson?
Comme je l'ai mentionné au début de cet article, Watson propose de nombreux autres services. Avec ces services, vous pouvez automatiser de nombreuses parties des processus métier communs. Par exemple:
- Construction d'un robot de discussion qui peut répondre intelligemment à des questions basées sur une base de connaissances d'informations
- Construire une application où vous dictez ce que vous voulez écrire à Watson en utilisant la fonctionnalité de synthèse vocale; traduisez votre contenu dans différentes langues pour créer un site multilingue ou une base de connaissances;
- Apprenez à Watson comment rechercher des motifs spécifiques dans des images. Cela pourrait être utilisé pour déterminer si un logo est incorporé dans une photo
Ceci, bien sûr, est un très petit sous-ensemble que mon imagination limitée peut postuler. Je suis sûr que vous pouvez penser à beaucoup d'autres façons de tirer parti des immenses capacités de Watson.
Si vous cherchez d'autres exemples, IBM a un référentiel GitHub entier dédié à leur Node.js SDK . Le dossier d'exemples contient plus de dix exemples d'applications qui convertissent la parole en texte, la synthèse vocale, l'analyse de la tonalité et la reconnaissance visuelle pour n'en nommer que quelques-uns.
Conclusion
Avant que Watson ne puisse s'enfuir L'intelligence artificielle détruit l'humanité, cet article a démontré comment vous pouvez transformer le contenu des médias sociaux en une puissante compréhension de la façon dont les personnes qui créent le contenu pensent. En utilisant les résultats de Watson, votre application peut utiliser les catégories d'intérêt où le centile dépasse ou est inférieur à un montant prédéterminé pour changer la façon dont vous ciblez votre public.
Si vous avez d'autres utilisations intéressantes de Watson ou comment vous utilisez le Personality Insights assurez-vous de laisser un commentaire ci-dessous.
Source link