java中用于文本分类的StringToOrdVectore错误
1-我尝试通过java编码将StringToOrdVector过滤器应用到文本中,但它不起作用。滤波器的输出不正确。 我使用的代码是: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
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进行文本分类非常有用。
有什么命令或建议吗?拜托,我试着在这个例子中使用相同的想法,但不起作用