Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java中用于文本分类的StringToOrdVectore错误_Java_Weka_Random Forest_Libsvm_Text Classification - Fatal编程技术网

java中用于文本分类的StringToOrdVectore错误

java中用于文本分类的StringToOrdVectore错误,java,weka,random-forest,libsvm,text-classification,Java,Weka,Random Forest,Libsvm,Text Classification,1-我尝试通过java编码将StringToOrdVector过滤器应用到文本中,但它不起作用。滤波器的输出不正确。 我使用的代码是: Instances instances = source.getDataSet(); instances.setClassIndex(instances.numAttributes()-1); StringToWordVector stwv = new StringToWordVector(); //Splits a string into an n-gram

1-我尝试通过java编码将StringToOrdVector过滤器应用到文本中,但它不起作用。滤波器的输出不正确。 我使用的代码是:

Instances instances = source.getDataSet();
instances.setClassIndex(instances.numAttributes()-1);
StringToWordVector stwv = new StringToWordVector();
//Splits a string into an n-gram with min and max grams.
NGramTokenizer tokenizer = new NGramTokenizer();
tokenizer.setNGramMinSize(1);
tokenizer.setNGramMaxSize(1);
tokenizer.setDelimiters(" \r\n\t.,;:'\"()?!'");
stwv.setTokenizer(tokenizer);

stwv.setDoNotOperateOnPerClassBasis(true);
stwv.setOutputWordCounts(true);
stwv.setDictionaryFileToSaveTo(new File("/forEclips/RandomForset/DictionaryFile.txt"));
//------------------------
stwv.setInputFormat(instances);
// Apply the filter
Instances dataFiltered = weka.filters.Filter.useFilter(instances, stwv);
System.out.println("\n\nFiltered data:\n\n" + dataFiltered.toString() );
输出如下所示:

@relation 'DIMS-weka.filters.unsupervised.attribute.StringToWordVector-R1-W10-prune-rate-1.0-C-N0-stemmerweka.core.stemmers.NullStemmer-stopwords-handlerweka.core.stopwords.Null-M1-O-tokenizerweka.core.tokenizers.NGramTokenizer -max 1 -min 1 -delimiters \" \\r\\n\\t.,;:\\\'\\\"()?!\\\'\"-dictionary/forEclips/RandomForset/DictionaryFile.txt 
@attribute class {Di,MS}
@attribute اشبو numeric
@attribute اللي numeric
@attribute المويه numeric
@attribute النار numeric
@attribute تشوفوا numeric
@attribute تعرفون numeric
@attribute حبايبي numeric
@attribute حجازي numeric
@attribute خلال numeric
@attribute دي numeric
@attribute زي numeric
@attribute سيدي numeric
@attribute صور numeric
@attribute في numeric
@attribute كتير numeric
@attribute كتييير numeric
@attribute كتيييير numeric
@attribute كده numeric
@attribute مثل numeric
@attribute من numeric
@attribute مو numeric
@attribute هل numeric
@attribute وعيشوا numeric
@attribute وقدود، numeric
@attribute يا numeric
@attribute يده numeric

@data
{0 MS,9 1,13 3,20 2}
{0 MS,9 3,13 1,20 2}
{0 MS,6 1,22 1}
{5 1,16 1,17 1,23 1,24 1}
{2 2,3 1,4 1,8 1,11 1,14 2,19 1,21 1,26 2}
{1 1,7 1,10 1,12 1,15 1,18 1,20 1,25 1}`
我们可以在这里看到,它没有将类放在@attribute节的末尾。此外,在@data节中,前三个实例中的类位于第一个实例中,而后三个实例中的类没有任何类和类的id。 它应该位于id为的类的末尾

2-另外,我想为所有具有相同权重(值=44)的实例添加一个numeric类型的属性(newattribute)。
这意味着section@属性将如下所示:

   @attribute اشبو numeric
   @attribute اللي numeric
   @attribute المويه numeric
   @attribute النار numeric
   @attribute تشوفوا numeric
   @attribute تعرفون numeric
   @attribute حبايبي numeric
   @attribute حجازي numeric
   @attribute خلال numeric
   @attribute دي numeric
   @attribute زي numeric
   @attribute سيدي numeric
   @attribute صور numeric
   @attribute في numeric
   @attribute كتير numeric
   @attribute كتييير numeric
   @attribute كتيييير numeric
   @attribute كده numeric
   @attribute مثل numeric
   @attribute من numeric
   @attribute مو numeric
   @attribute هل numeric
   @attribute وعيشوا numeric
   @attribute وقدود، numeric
   @attribute يا numeric
   @attribute يده numeric
   @attribute newattribute numeric
   @attribute class {Di,MS}


   @data
   {8 1,12 3,19 2,26 44,27 MS}
   {8 3,12 1,19 2,26 44, 27 MS}
   {5 1,21 1,26 44,27 MS}
   {4 1,15 1,16 1,22 1,23 1,26 44,27 Di}
   {1 2,2 1,3 1,7 1,10 1,13 2,18 1,20 1,25 2,26 44,27 Di}
   {0 1,6 1,9 1,11 1,14 1,17 1,19 1,24 1,26 44,27 Di}
3-我想使用这些训练数据,通过朴素百色、随机森林和SVM对文本进行分类。如何使用java中的weka库为培训和测试数据建立交叉验证。我试图通过在java构建路径中添加Libsvm来使用SVM,但它给了我一个错误


问候

我发现这些网站对于使用filter StringToOrdVector进行文本分类非常有用。

有什么命令或建议吗?拜托,我试着在这个例子中使用相同的想法,但不起作用