Создание строкового атрибута в Weka Java API - PullRequest
5 голосов
/ 10 июля 2011

Я пытаюсь создать новый строковый атрибут с помощью Java-интерфейса Weka ...

Читая через API javadocs, кажется, что способ сделать это - использовать этот конструктор:

Attribute

public Attribute(java.lang.String attributeName,
                 FastVector attributeValues)

    Constructor for nominal attributes and string attributes. If a null vector of attribute values is passed to the method, the attribute is assumed to be a string.

    Parameters:
        attributeName - the name for the attribute
        attributeValues - a vector of strings denoting the attribute values. Null if the attribute is a string attribute.

но я застрял в том, что я должен передать в параметр attributeValues ​​...

когда я помещаю в ноль, Java жалуется на защищенные объекты
когда я помещаю в ноль, это синтаксическая ошибка
когда я вставляю new FastVector(), он становится пустым атрибутом, а не строковым атрибутом ...
когда я создаю новый объект:

FastVector fv = new FastVector();
fv.addElement(null);

и затем передать fv в аргумент, он возвращает исключение нулевого указателя ...

что именно я должен указать в аргументе attributeValues, чтобы он стал строковым атрибутом?

Ответы [ 2 ]

8 голосов
/ 10 июля 2011

Вы должны разыграть ноль в FastVector. В противном случае к сигнатуре метода будет применяться больше методов:

    FastVector attributes = new FastVector();
    attributes.addElement(new Attribute("attr", (FastVector) null));

Вот хороший ресурс для создания Экземпляров на лету: http://weka.wikispaces.com/Creating+an+ARFF+file

3 голосов
/ 02 ноября 2012

Простой способ создания атрибута STRING в WEKA заключается в следующем:

 new Attribute("Distribution_weight",(FastVector) null);

Основная проблема заключается в определении WEKA значения NULL или вектора NULL в новом типе редакторов Java с импортированными weka.jar иРежим исключений.

...