Сделать раскраску графиков менее строгой

Я экспериментирую с алгоритмом раскраски графа. Это способ раскрасить узлы графа так, чтобы никакие 2 соседних узла не имели одинаковый цвет.

Предположим, у меня есть следующие данные, которые я хочу "раскрасить" (назначить группам), где каждое слово является узлом:

  1. черный кот
  2. серый кот
  3. собака серый
  4. собака черная

Я ожидал бы следующие группы:

  • Котопес
  • черный, серый

Но что, если я добавлю имя моего 4-го животного, которое grey (так же, как цвет)?
Итак, 4-я строка становится:

  1. собака черный серый

Алгоритм раскраски не может различить цвета и названия, поэтому black а также grey окажется в разных группах.

Как я могу настроить алгоритм так, чтобы он стал "менее строгим"?
Как: Только если 2 узла появляются более чем на 90% вместе, считайте их смежными и поместите их в одну группу.

Примечание: приведенный мной пример упрощен. Я не могу просто сгруппировать свои слова по name или же color Мне нужен более общий подход.

1 ответ

(Надеюсь, что ваш вопрос правильно - ваш пример не очень помогает)

Поэтому в настоящее время вы создаете следующий цветной график из ваших входных данных:

cat--black
 |   / |
 |  /  |
grey--dog

Теперь вы можете назначить целочисленную метку каждому ребру, считая, как часто соответствующая пара появляется вместе в элементе списка. Затем вы определяете некоторый нижний порог и удаляете все ребра, помеченные меньшим числом. Если вы теперь раскрасите получившийся график, этим "редким" парам снова будет разрешен общий цвет.

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