Что представляет собой новый метод удаления "_twitter" в dfm (Quanteda)? - PullRequest
0 голосов
/ 20 апреля 2020

Я получаю следующее сообщение. Используя R 3.6.3, RStudio 1.2.5042 и Quanteda 2.0.1.

corpus.dfm <- dfm(corpus, remove_twitter = TRUE)
'remove_twitter' is deprecated; for FALSE, use 'what = "word"' instead. 

Я понимаю, что не рекомендуется в контексте, но я не понимаю вторую часть: используйте слово "what =" вместо этого. Может ли опытный пользователь уточнить, пожалуйста?

Спасибо.

1 Ответ

0 голосов
/ 20 апреля 2020

Я признаю, что сообщение об устаревании не самое полезное, но идея в том, что мы изменили поведение токенизатора по умолчанию в v2. what = "word" теперь сохраняет теги социальных сетей (@username и #hashtag), и нет возможности удалить @ или # из тегов с what = "word" (по умолчанию).

Чтобы удалить символы тега, вам нужно использовать what = "word1" (по умолчанию до v2) или сейчас, использовать любой другой токенизатор, который создает вывод списка, например слово tokenizer из пакета tokenizer .

library("quanteda")
## Package version: 2.0.1

txt <- "This is a @username and #hashtag."

# preserve social media tags (default)
tokens(txt, remove_punct = TRUE, what = "word")
## Tokens consisting of 1 document.
## text1 :
## [1] "This"      "is"        "a"         "@username" "and"       "#hashtag"

# remove social media tags (using tokenizers pkg)
tokenizers::tokenize_words(txt, lowercase = FALSE) %>%
  tokens()
## Tokens consisting of 1 document.
## text1 :
## [1] "This"     "is"       "a"        "username" "and"      "hashtag"

# remove social media tags (using quanteda)
tokens(txt,
  remove_twitter = TRUE, remove_punct = TRUE,
  what = "word1"
)
## Warning: 'remove_twitter' is deprecated; for FALSE, use 'what = "word"' instead.
## Tokens consisting of 1 document.
## text1 :
## [1] "This"     "is"       "a"        "username" "and"      "hashtag"
...