我正在做一个有关文本挖掘的项目,因此我想编写一个小函数来计算文本中不同标记的数量。标记化是通过功能完成的,该功能tidytext::unnest_token
基本上是tokenizers::tokenize_ngrams
与管道一起使用的包装器。我当前的方法如下:
count_tokens <- function(data,output,token="words", ...){
data %>%
select(textcolumn) %>%
tidytext::unnest_tokens(tbl=output, input=textcolumn, ...) %>%
n_distinct()
}
...
只要我使用from的参数tidytext::unnest_token
(例如to_lower
或),此方法就可以正常工作(即使使用)drop
。count_tokens(data, word, to_lower = FALSE)
工作正常!
现在,tidytext::unnest_token
状态文档...
也可以用作传递给令牌生成器的其他参数,例如strip_punct
用于“单词”和“ tweets”n
以及k
用于“ ngrams”和“ skip_ngrams”(...)。但是,如果我n
在函数中包含省略号参数的参数,则会崩溃。
count_tokens(data, ngram, token = "ngrams", to_lower = FALSE, n = 10)
出现以下错误信息:
Error in tf(col, lowercase = to_lower, ...) : unused argument (n = 10)
有人可以指出正确的方向,甚至告诉我如何修改我的代码吗?
首先,您的示例似乎无效。对我来说,更新的功能正常工作。
library(dplyr)
library(tidytext)
library(janeaustenr)
count_tokens <- function(data,output,token="words", ...){
d %>%
select(txt) %>%
tidytext::unnest_tokens(output, input="txt", token = token, ...) %>%
n_distinct()
}
d <- tibble(txt = prideprejudice)
count_tokens(d, "word", to_lower = FALSE)
#> [1] 6915
count_tokens(d, "ngram", token = "ngrams", to_lower = FALSE, n = 8)
#> [1] 122189
count_tokens(d, "ngram", token = "ngrams", to_lower = FALSE, n = 5)
#> [1] 121599
count_tokens(d, "ngram", token = "ngrams", to_lower = FALSE, n = 3)
#> [1] 104664
由reprex软件包(v0.3.0)创建于2021-02-03
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句