ELKI: Реализация собственного ResultHandler

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

Я прочитал это: http://elki.dbs.ifi.lmu.de/wiki/HowTo/InvokingELKIFromJava но у меня вопрос, как вы собираетесь реализовать пользовательский обработчик результатов, чтобы он отображался в GUI?

Единственный способ сделать это - извлечь пакет elki.jar и вручную вставить свой пользовательский класс в исходный код, а затем повторно набрать пакет. Однако я уверен, что это не так, как должно быть.

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

1 ответ

Решение

Здесь есть два вопроса.

  1. Чтобы сделать ваш класс инстанцируемым с помощью пользовательского интерфейса (как MiniGUI, так и командной строки), классы должны реализовать наш API Parameterization. По сути, существует два варианта создания класса:

    • Добавитьpublicконструкторбез параметров (пользовательский интерфейс не будет знать, как установить ваши параметры!)
    • Добавить внутреннийstatic class Parameterizerэто обрабатывает параметризацию
  2. чтобыдобавить свой класс в автозаполнение(выпадающее меню), классы должны быть обнаружены с помощью интерфейса MiniGUI/CLI/ других интерфейсов. ELKI использует два метода обнаружения:

    • за.jarфайлы, он читаетMETA-INF/elki/interfacenameслужебные файлы. Это классический подход к загрузке сервисов; кроме того, что мы также разрешаем заказывать экземпляры.
    • только для каталогов, ELKI также отсканирует все .class файлы и проверять их. Это главным образом предназначено для времени разработки, чтобы избежать необходимости постоянно обновлять служебные файлы. По причинам производительности мы не проверяем содержимое .jar файлы; ожидается, что они будут использовать служебные файлы.

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

Существует также руководство по реализации пользовательского обработчика результатов, но в нем не обсуждается, как добавить его в меню. В "режиме разработки" - при наличии папки с .class файлы - он будет отображаться автоматически.

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