Ну для начала нужно разбить текст на слова. Хорошая регулярках в исходниках редактора Sublime Text
// Characters that are considered to separate words
"word_separators": "./\\()\"'-:,.;<>~!@#$%^&*|+=[]{}`~?",
Конечно она не учитывает специфические знаки пунктуации типа "¿¡"
Но там по-ходу перечислены тупо все символы пунктуации на клаве:
var wordsSplitRe = /[\s`~!@#$%^&*()-_+=|\\[\]{};:"',<.>?\/]+/;
'*уй *изда джигурда'.split(wordsSplitRe); // ["", "уй", "изда", "джигурда"]
А затем отдельные слова обрабатываем