Как я определяю, представляют ли два подобных названия группы ту же полосу?

Я в настоящее время работаю над проектом, который требует, чтобы я соответствовал нашей базе данных Полос и мест проведения со многими внешними сервисами.

В основном я ищу некоторое направление на лучшем методе для определения, если два имени являются тем же. Например:

  • Наше название места проведения базы данных - "Свинья и Свист"
  • сервис 1 - "Свинья и Свист"
  • сервис 2 - "Свинья и Свист"
  • и т.д. и т.д.

Я думаю, что основные отличия будут вещами как пропавшие без вести или использование "и" вместо "и" но могли также быть вещи как немного отличающееся написание и слова в различных заказах.

Какие алгоритмы/методы являются наиболее часто используемыми в этой ситуации, я должен отфильтровать шумовые слова, или своего рода написание проверяют соответствие типа?

Вы видели какие-либо примеры чего-то simlar в c#?

ОБНОВЛЕНИЕ: В случае, если любой интересуется c# примером существует "куча", к которой можно получить доступ путем выполнения поиска кода Google для расстояния Левенштейна

14
задан John Feminella 17 June 2014 в 18:01
поделиться

3 ответа

Канонический (и, вероятно, самый простой) способ сделать это - измерить расстояние Левенштейна между двумя струнами. Если расстояние небольшое по сравнению с размером строки, вероятно, это та же строка. Обратите внимание: если вам нужно сравнить множество очень маленьких строк, будет сложнее определить, одинаковы они или нет. Он лучше работает с более длинными строками.

Более разумным подходом могло бы быть сравнение расстояния Левенштейна между двумя строками, но присвоение нулевого расстояния более очевидным преобразованиям, таким как "и" / "&", "Snoop Doggy Dogg" "/" Снуп "и др.

14
ответ дан 1 December 2019 в 14:11
поделиться

soundex также может быть полезным

0
ответ дан 1 December 2019 в 14:11
поделиться

В биоинформатике мы используем это для постоянного сравнения последовательностей ДНК или белков.

Существует множество алгоритмов, вы, вероятно, захотите посмотреть глобальные сопоставления .

В этом отношении, вероятно, вам нужен алгоритм Нидлмана-Вунша .

Если у вас есть особенно длинные повторяющиеся строки для сравнения, вы можете также рассмотреть эвристический поиск, такой как BLAST.

0
ответ дан 1 December 2019 в 14:11
поделиться
Другие вопросы по тегам:

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