Как подвергать цензуре только ругательства с gsub - PullRequest
0 голосов
/ 22 января 2019

У меня есть текстовый корпус, содержащий некоторые нецензурные слова, и я попытался подвергнуть их цензуре, но после дальнейшей проверки я понял, что регулярное выражение, которое я использовал, еще не совсем подходит, а также правильные слова подвергаются цензуре из-за этого.

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

это вернет первые два слова, правильно прошедшие цензуру, и «cla * s», но, очевидно, я хочу оставить «класс». Что мне нужно добавить в регулярное выражение, чтобы изменить это? Я попробовал "\ w \". но это не сработало.

Ответы [ 2 ]

0 голосов
/ 22 января 2019

Кажется, ваш список выше ограничен * s?Если нет:

Список «плохих слов» в GitHub

Можно вытащить этот список из подмножества, а затем заменить второй символ на * в другом столбце.

0 голосов
/ 22 января 2019

Вы можете составить список с плохими словами, например

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"
...