我的语料库大致有75 MB的数据。我正在尝试使用以下命令
tm_map(doc.corpus, removeWords, stopwords("english"))
tm_map(doc.corpus, tolower)
这两项功能至少需要40分钟才能运行。我正在寻找加快这个过程,因为我正在为我的模型使用tdm
矩阵。
我经常尝试gc()
和memory.limit(10000000)
等命令,但我无法加快处理速度。
我有一个带4GB
RAM的系统,并运行本地数据库来读取输入数据。
希望加快建议!
答案 0 :(得分:2)
也许你可以试试quanteda
library(stringi)
library(tm)
library(quanteda)
txt <- stri_rand_lipsum(100000L)
print(object.size(txt), units = "Mb")
# 63.4 Mb
system.time(
dfm <- dfm(txt, toLower = TRUE, ignoredFeatures = stopwords("en"))
)
# Elapsed time: 12.3 seconds.
# User System verstrichen
# 11.61 0.36 12.30
system.time(
dtm <- DocumentTermMatrix(
Corpus(VectorSource(txt)),
control = list(tolower = TRUE, stopwords = stopwords("en"))
)
)
# User System verstrichen
# 157.16 0.38 158.69
答案 1 :(得分:0)
首先我尝试
tm_map(doc.corpus, content_transformer(tolower))
因为tolower()
getTransformations()
不在内