Нечеткое соответствие текста C # - PullRequest
19 голосов
/ 22 ноября 2011

Я пишу настольный пользовательский интерфейс (.Net WinForms), чтобы помочь фотографу очистить метаданные своего изображения. Есть список из 66k + фраз. Кто-нибудь может предложить хороший открытый компонент с открытым исходным кодом .NET, который я могу использовать, который использует какой-то алгоритм для определения потенциальных кандидатов для консолидации? Например, могут быть две или более записи, которые на самом деле являются одним и тем же словом или фразой, которые отличаются только пробелом или пунктуацией или даже небольшим неправильным написанием. В конечном счете, приложение будет полагаться на пользователя для объединения фраз, но наличие эффективного способа автоматического поиска потенциальных кандидатов окажется бесценным.

1 Ответ

25 голосов
/ 22 ноября 2011

Позвольте мне познакомить вас с формулой расстояния Левенштейна.Это потрясающе:

http://en.wikipedia.org/wiki/Levenshtein_distance

В теории информации и информатике расстояние Левенштейна представляет собой строковую метрику для измерения величины разности между двумя последовательностями.Термин расстояние редактирования часто используется для обозначения расстояния Левенштейна.

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

...