Как функция 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", когда оно не используется в качестве реального твита.

Другие вопросы по тегам