Как импортировать словарь в FixedDictionaryStringToWordVector в Weka? - PullRequest
0 голосов
/ 10 ноября 2019

Я создаю tf-idf в java с помощью weka.api. Я хочу сохранить функции, а затем использовать эти функции для другого текста. Это мой код для сохранения функций в словаре:

   public static void main(String args[]) throws Exception{
    //load dataset
   DataSource source = new 
   DataSource("F:/darsi/PayanName/Implementation/java/Project1/pre_dataset2_final_weka.arff");
    Instances dataset = source.getDataSet();    
    dataset.setClassIndex(dataset.numAttributes()-1);

    int seed = 0;       
    int folds = 10 ;        


    StringToWordVector vect=new StringToWordVector();
    vect.setWordsToKeep(100);
    vect.setOutputWordCounts(true);
    vect.setIDFTransform(true);
    vect.setTFTransform(true);
    vect.setMinTermFreq(10);
    NGramTokenizer t = new NGramTokenizer();
    t.setNGramMaxSize(1);
    t.setNGramMinSize(1);
    vect.setTokenizer(t);
    vect.setInputFormat(dataset);
    vect.setDictionaryFileToSaveTo(new File("dict.txt"));
    dataset = Filter.useFilter(dataset, vect);}

После этогоя использую FixedDictionaryStringToWordVector, чтобы поместиться в текст:

  public static void main(String args[]) throws Exception{
    //load dataset
   DataSource source = new 
   DataSource("F:/darsi/PayanName/Implementation/java/Project1/pre_dataset3_final_weka.arff");
    Instances dataset = source.getDataSet();    
    dataset.setClassIndex(dataset.numAttributes()-1);

    vect.setDictionaryFile(new File("dict.txt"));
    // vect.setWordsToKeep(100);
    vect.setOutputWordCounts(true);
    vect.setIDFTransform(true);
    vect.setTFTransform(false);
    NGramTokenizer t = new NGramTokenizer();
    t.setNGramMaxSize(1);
    t.setNGramMinSize(1);
    vect.setTokenizer(t);
    vect.setInputFormat(dataset);
    dataset = Filter.useFilter(dataset, vect);}

Но я дал эту ошибку:

    java.lang.Exception: A NaN value was generated while normalizing batteri
    at weka.filters.unsupervised.attribute.Normalize.convertInstance(Normalize.java:353)
    at weka.filters.unsupervised.attribute.Normalize.batchFinished(Normalize.java:317)
    at weka.filters.Filter.useFilter(Filter.java:704)
    at weka.classifiers.functions.SMO.buildClassifier(SMO.java:1390)
    at app.Classification.main(Classification.java:95)

Я хочу знать, в чем проблема?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...