Соответствие имени местоположения

У меня есть набор названий мест, например:

{ "athens", "munich", "athenes", "αθηνα", "munchen", "μοναχο" }

Я хотел бы сгруппировать этот набор в N-подгруппы таким образом, чтобы каждое подмножество содержало одно и то же местоположение, например, взяв в качестве входных данных предыдущий набор данных, мы должны получить 2 подгруппы:

{ "athens", "athenes", "αθηνα" }

а также

{ "munich", "munchen", "μοναχο" }

Каждое название местоположения в подгруппе может отличаться следующими способами:

  • язык
  • небольшие правописания

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

С точки зрения разработчиков, я думаю, что мне нужно реализовать метод

double CompareNames(string name1, string name2);

это берет входные 2 строки для сравнения и возвращает показатель их сходства (где сходство измеряется в терминах представления одного и того же местоположения). Если сходство выше предварительно определенного порога, то name1 и name2 принадлежат к одной группе.

Я провел исследования в следующих областях: фонетическое сопоставление, лингвистическое сопоставление, сходство текста (например, Левенштейн), но я не смог найти компактную библиотеку (предпочтительно в.NET), которая бы решала подобные проблемы в целом.

Может ли кто-нибудь, имеющий опыт решения подобных проблем, помочь мне, предложить подходящий подход или даже предложить какие-нибудь инструменты?

0 ответов

Другие вопросы по тегам