Понимаю что мой ответ не будет решением, но мне кажется что вы фантастику какую-то просите. Как минимум тут уже требуется полнотекстовый поиск, а для его работы с большими данными подойдет только Sphinx. Причем что нагрузить хотите клиент, у которого может быть 2GB памяти или 16GB. Сложность алгоритмов решающие вашу задачу высокая в любом случае. Да и реально выделять такие слова можно только через Machine Learning с огромным слоем математики. Все остальное это довольствие правильным синтаксическим деревом.
Есть много алгоритмов, алгоритмы - не самая популярная вещь для реализации на JS. Да и подобную задачу я бы решал иначе, получил текст, отправил на сервер, разобрал, построил синтаксическое дерево, прошел по нему, применил свои крутые алгоритмы. Получил данные, преобразовал их в другой более подходящий вид для задачи и еще рак прогнал алгоритмы, сделал нужные структуры данных, построил для доступа индексы, разработал схему работы всего вместе. В итоге сделал, что хотел но только не на клиенте, а на сервере... Клиент использовал бы как передатчик данных, парсер, набор умных шаблонизаторов с мета информацией внутри текста для обертки слов текста дополнительной инфой.