кластеризация набора строковых предложений в неизвестное количество групп - PullRequest
0 голосов
/ 10 апреля 2019

У меня есть набор предложений (каждое предложение = x количество строк, где x принадлежит диапазону (1,6)). Я хочу сгруппировать эти предложения на основе сходства между ними. Я пробовал нечеткое wuzzy.token_set_ration, но проблема у меня в том, что мне нужно дать ему два предложения, но я хочу перебрать комбинацию всех предложений в наборе, если набор содержит, например ,. 10 тыс. Предложений. Как правильно сгруппировать данные? Есть ли такой подход, как кластеризация к этой проблеме? (У меня может быть, например, 9500 похожих предложений.

пример:

AAA Limited
AAA Ltd
AAA
Google
Gogle
Googlee
Facebook
Alphabet
Alpfabet
etc

1 Ответ

0 голосов
/ 11 апреля 2019

«Кластеризация», скорее всего, приведет вас в неправильном направлении.

То, что вы, похоже, ищете, это правописание . Вы хотите объединить неправильно написанные версии, и для этого лучшими стратегиями обычно является преобразование строк в «фонетическую» версию (чтобы найти «звучащие» строки, которые легко смешивать, как в примере с алфавитом!), А также, по-видимому, на первый взгляд глупые подходы, которые сортируют все буквы и удаляют дубликаты - тогда и Google, и Goolge, и Goglee, и Googlee становятся «eglo» и могут быть сопоставлены.

Но я сомневаюсь, что вы найдете что-нибудь, что работает надежно автоматически , вместо этого будьте готовы потребовать взаимодействия с человеком. (В приведенном выше сопоставлении Lego также станет eglo и, следовательно, будет соответствовать Google. Может быть, лучше сохранить первую букву и применять ее только к оставшейся части).

...