На это есть короткий и длинный ответ.
Краткий ответ:
Используйте пакет WordNet :: Similarity Perl . Если Perl не является вашим языком выбора, проверьте страницу проекта WordNet в Принстоне или обратитесь к Google для поиска библиотеки-оболочки.
Длинный ответ:
Определение сходства слов - сложная проблема, и исследования в этой области все еще очень актуальны. Чтобы вычислить сходство, вам нужно соответствующее представление , означающее слова. Но что будет означать, скажем, «стул»? На самом деле, что является точным значением слова "стул"? Если вы долго и усердно об этом думаете, это изменит ваше мнение, вы слегка сойдете с ума и, наконец, начнете исследовательскую карьеру в области философии или компьютерной лингвистики, чтобы найти правду ™. И философы, и лингвисты пытались найти ответ буквально тысячи лет, и конца этому не видно.
Итак, если вы заинтересованы в более глубоком изучении этой проблемы, я настоятельно рекомендую прочитать главу 20.7 в Обработка речи и языка Юрафски и Мартина, некоторые из которых доступны через Google Книги . Он дает очень хороший обзор современного уровня методов распределения, которые используют статистику совпадений слов, чтобы определить меру сходства слов. Однако вы вряд ли найдете библиотеки, реализующие их.