【发布时间】:2014-08-07 13:39:01
【问题描述】:
一般来说,我有兴趣让流程运行得更快。
我正在使用 R 对大约 8000 个文档的德国语料库进行情感分析。我不只是计算正面和负面的单词,而是将一个介于 -1 和 1 之间的值分配给大约 3000 个不同的术语。由于我没有使用词干功能,并且仍然想获得德语语法的所有屈折形式,因此我的单词表变得更长。
为了匹配,我目前正在使用此代码:
score.sum <- rep(0, length(texts))
for (i in 1:length(texts)){
for (j in 1:length(sent.words)){
if(sent.words[j] %in% strsplit(texts[i], split=" ")[[1]] {
score.sum[i] <- score.sum[i] + sent.words_score[j]
}}}
作为一个小例子,可以使用:
texts <- c("I like ice cream. It is great","I hate flying because it makes me sick","If I get bored I do something fun")
sent.words <- c("like","great","hate","sick","bored","fun","joy")
sent.words_score <- c(0.3,0.7,-0.5,-0.4,-0.4,0.3,0.5)
也许计算花费的时间比你想要的要长。在我处理 8000 个文档的情况下,我需要大约 6 个小时。那么你知道避免双重 if 循环并加快计算速度的方法吗?
已经提前致谢 迈鲁乌
【问题讨论】:
标签: r performance sentiment-analysis