Насчет готового решения не знаю, но можно использовать алгоритмы стемматизации, например Портера
ru.wikipedia.org/wiki/%D0%A1%D1%82%D0%B5%D0%BC%D0%BC%D0%B5%D1%80_%D0%9F%D0%BE%D1%80%D1%82%D0%B5%D1%80%D0%B0, но тут нужна база данных с основами нежелательных слов.
Помниться была какая-то баннерная система, которая не показывала рекламу на страницах с происшествиями.