quanteda - dfm(Quanteda)中“remove_twitter”的新方法是什么?
问题描述
我收到以下消息。使用 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.
我理解 deprecated 在上下文中的含义,但我不理解第二部分:改用 'what = "word"'。请有经验的用户解释一下好吗?
谢谢你。
解决方案
我承认弃用消息不是最有帮助的,但想法是我们已经更改了 v2 中的默认标记器行为。 what = "word"
现在保留社交媒体标签(@username 和 #hashtag),并且没有选项可以从标签中删除@
or (默认)。#
what = "word"
要删除标记符号,您需要使用what = "word1"
(pre v2 默认值)或现在,使用任何其他创建列表输出的标记器,例如tokenizers包中的单词 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"
关于 quanteda >= v2 的更新
此选项已在 v2 中删除。该tokens
文档现在指出:
在版本 < 2 中,参数
remove_twitter
控制是否保留或删除社交媒体标签,即使remove_punct = TRUE
. 此参数在 >= 2 的版本中不再起作用。如果需要更好地控制社交媒体标签,您应该使用替代标记器,包括非 quanteda 选项。
所以现在,这些符号总是由quanteda的默认标记器保留:
> tokens("This is a #hashtag and @username.")
Tokens consisting of 1 document.
text1 :
[1] "This" "is" "a" "#hashtag" "and" "@username" "."
推荐阅读
- bazel - bazel:使用 WSL 的 bash 而不是 MSYS64
- html - 一个div下的多个span标签添加了额外的空格
- netbeans-8 - 需要 Maatwebsite Excel“从视图”代码的解释
- jquery - JQuery datepicker 在多 jsp 页面中不起作用
- c# - 如何使用属于该类类型并使用另一个类调用的变量来调用在类下定义的变量?
- android - 我在 Volley 请求中的响应总是进入错误侦听器
- php - 使用 php 脚本运行后如何创建 cron 作业并删除作业?
- mongodb - Mongo db 查询时间超出预期
- javascript - 使用 Wix 网站构建器的 Javascript
- java - 图片未更新