Упростим и конкретизируем.
Нужна категоризация текстов. Есть две группы для обучения: одна "топ", вторая "нетоп". Программа выделяет:
1) слова, характерные для группы "топ", и одновременно нехарактерные для "нетоп", например: "Haskell, роботы, Arduino, сервер".
2) характерные для "нетоп" и одновременно нехарактерные для "топ": "Славянск, Путин, сиськи, аниме".
Далее даём текст на вход и просим поискать, каких слов больше: топ-слов или нетоп-слов.
Кажется, очень похоже на задачу фильтрации спама. Должно быть готовое решение.