Я создаю 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)
Я хочу знать, в чем проблема?