文本自动分类介绍

自动分类程序把一个未见过的文档分成已知类别中的一个或多个。分成一个类别叫做单类分类,分成多个类别叫做多类分类。一个典型的自动分类程序框架如下:

文本自动分类介绍

常见的分类方法有支持向量机(SVM),K个最近的邻居(KNN)和贝叶斯(bayers)等。这里用SVM方法实现文本分类。


Classifier4J 项目的文本分类:

//定义存储向量的变量
        TermVectorStorage storage = new HashMapTermVectorStorage();
		//新建一个向量分类器
        VectorClassifier vc = new VectorClassifier(storage);
        try {
		 	//定义一个叫做”test”的类别
            String category = "test";
			//训练一个句子属于”test”类别
            vc.teachMatch(category, sentence1);
            
			//距离是cos夹角 相似度在[0,1]之间 0.852 代表比较相似 "hello blah"
			//属于这个类
            assertEquals(0.852d, vc.classify(category, "hello blah"), 0.001);
			//距离是cos夹角 相似度在[0,1]之间 0.301 代表不太相似 "sentence" 不			//属于这个类 
            assertEquals(0.301d, vc.classify(category, "sentence"), 0.001);
			//0 代表不相似 "bye" 不属于这个类 
            assertEquals(0.0d, vc.classify(category, "bye"), 0.001);
            //0 代表不相似 "bye" 不属于 "does not exist" 这个类
            assertEquals(0.0d, vc.classify("does not exist", "bye"), 0.001);
        } catch (ClassifierException e) {
            e.printStackTrace();
            fail(e.getLocalizedMessage());
        }


你可能感兴趣的:(文本分类,Classifier4J)