Twitter'dan sanatçıları tespit etmeye çalışıyorum. Bu yüzden bir tweet'im var ve tweet'i belirtmek ve sanatçıyla belirteçle uyuşmak için Levenshtein mesafesini kullanan bir dizi sanatçıyla karşılaştırmak için natural for node'u kullanıyorum. Benim problemim, aslında her belirtecin sanatçı listesiyle karşılaştırılmasının ve tweet'in atıfta bulunulanla uyuşmasının mantığında zorluk yaşıyorum. Aşağıdaki örnek, sanatçı olarak Clean Bandit'i almalıdır. `Score` özelliğiyle diziEn düşük değeri ve ilişkili anahtarı JavaScript'te
var saturday = ["Kanye West", "Pharrell Williams", "Paloma Faith", "Burt Bacharach", "Clean Bandit"];
var tweet = "My queen @graciechatto about to go on The Other Stage at Glastonbury #cleanbandit #glastonbury…"
tokenizer = new natural.WordTokenizer(); //new tokeniser
var tweetTokenised = tokenizer.tokenize(tweet); //tokenise the tweet and store it in tweetTokenised
var i , j;
//loop through tokenised tweet
for(i=0;i<tweetTokenised.length;i++){
console.log(tweetTokenised[i] + "--------------------------");
var temp = [];
//compare token with list of artists performing on saturday
for(j=0;j<saturday.length;j++){
//remove whitespace from the tweet tokens
console.log(tweetTokenised[i]+ "--->"+saturday[j]); //testing purposes
var score = natural.LevenshteinDistance(tweetTokenised[i].replace(/\s+/g, '').toLowerCase(),saturday[j].toLowerCase());
//store score for each token vs artists in a temp dictionary
temp.push({
key: saturday[j],
value: score
});
}
}
Sıralama, daha sonra ilk eleman en düşük puanına sahip olacaktır. – Barmar
teşekkürler @Barmar tam ihtiyacım olan şey! – user130316