Во всех трех случаях вы можете построить BK-дерево из вашего набора слов. BK-Trees позволяют найти все слова на заданном расстоянии редактирования от введенного слова. См. M y сообщение в блоге на BK-Trees для объяснения того, как они работают.
Словарь и средство проверки правописания более или менее идентичны - словарь просто должен содержать определения вместе со словами. Для тезауруса слова объединяются в «наборы синонимов» - наборы синонимов - со всеми элементами, вставленными в BK-дерево. Когда кто-то ищет одно слово в наборе, вы отображаете все остальные как альтернативы. Слово может появляться в нескольких наборах, поэтому вам нужно убедиться, что ваши узлы BK-Tree могут обрабатывать несколько значений для данного ключа.