У меня нет идей о том, как выполнить эту задачу. Я считаю частоту слова, фактически базовая форма слова (например, бег будет считаться бегом). Я посмотрел на некоторые реализации расстояния Левенштейна (одна реализация, с которой я сталкиваюсь - от dotnerperls ).
Я также попробовал двойной Метафон, но это не то, что я ищу.
Итак, пожалуйста, дайте мне несколько идей о том, как настроить алгоритм расстояния Левенштейна при классификации лингвистически похожих слов, поскольку алгоритм предназначен только для определения необходимого количества правок, не принимая во внимание, сходны ли они лингвистически или нет
Пример:
1. «Бег» будет учитываться как одно вхождение слова «бег»
2. «слово» также будет встречаться с «словом»
3. «страх» НЕ будет считаться возникновением «снаряжения»
Кроме того, я реализую это в C #.
Заранее спасибо.
Редактировать: я отредактировал его, как предложил Рене.
Еще одна заметка:
Я пытаюсь рассмотреть вопрос о том, является ли слово подстрокой другого слова, но эта реализация не будет такой динамичной.
Другая идея, которую я думаю: «если добавить -s или -ing к string1, string1 == string2, то string2 является вхождением string1». Однако это не так, поскольку некоторые слова имеют неправильное множественное число.