gpt4 book ai didi

r - 使用 R 和 Rweka 在 termdocument 矩阵中使用 bigrams 而不是单个单词

转载 作者:行者123 更新时间:2023-12-03 14:36:18 28 4
gpt4 key购买 nike

我找到了一种在术语文档矩阵中使用二元组而不是单个标记的方法。解决方案已在 stackoverflow 上提出:findAssocs for multiple terms in R

这个想法是这样的:

library(tm)
library(RWeka)
data(crude)

#Tokenizer for n-grams and passed on to the term-document matrix constructor
BigramTokenizer <- function(x) NGramTokenizer(x, Weka_control(min = 2, max = 2))
txtTdmBi <- TermDocumentMatrix(crude, control = list(tokenize = BigramTokenizer))

但是最后一行给了我错误:
Error in rep(seq_along(x), sapply(tflist, length)) : 
invalid 'times' argument
In addition: Warning message:
In is.na(x) : is.na() applied to non-(list or vector) of type 'NULL'

如果我从最后一行删除分词器,它会创建一个常规的 tdm,所以我猜问题出在 BigramTokenizer 函数的某个地方,尽管这与 Weka 站点在此处提供的示例相同: http://tm.r-forge.r-project.org/faq.html#Bigrams .

最佳答案

受到 Anthony 评论的启发,我发现您可以指定 parallel 的线程数。库默认使用(在调用 NgramTokenizer 之前指定它):

# Sets the default number of threads to use
options(mc.cores=1)

NGramTokenizer好像卡在 parallel::mclapply调用,更改线程数似乎可以解决此问题。

关于r - 使用 R 和 Rweka 在 termdocument 矩阵中使用 bigrams 而不是单个单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17703553/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com