如何使用Quanteda :: tokens_select()删除单字符和双字符令牌

时间:2019-02-09 17:07:07

标签: r quanteda

我正在尝试删除单字符和双字符令牌。

这是一个示例:

toks <- tokens(c("This is a sentence. This is a second sentence."), remove_punct = TRUE)

toks <- tokens_select(toks, min_nchar=1L, max_nchar=2L, selection = "remove")

toks

结果:

  

1个文档中的令牌。   文字1:

     

[1]“是”“ a”“是”“ a”

我希望获得不符合条件的代币,而不是符合条件的代币。

3 个答案:

答案 0 :(得分:3)

library(quanteda)

toks <- tokens(c("This is a sentence. This is a second sentence."), remove_punct = TRUE)
tokens_select(toks, min_nchar=3L)

答案 1 :(得分:1)

似乎选择参数被忽略了。

这给出了我想要的结果。

toks <- tokens_select(toks, min_nchar=3L, max_nchar=79L)

答案 2 :(得分:-1)

您需要将给定的句子转换为标记。您可以执行以下操作:

library(quanteda)

# convert to tokens
tokens <- unlist(tokens(sent, remove_punct = T), use.names=F)

# to remove tokens with <= 2 characters
Filter(function(x) nchar(x) > 2, tokens)

[1] "This"     "sentence" "This"     "second"   "sentence"