【问题标题】:Within the context of tm::content_transformer() how would I use mgsub?在 tm::content_transformer() 的上下文中,我将如何使用 mgsub?
【发布时间】:2017-12-19 06:56:14
【问题描述】:

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

【问题讨论】:

    标签: r tm qdap


    【解决方案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))
    

    【讨论】:

      猜你喜欢
      • 2016-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-22
      • 1970-01-01
      • 2022-10-23
      相关资源
      最近更新 更多