1

qdap:: mgsub采用以下参数:

mgsub(x, pattern, replacement)

在 library(tm) 语料库转换中,您可以将非 tm 函数包装在 中content_transformer(),例如

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")
)

在 corpus 和 content_transformer() 的上下文中使用 mgsub 我可以这样做:

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) 中是什么?

4

1 回答 1

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))
于 2017-07-14T12:23:28.987 回答