查找文本中的废话

时间:2018-11-19 15:54:21

标签: r text-mining stringr stringi

我有一个数据集,其中包含用户是否知道品牌的答案。正如您在我的示例中看到的那样,有些用户只是胡说八道。

meinstring <- c("----asdada", "no idea", "C&A", "aaaaaaaaaa", "---", "adaosdjasodajsdoad")


spamidenfifier <- function(x) {
  verhaeltnis <- str_count(tolower(x), "[aeoiu]") / str_count(x)
  sequenz <- sum(sequence(rle(as.character(data.frame(strsplit(as.character(x), ""))[,1]))$lengths) >= 3, na.rm = TRUE)
  if(str_count(x) > 4) { weight <- 0.9 }  else {  weight <- 1  } ## Gewicht, weil unwahrscheinlicher bei längerem String
  variation_buchstaben <- (length(unique(data.frame(strsplit(as.character(x), ""))[,1])) / str_count(x) * weight)
  if(verhaeltnis < 0.2 | verhaeltnis > 0.8 | sequenz > 0 | variation_buchstaben < 0.5) {
    return(TRUE)
  } else {
    return(FALSE)
  }
}


sapply(meinstring, spamidenfifier)

输出:

----asdada            no idea                C&A         aaaaaaaaaa                --- adaosdjasodajsdoad 
      TRUE              FALSE              FALSE               TRUE               TRUE              FALSE 

我的功能还不错,但是可能有更好的解决方案。是否有一种包装或更好的方法来识别一个单词是否拼写错误或一个人回答胡说八道。 如果没有,请高度赞赏有关改进该功能的建议!

编辑:更新了一些改进:-)

1 个答案:

答案 0 :(得分:0)

只是我的自发想法:

bib2df::bib2df

没有完美的完美解决方案。