2
看了很多這方面的例子,到目前爲止沒有運氣。我想分類自由文本。如何測試Weka文本分類(FilteredClassifier)
- 配置文本分類器。 (FilteredClassifier使用StringToWordVector和LIBSVM)
- 訓練分類(加入大量的文件,過濾後的文本串)
- 序列化FilteredClassifier到磁盤,退出程序
再後來
- 加載序列化的FilteredClassifier
- 分類的東西!
當我嘗試從磁盤讀取數據並對其進行分類時,它就會正常工作。所有文檔和示例都顯示了同時構建的培訓列表和測試列表,在我的案例中,我試圖在事實之後構建測試列表。
單獨使用FilteredClassifier並不足以創建一個與原始訓練集具有相同「字典」的測試實例,那麼如何保存我需要在以後分類的所有內容?
http://weka.wikispaces.com/Use+WEKA+in+your+Java+code只是說「從某處加載的實例」,並沒有說任何關於使用類似的字典。
ClassifierFramework cf = new WekaSVM();
if (!cf.isTrained()) {
train(cf); // Train, save to disk
cf = new WekaSVM(); // reloads from file
}
cf.test("this is a test");
結束投擲
java.lang.ArrayIndexOutOfBoundsException: 2
at weka.core.DenseInstance.value(DenseInstance.java:332)
at weka.filters.unsupervised.attribute.StringToWordVector.convertInstancewoDocNorm(StringToWordVector.java:1587)
at weka.filters.unsupervised.attribute.StringToWordVector.input(StringToWordVector.java:688)
at weka.classifiers.meta.FilteredClassifier.filterInstance(FilteredClassifier.java:465)
at weka.classifiers.meta.FilteredClassifier.distributionForInstance(FilteredClassifier.java:495)
at weka.classifiers.AbstractClassifier.classifyInstance(AbstractClassifier.java:70)
at ratchetclassify.lab.WekaSVM.test(WekaSVM.java:125)