Лучшее совпадение между двумя строками, когда порядок или количество раз, когда слово появляется, не имеет значения? - PullRequest
2 голосов
/ 13 мая 2009

Каков наилучший алгоритм для сопоставления или вычисления расстояния между двумя строками в C #, когда порядок или количество раз, когда слово появляется, не важно?

Лучшие средства:

  • В основном согласился бы с человеческим соответствием
  • Элегантный
  • Эффективное
  • Масштабируемый, чтобы входная строка могла быть сопоставлена ​​с потенциально большим набором других строк

Похожие вопросы:

Некоторые заметки:

  • Из-за независимости порядка и вхождения входные данные можно рассматривать как наборы уникальных слов, а не строк в смысле массивов символов
  • Не специально ищу решение для базы данных, хотя было бы интересно
  • Я слишком стар, чтобы это было проблемой для домашнего задания;)

Ответы [ 2 ]

1 голос
/ 02 октября 2010

Поиск метода под названием «Двойной метафон», который, как я полагаю, для сравнения слов по словам, является лучшим из доступных. Считается также для разных языков! удивительно.

Если сравнивать строку, возможно, вы можете использовать это вместе с косинусным сходством. даст идеальные результаты.

1 голос
/ 13 мая 2009

Это похоже на канонический случай применения стандартных алгоритмов поиска информации. Расстояние косинуса - то, что сначала приходит на ум, но могут быть более подходящие варианты для вашего конкретного случая. Это хорошая ссылка, чтобы начать копать по этому маршруту:

http://www.miislita.com/information-retrieval-tutorial/cosine-similarity-tutorial.html

Пример реализации:

Как рассчитать косинусное сходство двух векторов?

...