2011-07-10 30 views
5

así que estoy tratando de crear un nuevo atributo de cadena utilizando la API Java de weka ...crear un atributo de cadena en Java API weka

lectura a través de las API javadocs, parece que la manera de hacerlo es utilizar este constructor:

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. 

pero estoy atascado en cuanto a lo que debería pasar en el parámetro attributeValues ​​...

cuando pongo en nula, Java se queja de objetos protegidos
cuando me puse en Null , es un error de sintaxis
cuando pongo en new FastVector(), se convierte en un atributo nominal que está vacío en lugar de un atributo de cadena ...
cuando se crea un nuevo objeto:

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

y luego pasar fv en el argumento, devuelve una excepción de puntero nulo ...

exactamente lo que debería poner en el argumento attributeValues ​​para que sea atributo de una cadena?

Respuesta

8

tienen que desechar la hipótesis nula a FastVector. De lo contrario más métodos se aplican a la firma del método:

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

Aquí es un buen recurso para la creación de instancias en la marcha: http://weka.wikispaces.com/Creating+an+ARFF+file

3

Una forma sencilla de construir atributo de cadena en WEKA es la siguiente:

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

problema principal es la definición de WEKA de valor NULL, NULL o vector en nuevo tipo de editores de Java con weka.jar importados y tirar modo de excepciones.

Cuestiones relacionadas