如何用 gsub 只审查脏话

How to censor ONLY swear words with gsub

我有一个包含一些脏话的文本语料库,我试图对它们进行审查,但经过进一步检查,我意识到我使用的正则表达式还不太合适,而且适当的词也因此被审查.

x <- c("ass", "badass", "class")
gsub("ass\b", "a*s", x)

这将 return 前两个词正确删减,"cla*s",但显然我想保留 "class"。我需要在正则表达式中添加什么才能改变它?我试过“\w\”。但它没有用。

你可以用坏词做一个列表,即

bad.words <- c('ass', 'badass', 'dumbass')
c(x[!x %in% bad.words], gsub("ass\b", "a*s", x[x %in% bad.words]))
#[1] "class"  "a*s"    "bada*s"

您上面的列表似乎仅限于 a*s?如果不是:

GitHub List of 'Bad words'

可以从此列表中提取子集,然后在另一列中用 * 替换第二个字符。