qdap :: mgsub采用以下参数:
mgsub(x, pattern, replacement)
在库(tm)语料库转换中,您可以在content_transformer()
中包含非tm函数,例如
corpus <- tm_map(corpus, content_transformer(tolower))
这是一个包含拼写错误的文字的数据框:
df <- data.frame(
id = 1:2,
sometext = c("[cad] appls", "bannanas")
)
这是一个数据框,其中包含拼写错误单词的自定义查找:
spldoc <- data.frame(
incorrects = c("appls", "bnnanas"),
corrects = c("apples", "bannanas")
)
使用mgsub和corpus以及content_transformer()的上下文我可以这样做:
wrongs <- select(spldoc, incorrects)[,1] %>% paste0("\\b",.,"\\b") # prepend and append \\b to create word boundary regex
rights <- select(spldoc, corrects)[,1]
df$sometext <- mgsub(wrongs, rights, df$sometext, fixed = F)
但我无法看到如何在函数内写入mgsub以传递给content_transformer()
我的x参数与mgsub(x,pattern,replacement)中的相同?
答案 0 :(得分:1)
这就是我所做的:
# create separate function to pass into tm_map()
spelling_update <- content_transformer(function(x, lut) mgsub(paste0("\\b", lut[, 1], "\\b") , lut[, 2], x, fixed = F))
然后
corpus <- tm_map(corpus, spelling_update(spldoc))