2017-09-26 6 views
0
Code

Tgus montre comment supprimer l'option Retweet de tweets en cas d'analyse de sentiment dans l'affaire R.comment le gsub() aide des fonctions à remplacer les entrées retweet dans l'analyse des sentiments en R

tweets <- searchTwitter("iPhone", n=1500, lang="en") 
txt <- sapply(tweets, function(x) x$getText()) 
txt <- gsub("(RT|via)((?:\\b\\W*@\\w+)+)", "", txt) 

Ce que je ne comprendre est que dans la fonction gsub(), d'où vient le modèle

(RT|via)((?:\\b\\W*@\\w+)+) 

vient?

Répondre

0

Brisons-le:

(RT|via) - Match « RT » ou « via »

Tout le reste est un groupe non-capture défini par (?:), ce qui signifie que nous vérifions qu'il existe, mais nous n » t le capturer.

(?:\\b\\W*@\\w+)+)

\\b est une limite de mot

\\W* est un caractère non-mot. * moyens de jeu égal à 0 ou plus

correspondant à un @

\\w+ et un ou plusieurs caractères de texte (lettre, un chiffre, un connecteur)

+ extérieur du groupe non-capture signifie qu'il peut y avoir plus d'un de ces groupes non-capturant.

Fondamentalement, vous correspondant « via » ou « RT » et le retirer (via le « » vide vous remplacez le texte capturé avec), et correspondant à la capture, mais pas tout le reste qui suit

Le non -capturing group est utilisé pour que vous puissiez faire correspondre "RT" ou "via" dans différentes positions de la chaîne. \\b\\W*@\\w+ s'assure que vous correspondez à un nom d'utilisateur twitter après le "RT" ou "via". Cela devrait aider à éviter de remplacer "RT" ou "via" quand il n'est pas utilisé comme un re-tweet réel.

+0

C'était un très elaboarte et une réponse appropriée à la question, merci @ Mako212. Merci pour l'effort! Pourriez-vous partager les liens/ressources possibles qui vous ont aidé avec l'information? –

+0

@KrishnaDhruv Bien sûr, [Rexegg.com] (http://www.rexegg.com/regex-quickstart.html) est une ressource fantastique pour Regex. Je l'ai trouvé très utile dans l'apprentissage des bases, et toutes les expressions clés sont commodément organisées dans des tableaux de référence. – Mako212

+0

Génial. Merci encore :) –