2016-12-11 5 views
0

Je suis en train de construire un outil d'analyse de sentiment Twitter avec Angular, Node et Express. En ce moment je suis capable de saisir des tweets d'utilisateur, enlever * quelques caractères spéciaux et quand j'appelle la fonction de sentiment elle renvoie input.lowercase n'est pas une fonction. J'ai essayé d'utiliser le paquet Sentimental à la place et il a retourné une erreur très similaire.Twitter sentiment package questions npm

router.post("/postUsername", function(req, res){ 
    console.log(req.body.userName); 
    var client = new Twitter({ 
    consumer_key: , 
    consumer_secret: '', 
    access_token_key: '', 
    access_token_secret: '' 
    }); 


    client.get('statuses/user_timeline', {screen_name: req.body.userName, count:20}, function(error, tweets, response) { 
    if (!error) { 
     var concatenatedTweets = analyzeIt.analyzeIt(tweets); 
     console.log(concatenatedTweets); 
     var score = sentiment(concatenatedTweets); 
     console.log(score); 
     } 
    }); 
}); 

et mon analyser la fonction fonction * ne fonctionne pas comme je l'avais vouloir enlever les choses

function analyzeIt(data) { 
    return data.map(function(item){ 
    var puncutaionLess = item.text.replace("/[.,#!$%^&*;:{}=-_`~()]/[email protected]?" , ''); 
    var finalString = puncutaionLess.replace(/\s{2,}/g," "); 
    return finalString.replace("#@" , ""); 
    }); 
}; 

Toute aide serait très appréciée?

Répondre

0

Votre expressios ordinaire est bizarre.

D'abord il n'y a pas de citation autour de regex en javascript.

Aussi, vous n'êtes pas s'échapper charaters spéciales:

item.text.replace("/[.,#!$%^&*;:{}=-_`~()]/[email protected]?" , ''); 

devrait être:

item.text.replace(/[\.,#!$%^&*;:{}=\-_`~()]/g , ''); 

Avis l'évasion de .

Vous pouvez ajouter [] là aussi:

Par exemple:

text = "hello[!] there!"; 
 
text = text.replace(/[\.\[\],#!$%^&*;:{}=\-_`~()]/g , ''); 
 

 
console.log(text)

+0

Après la mise en œuvre de votre solution, il dit encore input.toLowercase n'est pas une fonction dans le sentiment d'analyser la fonction. – Quesofat

+0

'toLowerCase' est une méthode String (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/toLowerCase) ne sait pas sur quoi vous l'utilisez, (il est aussi pas toLowCase c'est 'toLowerCase') –

+0

et nulle part dans votre code ne" toLowerCase "apparaît, donc je ne sais même pas ce que cela a à voir avec la question –