Визуализация и кластеризация - PullRequest
1 голос
/ 15 июля 2010

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

Хорошо.Вернуться к вопросу.Ранее я написал скрипт на python для вычисления сходства между документами.Теперь у меня есть все данные для записи в блокнот, и это выглядит так:

(1, 6821): inf

(1, 8): 3.458911570

(1, 9): 7.448105193

(1, 10): inf

(1, 11): inf

(6821, 8): inf

(6821, 9): inf

(6821, 10): inf

(6821, 11): inf

(8, 9): 2.153308936

(8, 10): inf

(8, 11): 16.227647992

(9, 10): inf

(9, 11): 34.943139430

(10, 11): inf

Число в скобках представляет номера документов.И значение после него, это расстояние между двумя документами.На самом деле я хочу инструменты или метод визуализации, с помощью которых я могу создавать узлы, которые представляют каждый номер документа .Например, здесь у меня есть 6 разных документов.Поэтому я хочу создать 6 разных узлов, которые представляют номера моих документов.Затем я хочу иметь ребра, которые соединяют эти узлы вместе на основе их расстояний.Например, расстояние между документами 1 и 8 составляет 3,46, а расстояние между документами 1 и 9 - 7,45.Таким образом, 1 и 8 нужно кластеризовать ближе, чем 1 и 9. В то время как пары документов с расстоянием 'inf' не должны иметь никакого соединения или ребра, соединяющего их вместе.

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

Ответы [ 3 ]

2 голосов
/ 15 июля 2010

Вы пробовали GraphViz ?Я использую его для подобных ситуаций.Я не пытался изменить длину соединений с узлами, вам придется его дразнить.Проверьте список примеров графиков в качестве отправной точки.

1 голос
/ 15 июля 2010

http://www.graphviz.org/

В частности, пакет neato:

$ cat similar.dot
graph g {
   n1 -- n8 [ weight = 3.458911570 ];
   n1 -- n9 [ weight = 7.448105193 ];
   n8 -- n9 [ weight = 2.153308936 ];
   n8 -- n11 [ weight = 16.227647992 ];
   n9 -- n11 [ weight = 34.943139430 ];
   n10;
   n6821;
}
$ neato -Tpng similar.dot -o similar.png

http://img534.imageshack.us/img534/4189/similar.png

0 голосов
/ 15 июля 2010

Обработка - это действительно прекрасный инструмент для визуализации данных (а также языка, основанного на Java).Думайте об этом как о написании упрощенного OpenGL (вы даже можете использовать OpenGL с ним, если хотите) в Java плюс свобода использования всех библиотек Java.Вы даже можете встроить свое приложение для обработки в другое приложение Swing или AWT.

Вот главная страница и совершенно новая wiki .

Youсказал, что ты использовал Pyton.Есть взлом, поэтому вы можете использовать Jython вместо Java в этом блоге .Я не пробовал, но, может быть, он работает нормально.Единственный недостаток в использовании другого языка (есть также «порт» JavaScript, Processing.js ), что все примеры относятся к языку обработки (основан на Java).

...