Обычно есть несколько черных списков слов, которые можно использовать.
Если вы хотите применить к нему NLP, вы можете использовать Apache OpenNLP для базовых задач NLP, таких как токенизация и обнаружение POS.
Из POS-тегов вы можете применять фильтры слов на основе черного списка. Однако вам придется иметь дело со сленгами и синонимами.
Для части Slang / Synonym вы можете использовать Conceptnet, где есть WebAPI, основанный на википедии. Возьмем, например, ссылка на «марихуана» и ссылка на «детской порнографии» в Conceptnet- можно найти отношения входных терминов в вашем plataform, чтобы увидеть, если есть ссылка в «незаконных наркотиков» или «детской порнографии». А затем отрицать их,
На самом деле, я бы предпочел классифицировать вашу проблему как проблему NLU (она должна иметь дело с пониманием текста, а не только его представления).