score |
{{= score}} |
Comparative |
{{= comparatif}} |
favorisé |
{{= favorité}} |
retweeted |
{{= retweet}} |
Mots correspondants |
{{= WordsMatched}} |
Mots positifs |
{{= Positivewords}} |
Mots négatifs |
{{= négatifwords}} |
table>
Article>
script >
body >
html >
Ici, nous faisons référence à jQuery et App.js. Nous avons également créé un modèle (tweet_tmpl), qui sera utilisé pour afficher les résultats. Enfin, ouvrez Styleshets / Style.css et ajoutez les classes suivantes.
<span>body {
</span> <span>padding: 50px;
</span> <span>font: 14px"Lucida Grande", Helvetica, Arial, sans-serif;
</span> <span>background: #eee;
</span><span>}
</span><span>a {
</span> <span>color: #00B7FF;
</span><span>}
</span><span>input {
</span> <span>width: 98%;
</span> <span>padding: 9px;
</span> <span>font-size: 17px;
</span><span>}
</span><span><span>.results</span> {
</span> <span>display: none;
</span><span>}
</span><span><span>.error</span> {
</span> <span>color: red;
</span> <span>display: none;
</span><span>}
</span><span><span>.tweet-results</span> {
</span> <span>width: 100%;
</span> <span>overflow: hidden;
</span> <span>padding-right: 18px;
</span><span>}
</span><span><span>.left</span> {
</span> <span>float: left;
</span> <span>width: 39%;
</span><span>}
</span><span><span>.right</span> {
</span> <span>float: right;
</span> <span>width: 55%;
</span> <span>border-left: 1px dashed;
</span> <span>padding-left: 21px;
</span><span>}
</span><span>article {
</span> <span>background: #fff;
</span> <span>display: block;
</span> <span>padding: 18px;
</span> <span>border: 1px solid #eee;
</span> <span>margin-top: 21px;
</span> <span>margin-bottom: 21px;
</span> <span>overflow: hidden;
</span> <span>box-shadow: 6px 4px 9px 1px <span>rgba(119, 119, 119, 0.75)</span>;
</span> <span>-moz-box-shadow: 6px 4px 9px 1px <span>rgba(119, 119, 119, 0.75)</span>;
</span> <span>-webkit-box-shadow: 6px 4px 9px 1px <span>rgba(119, 119, 119, 0.75)</span>;
</span><span>}
</span><span>article img {
</span> <span>width: 64px;
</span> <span>float: left;
</span> <span>margin:0 5px 0 0;
</span><span>}
</span><span><span>.right table</span> {
</span> <span>width: 100%;
</span><span>}
</span><span><span>.right table, .right table td</span> {
</span> <span>border: 1px solid;
</span><span>}
</span><span><span>.right table td</span> {
</span> <span>width: 50%;
</span><span>}</span>
Copier après la connexion
Copier après la connexion
c'est tout, nous en avons fini avec notre développement. Laissez-nous exécuter l'application et le tester. De retour dans le terminal, exécutez la commande Gulp pour démarrer le serveur. Accédez à http: // localhost: 3000 / et vous devriez voir la barre de recherche. Entrez "This is Good" et appuyez sur Retour et vous devriez voir quelque chose comme ceci:
Ici, le score est la somme des scores pour chaque mot présent dans le tweet correspondant à la source afinn. Le comparatif est égal au score / mots total. Les mots appariés montrent combien de mots du tweet correspondaient aux mots afinn pendant le traitement. Les mots positifs sont les mots positifs appariés et les mots négatifs sont les mots négatifs appariés. Ces données devraient vous donner suffisamment d'informations pour prendre une décision et comprendre le sentiment.
Effacez la barre de recherche et entrez Sad Broken et appuyez sur Retour. Vos résultats devraient ressembler à ceci:
Simple et facile, non? Vous pouvez maintenant rechercher quelques mots et voir comment les résultats se déroulent.
Formation de vos données
Vous devez avoir remarqué maintenant que tous les tweets ne renvoient pas les résultats. En effet, si aucun des mots du tweet ne correspond aux mots afinn, le score serait 0. Par exemple:
Si vous souhaitez résoudre ce problème, vous pouvez entraîner le module de sentiment. Créez un nouveau fichier à l'intérieur du dossier logique nommé Training.js et ajoutez le code suivant.
module<span>.exports = {
</span> <span>directives: 4,
</span> <span>angular: 5,
</span> <span>code: 3,
</span> <span>scope: 3
</span><span>};</span>
Copier après la connexion
Ici, nous formons le module pour utiliser les scores ci-dessus pour les mots mentionnés. Ensuite, mettez à jour la logique / sentimentAnalysis.js comme ceci:
<span>var sentiment = require('sentiment');
</span><span>var trainedData = require('./training.js');
</span>module<span>.exports = function(text) {
</span> <span>return sentiment(text, trainedData);
</span><span>}</span>
Copier après la connexion
Après la formation, les résultats ressembleront à ceci:
Il s'agit d'une technique très puissante, alors assurez-vous que vous attribuez des valeurs appropriées aux mots clés, sinon vous pouvez voir des résultats qui peuvent ne pas avoir de sens. Reportez-vous à Afinn pour plus d'informations.
Création d'un service RESTful
Vous pouvez créer un tableau de bord en temps réel qui affichera des tweets et des résultats. Vous pouvez exécuter un travail asynchrone, qui appuyera de temps en temps sur l'API Twitter, récupérera les données et les enregistrera à l'aide de DISKDB. Ensuite, vous pouvez exposer ce fichier en tant que point final reposant. Ajoutez le code suivant aux routes / index.js.
<span>body {
</span> <span>padding: 50px;
</span> <span>font: 14px"Lucida Grande", Helvetica, Arial, sans-serif;
</span> <span>background: #eee;
</span><span>}
</span><span>a {
</span> <span>color: #00B7FF;
</span><span>}
</span><span>input {
</span> <span>width: 98%;
</span> <span>padding: 9px;
</span> <span>font-size: 17px;
</span><span>}
</span><span><span>.results</span> {
</span> <span>display: none;
</span><span>}
</span><span><span>.error</span> {
</span> <span>color: red;
</span> <span>display: none;
</span><span>}
</span><span><span>.tweet-results</span> {
</span> <span>width: 100%;
</span> <span>overflow: hidden;
</span> <span>padding-right: 18px;
</span><span>}
</span><span><span>.left</span> {
</span> <span>float: left;
</span> <span>width: 39%;
</span><span>}
</span><span><span>.right</span> {
</span> <span>float: right;
</span> <span>width: 55%;
</span> <span>border-left: 1px dashed;
</span> <span>padding-left: 21px;
</span><span>}
</span><span>article {
</span> <span>background: #fff;
</span> <span>display: block;
</span> <span>padding: 18px;
</span> <span>border: 1px solid #eee;
</span> <span>margin-top: 21px;
</span> <span>margin-bottom: 21px;
</span> <span>overflow: hidden;
</span> <span>box-shadow: 6px 4px 9px 1px <span>rgba(119, 119, 119, 0.75)</span>;
</span> <span>-moz-box-shadow: 6px 4px 9px 1px <span>rgba(119, 119, 119, 0.75)</span>;
</span> <span>-webkit-box-shadow: 6px 4px 9px 1px <span>rgba(119, 119, 119, 0.75)</span>;
</span><span>}
</span><span>article img {
</span> <span>width: 64px;
</span> <span>float: left;
</span> <span>margin:0 5px 0 0;
</span><span>}
</span><span><span>.right table</span> {
</span> <span>width: 100%;
</span><span>}
</span><span><span>.right table, .right table td</span> {
</span> <span>border: 1px solid;
</span><span>}
</span><span><span>.right table td</span> {
</span> <span>width: 50%;
</span><span>}</span>
Copier après la connexion
Copier après la connexion
Maintenant, lorsque vous accédez à http: // localhost: 3000 / données, vous pouvez voir les données complètes enregistrées jusqu'à présent. Un exemple en direct est disponible ici.
Intégrer les médias sociaux
Similaire à Twitter, vous pouvez intégrer Facebook, Google et d'autres données sur les réseaux sociaux. Tout ce que vous avez à faire est de transmettre le texte que vous souhaitez analyser sur logique / sentimentanalyse.js, et vous pouvez voir le score pour cela.
Conclusion
J'espère que vous avez une idée de base sur la façon d'effectuer une analyse des sentiments en utilisant cette application. Merci d'avoir lu! Commentez, s'il vous plaît.
Questions fréquemment posées (FAQ) sur la création d'une application d'analyse de sentiment à l'aide de node.js
Qu'est-ce que l'analyse des sentiments et pourquoi est-ce important?
L'analyse des sentiments, également connue sous le nom d'extraction d'opinion, est un sous-champ de traitement du langage naturel (PNL) qui implique l'utilisation d'algorithmes pour extraire et comprendre Le sentiment exprimé dans diverses formes de données de texte. C'est important car il permet aux entreprises de comprendre le sentiment social de leur marque, de leur produit ou de leur service tout en surveillant les conversations en ligne. Il peut également être utilisé pour détecter la polarité (positive, négative, neutre) dans les revues des clients, les médias sociaux, les forums de discussion et plus, qui peuvent fournir des informations précieuses pour la prise de décision.
Comment fonctionne l'analyse des sentiments dans le nœud .js?
Dans Node.js, l'analyse du sentiment peut être effectuée en utilisant diverses bibliothèques NLP telles que «sentiment» et «naturel». Ces bibliothèques utilisent une technique appelée «sac de mots» où le texte est décomposé en mots individuels. Chaque mot se voit attribuer un score qui indique s'il est positif, négatif ou neutre. Le sentiment global du texte est déterminé en résumant les scores de tous les mots.
Comment puis-je installer la bibliothèque 'Sentiment' dans Node.js?
Vous pouvez installer le 'Sentiment' Bibliothèque dans Node.js à l'aide de NPM (Node Package Manager). Ouvrez votre terminal et saisissez la commande suivante: NPM Install Sentiment. Cela téléchargera et installera la bibliothèque 'Sentiment' dans votre projet Node.js.
Comment puis-je utiliser la bibliothèque 'Sentiment' pour analyser le texte dans Node.js?
Après avoir installé le ' Bibliothèque Sentiment ', vous pouvez l'utiliser dans votre application Node.js en l'exigeant en haut de votre fichier: const Sentiment = require (' Sentiment ');. Ensuite, créez une nouvelle instance de sentiment: const Sentiment = new Sentiment ();. Maintenant, vous pouvez analyser n'importe quel texte en appelant la méthode d'analyse sur l'instance de sentiment: const result = sentiment.analyze («votre texte ici») ;.
Quelle est la structure de l'objet résultat renvoyé par la méthode «Analyser»?
La méthode «Analyser» renvoie un objet qui contient plusieurs propriétés. La propriété «score» indique le sentiment global du texte (valeurs positives pour le sentiment positif, les valeurs négatives pour le sentiment négatif et zéro pour le sentiment neutre). La propriété «comparative» est le score de sentiment moyen par mot dans le texte. La propriété «calcul» est un tableau de chaque mot dans le texte et son score individuel.
Puis-je personnaliser les scores de sentiment de mots spécifiques?
Oui, vous pouvez personnaliser les scores de sentiment des scores de sentiment des scores de sentiment des scores de sentiment des scores de sentiment de Mots spécifiques en passant un objet Options lors de la création d'une nouvelle instance de sentiment. L'objet Options doit avoir une propriété «extras» qui est un objet de mots et leurs scores correspondants.
Comment puis-je gérer les négations dans l'analyse du sentiment?
La bibliothèque «sentiment» dans le nœud. JS gère automatiquement les négations. Si un mot de négation (comme «non») précède un mot, le score de sentiment de ce mot est inversé.
Puis-je utiliser la bibliothèque «sentiment» pour analyser le texte non anglaise?
La bibliothèque «Sentiment» prend en charge plusieurs langues. Vous pouvez spécifier la langue en passant un objet Options lors de la création d'une nouvelle instance de sentiment. L'objet Options doit avoir une propriété «langue» qui est le code ISO 639-1 de la langue.
Comment puis-je gérer les emojis dans l'analyse du sentiment?
La bibliothèque 'Sentiment' dans le nœud .js gère automatiquement les emojis. Chaque emoji a un score de sentiment prédéfini dans la bibliothèque.
Puis-je utiliser d'autres bibliothèques NLP pour l'analyse des sentiments dans Node.js?
Oui, il existe plusieurs autres bibliothèques NLP disponibles pour Node.js comme «naturel», «franc-min», «compromis» et «nlp.js». Ces bibliothèques offrent diverses fonctionnalités NLP, y compris l'analyse des sentiments.