Как функция gsub() помогает заменить записи ретвитов в анализе настроений в R
Код Tgus показывает, как удалить опцию Retweet из твитов в случае анализа настроений в R.
tweets <- searchTwitter("iPhone", n=1500, lang="en")
txt <- sapply(tweets, function(x) x$getText())
txt <- gsub("(RT|via)((?:\\b\\W*@\\w+)+)", "", txt)
Что я не понимаю, так это то, что в gsub ()
функция, где шаблон
(RT|via)((?:\\b\\W*@\\w+)+)
родом из?
1 ответ
Давайте разберемся с этим:
(RT|via)
- Совпадение "RT" или "через"
Все остальное - это группа без захвата, определяемая (?:)
Это означает, что мы проверяем, что он существует, но мы не фиксируем его.
(?:\\b\\W*@\\w+)+)
\\b
это граница слова
\\W*
это не слово-символ. *
означает совпадение 0 или более
Матч @
\\w+
и один или несколько символов слова (буква, цифра, соединитель)
+
за пределами группы без захвата означает, что может быть более одной из этих групп без захвата.
По сути, вы сопоставляете "через" или "RT" и удаляете его (через пробел "", которым вы заменяете захваченный текст) и сопоставляете, но не захватываете все остальное, что следует
Используется группа без захвата, чтобы вы могли сопоставлять "RT" или "via" в разных позициях в строке. \\b\\W*@\\w+
Убедитесь, что вы соответствуете имени пользователя Twitter после "RT" или "через". Это должно помочь избежать замены "RT" или "via", когда оно не используется в качестве реального твита.