如何用 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?如果不是:
可以从此列表中提取子集,然后在另一列中用 * 替换第二个字符。
我有一个包含一些脏话的文本语料库,我试图对它们进行审查,但经过进一步检查,我意识到我使用的正则表达式还不太合适,而且适当的词也因此被审查.
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?如果不是:
可以从此列表中提取子集,然后在另一列中用 * 替换第二个字符。