首页 > 解决方案 > 如何在R中用正确的单词替换错误的拼写单词

问题描述

我知道可能会问类似的问题,但我觉得我的要求很特殊。我有两个数据框:一个带有拼写错误的单词,另一个带有更正单词的数据框。

我需要用另一个数据框中的正确单词替换每个不正确的单词。如果有最好的方法,请告诉我。

a <- data.frame(reported_terms=c('abdome pain','adominal ache','adomen'),
                stringsAsFactors = FALSE)

b <- data.frame(wrong=c('adomen','adominal','abdome'),correct=c('abdomen','abdominal','abdomen'),
                stringsAsFactors = FALSE)

我正在尝试使用以下代码,但没有得到预期的输出

corr_report_terms=list() # created empty list.

for(i in a){
  str_split(i," ")
  if(any(i %in% b))
    corr_report_terms <- b$correct
}

预期输出:

abdomen pain
abdominal ache
abdomen

标签: rtidyversestr-replacetext-mining

解决方案


棘手但有效:

library(stringi) 
stri_replace_all_regex(a$reported_terms, "\\b"%s+%b$wrong%s+%"\\b", b$correct, vectorize_all=FALSE)
[1] "abdomen pain"   "abdominal ache" "abdomen"   

推荐阅读