dfm(Quanteda)中 "remove_twitter" 的新方法是什么?
What is the new method for "remove_twitter" in dfm (Quanteda)?
我收到以下消息。使用 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)并且没有选项可以从标签中删除 @
或 #
,使用 what = "word"
(默认).
要删除标签符号,您需要使用 what = "word1"
(v2 之前的默认设置)或者现在,使用任何其他创建列表输出的分词器,例如 [=31= 中的单词分词器]tokenizers 包。
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
文档现在声明:
In versions < 2, the argument remove_twitter
controlled whether social
media tags were preserved or removed, even when remove_punct = TRUE
.
This argument is not longer functional in versions >= 2. If greater
control over social media tags is desired, you should user an
alternative tokenizer, including non-quanteda options.
所以现在,这些符号总是由 quanteda 的默认标记器保存:
> tokens("This is a #hashtag and @username.")
Tokens consisting of 1 document.
text1 :
[1] "This" "is" "a" "#hashtag" "and" "@username" "."
请注意。我使用的是 2.1.2 版,现在我收到以下警告消息(使用 what="word1"):
'remove_twitter' 已失效;在 ?token
中查看 'quanteda Tokenizers'
所以,如果你真的需要删除社交媒体标签,你应该像 Ken Benoit 所说的那样使用 tokenizers 包。
这是评论,不是答案,对不起,如果我没有名气。
我收到以下消息。使用 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)并且没有选项可以从标签中删除 @
或 #
,使用 what = "word"
(默认).
要删除标签符号,您需要使用 what = "word1"
(v2 之前的默认设置)或者现在,使用任何其他创建列表输出的分词器,例如 [=31= 中的单词分词器]tokenizers 包。
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
文档现在声明:
In versions < 2, the argument
remove_twitter
controlled whether social media tags were preserved or removed, even whenremove_punct = TRUE
. This argument is not longer functional in versions >= 2. If greater control over social media tags is desired, you should user an alternative tokenizer, including non-quanteda options.
所以现在,这些符号总是由 quanteda 的默认标记器保存:
> tokens("This is a #hashtag and @username.")
Tokens consisting of 1 document.
text1 :
[1] "This" "is" "a" "#hashtag" "and" "@username" "."
请注意。我使用的是 2.1.2 版,现在我收到以下警告消息(使用 what="word1"):
'remove_twitter' 已失效;在 ?token
中查看 'quanteda Tokenizers'所以,如果你真的需要删除社交媒体标签,你应该像 Ken Benoit 所说的那样使用 tokenizers 包。
这是评论,不是答案,对不起,如果我没有名气。