【发布时间】:2017-08-27 19:52:18
【问题描述】:
1- 我尝试通过 java 编码将 StringToWordVector 过滤器应用于文本,但它不起作用。过滤器的输出不正确。 我使用的代码:
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 的属性(newattribut)。
这意味着@attribute 部分将如下所示:
@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- 我想使用此训练数据通过 Naive baise、随机森林和 SVM 对文本进行分类。如何使用 java 中的 weka 库为训练和测试数据构建交叉验证。我尝试通过在 java 构建路径中添加 Libsvm 来使用 SVM,但它给了我一个错误。
问候;
【问题讨论】:
-
有什么命令或建议吗?请。
-
我尝试在此示例中使用相同的想法stackoverflow.com/documentation/weka/7753/text-classification/… 但不起作用
标签: java weka random-forest libsvm text-classification