많은 예제가 있는데, 지금까지는 행운이 없었습니다. 나는 자유 텍스트를 분류하고 싶다.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)