【问题标题】:combining words in tm R is not achieving desired result在 tm R 中组合单词没有达到预期的结果
【发布时间】:2021-08-28 01:57:13
【问题描述】:

我正在尝试组合几个单词,以便它们算作一个。 在此示例中,我希望将 valvaluatin 计为 valuation

我一直在尝试执行此操作的代码如下:

#load in package
library(tm)

replaceWords <- function(x, from, keep){
  regex_pat <- paste(from, collapse = "|")
  gsub(regex_pat, keep, x)
}


oldwords <- c("val", "valuati")
newword  <- c("valuation")

TextDoc2 <- tm_map(TextDoc, replaceWords, from=oldwords, keep=newword)

但是,这并没有按预期工作。任何时候只要单词中有val,它现在就会被替换为valuation。例如,equivalent 变为 equivaluation。如何解决此错误并达到我想要的结果?

【问题讨论】:

    标签: r tm corpus qdap


    【解决方案1】:

    试试这个功能-

    replaceWords <- function(x, from, keep){
      regex_pat <- sprintf('\\b(%s)\\b', paste(from, collapse = '|'))
      gsub(regex_pat, keep, x)
    }
    

    valequivalent 匹配。添加单词边界可以防止这种情况发生。

    grepl('val', 'equivalent')
    #[1] TRUE
    grepl('\\bval\\b', 'equivalent')
    #[1] FALSE
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-24
      • 2021-12-10
      • 1970-01-01
      相关资源
      最近更新 更多