java课程设计报告范例_第1页
java课程设计报告范例_第2页
java课程设计报告范例_第3页
java课程设计报告范例_第4页
java课程设计报告范例_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

河北科技大学课程设计报告学生姓名:祝冬冬学号:080702102专业班级:计算机科学与技术课程名称:基于classifier4j的文本分类学年学期:2010—2011学年第2学期指导教师:许云峰2011年6月课程设计成绩评定表学生姓名祝冬冬学号080702102成绩专业班级计算机科学与技术起止时间2011/6/6至设计题目基于classifier4j的文本分类指导教师评语指导教师:年月日目录(示例)TOC\o"1-2"\h\z\u一、 设计题目 1二、 设计目的 1三、 设计原理及方案 11 使用的软件工具和环境 12 需求分析与概要设计 13 数据库设计(无) 14 详细设计和关键问题 3四、 实现效果 3五、 设计体会 4PAGE23设计题目基于classifier4j的文本分类设计目的进一步巩固Java基础理论和知识,加深Java面向对象特性的理解,锻炼利用开发工具实现Java应用软件的基本技能,提高利用面向对象程序设计方法解决实际问题的能力。并运用课外知识,利用classfiler4j包来实现文本分类,对于给出的文本打分分类。设计原理及方案使用的软件工具和环境MyEclipse、win7系统。该课程设计以MyEclipse作为开发工具。java作为开发语言,并基于开源程序代码classifier4j。MyEclipse是企业级工作平台(MyEclipseEnterpriseWorkbench,简称MyEclipse)是对EclipseIDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成开发,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSF,CSS,Javascript,SQL,Hibernate。在结构上,MyEclipse的特征可以被分为7类:1.J2EE模型2.WEB开发工具3.EJB开发工具4.应用程序服务器的连接器5.J2EE项目部署服务6.数据库服务7.MyEclipse整合帮助对于以上每一种功能上的类别,在Eclipse中都有相应的功能部件,并通过一系列的插件来实现它们。MyEclipse结构上的这种模块化,可以让我们在不影响其他模块的情况下,对任一模块进行单独的扩展和升级。简单而言,MyEclipse是Eclipse的插件,也是一款功能强大的J2EE集成开发环境,支持代码编写、配置、测试以及除错。需求分析与概要设计本课程设计的目的是利用classifier4j类对文本进行分类,实现文本自动分类。文本分类一般包括了文本的表达、分类器的选择与训练、分类结果的评价与反馈等过程,其中文本的表达又可细分为文本预处理、索引和统计、特征抽取等步骤。文本分类系统的总体功能模块为:(1)预处理:将原始语料格式化为同一格式,便于后续的统一处理;(2)索引:将文档分解为基本处理单元,同时降低后续处理的开销;(3)统计:词频统计,项(单词、概念)与分类的相关概率;(4)特征抽取:从文档中抽取出反映文档主题的特征;(5)分类器:分类器的训练;(6)评价:分类器的测试结果分析。结构图:classmyhashmaptermvectorsttomyhashmaptermvectorsttoPackagemyClassfiler4jmytokenizermyClassfiler4jmytokenizermyutilitesmyutilitesrunrunjavaprojectmyvectorclassifiertestfilerjavaprojectjavaprojectjavaprojectJava.i0javaprojectjavaprojectjavaprojectJava.i0Classifier4jClassifier4jMyclassfiler4jJava.utilMyclassfiler4jJava.utilLLucene.analysersImportJava.utilJava.util ImportrunrunOOrg.junit图1各个包之间的调用如图1所示3详细设计和关键问题本课程设计的关键问题是怎样使用java调用各种类包以实现文本分类作用。因此无论是我们现实生活中还是从网络中,有关文本分类的应用程序很广泛。但是java调用各个实用类以及classifier4J的各种JAR包还是有一定难度。因此通过查阅、整合大量资料,我们找到了一些可以实现分类的java类和jar包。同时经过认真的修改,将其改为适合我们使用的java类。而这些类和接口则是实现classifier4J的文本分类调用的关键。通过多次实验和修改,我们已将其改成能够实现对文本类文件进行分类的java接口层和类包。4实现效果四.设计体会通过这几天的java课程设计,基本上达到了预定的目标这次课程设计我做的是章节自测系统,通过这次课程设计,我从中学会了认真思考和不屈不挠的精神,遇到困难要冷静思考,认真分析才能解决问题,基本上掌握了classifier4j的使用和包之间的调用,对于老师上课讲的一些内容,又进行了复习,加强了记忆和了解。在这次设计过程中,体现出自己单独设计模具的能力以及综合运用知识的能力,体会了学以致用、突出自己劳动成果的喜悦心情,从中发现自己平时学习的不足和薄弱环节,从而加以弥补。程设计是我们专业课程知识综合应用的实践训练,是我们迈向社会,从事职业工作前一个必不少的过程.”千里之行始于足下”,通过这次课程设计,我深深体会到这句千古名言的真正含义.我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础.通过和同学之间的合作,终于把课程设计弄好,我懂得了团队写作的重要性,这对我以后工作有着非常重要的作用。由于本设计能力有限,在设计过程中难免出现错误,恳请老师们多多指教,我十分乐意接受你们的批评与指正。附录试验程序文件1packagemyClassfiler4j;importjava.util.HashMap;importjava.util.Map;importnet.sf.classifier4J.vector.TermVector;importnet.sf.classifier4J.vector.TermVectorStorage;publicclassMyHashMapTermVectorStorageimplementsTermVectorStorage{ privateMapstorage=newHashMap(); publicMapgetStorage(){ returnstorage; } publicvoidsetStorage(Mapstorage){ this.storage=storage; } /** *@seenet.sf.classifier4J.vector.TermVectorStorage#addTermVector(java.lang.String,net.sf.classifier4J.vector.TermVector) */ publicvoidaddTermVector(Stringcategory,TermVectortermVector){ storage.put(category,termVector); } /** *@seenet.sf.classifier4J.vector.TermVectorStorage#getTermVector(java.lang.String) */ publicTermVectorgetTermVector(Stringcategory){ return(TermVector)storage.get(category); } }文件2packagemyClassfiler4j;importjava.io.IOException;importjava.io.StringReader;importjava.util.ArrayList;importjava.util.List;importnet.sf.classifier4J.ITokenizer;importorg.apache.lucene.analysis.tokenattributes.TermAttribute;importorg.wltea.analyzer.lucene.IKTokenizer;publicclassMyTokenizerimplementsITokenizer{ privateListlist; privateString[]strArray; publicString[]tokenize(Stringinput){ list=newArrayList<String>(); IKTokenizertokenizer=newIKTokenizer(newStringReader(input),true); try{ while(tokenizer.incrementToken()){ TermAttributetermAtt=(TermAttribute)tokenizer.getAttribute(TermAttribute.class);// strArray[i]=termAtt.toString();// Stringstr=termAtt.toString();// System.out.println(str);// str=str.substring(str.indexOf("=")+1); Stringstr=termAtt.term(); // System.out.println(str); //TODO优化中文分词 list.add(str); } }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } strArray=newString[list.size()]; for(inti=0;i<list.size();i++){ strArray[i]=(String)list.get(i); } returnstrArray; } }文件3packagemyClassfiler4j;importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStream;importjava.io.InputStreamReader;importjava.util.ArrayList;importjava.util.Arrays;importjava.util.Collections;importjava.util.HashMap;importjava.util.Iterator;importjava.util.LinkedHashSet;importjava.util.List;importjava.util.Map;importjava.util.Set;importjava.util.TreeSet;importnet.sf.classifier4J.DefaultStopWordsProvider;importnet.sf.classifier4J.DefaultTokenizer;importnet.sf.classifier4J.IStopWordProvider;importnet.sf.classifier4J.ITokenizer;publicclassMyUtilities{ publicstaticMapgetWordFrequency(Stringinput){ returngetWordFrequency(input,false); } publicstaticMapgetWordFrequency(Stringinput,booleancaseSensitive){ returngetWordFrequency(input,caseSensitive,newMyTokenizer(),newDefaultStopWordsProvider()); } /** *GetaMapofwordsandIntegerrepresentingthenumberofeachword * *@paraminputTheStringtogetthewordfrequencyof *@paramcaseSensitivetrueifwordsshouldbetreatedasseparateiftheyhavedifferentcase *@paramtokenizerajunit.framework.TestCase#run() *@paramstopWordsProvider *@return */ publicstaticMapgetWordFrequency(Stringinput,booleancaseSensitive,ITokenizertokenizer,IStopWordProviderstopWordsProvider){ StringconvertedInput=input; if(!caseSensitive){ convertedInput=input.toLowerCase(); } //tokenizeintoanarrayofwords String[]words=tokenizer.tokenize(convertedInput); Arrays.sort(words); String[]uniqueWords=getUniqueWords(words); Mapresult=newHashMap(); for(inti=0;i<uniqueWords.length;i++){ if(stopWordsProvider==null){ //nostopwordprovider,soaddallwords result.put(uniqueWords[i],newInteger(countWords(uniqueWords[i],words))); }elseif(isWord(uniqueWords[i])&&!stopWordsProvider.isStopWord(uniqueWords[i])){ //addonlywordsthatarenotstopwords result.put(uniqueWords[i],newInteger(countWords(uniqueWords[i],words))); } } returnresult; } privatestaticString[]findWordsWithFrequency(MapwordFrequencies,Integerfrequency){ if(wordFrequencies==null||frequency==null){ returnnewString[0]; }else{ Listresults=newArrayList(); Iteratorit=wordFrequencies.keySet().iterator(); while(it.hasNext()){ Stringword=(String)it.next(); if(frequency.equals(wordFrequencies.get(word))){ results.add(word); } } return(String[])results.toArray(newString[results.size()]); } } publicstaticSetgetMostFrequentWords(intcount,MapwordFrequencies){ Setresult=newLinkedHashSet(); Integermax=(Integer)Collections.max(wordFrequencies.values()); intfreq=Value(); while(result.size()<count&&freq>0){ //thisisveryicky Stringwords[]=findWordsWithFrequency(wordFrequencies,newInteger(freq)); result.addAll(Arrays.asList(words)); freq--; } returnresult; } privatestaticbooleanisWord(Stringword){ if(word!=null&&!word.trim().equals("")){ returntrue; }else{ returnfalse; } } /** *Findalluniquewordsinanarrayofwords * *@paraminputanarrayofStrings *@returnanarrayofalluniquestrings.Orderisnotguarenteed */ publicstaticString[]getUniqueWords(String[]input){ if(input==null){ returnnewString[0]; }else{ Setresult=newTreeSet(); for(inti=0;i<input.length;i++){ result.add(input[i]); } return(String[])result.toArray(newString[result.size()]); } } /** *Counthowmanytimesawordappearsinanarrayofwords * *@paramwordThewordtocount *@paramwordsnon-nullarrayofwords */ publicstaticintcountWords(Stringword,String[]words){ //findtheindexofoneoftheitemsinthearray. //FromtheJDKdocsonbinarySearch: //Ifthearraycontainsmultipleelementsequaltothespecifiedobject,thereisnoguaranteewhichonewillbefound. intitemIndex=Arrays.binarySearch(words,word); //iteratebackwardsuntilwefindthefirstmatch if(itemIndex>0){ while(itemIndex>0&&words[itemIndex].equals(word)){ itemIndex--; } } //nowitemIndexisoneitembeforethestartofthewords intcount=0; while(itemIndex<words.length&&itemIndex>=0){ if(words[itemIndex].equals(word)){ count++; } itemIndex++; if(itemIndex<words.length){ if(!words[itemIndex].equals(word)){ break; } } } returncount; } /** * *@paraminputaStringwhichmaycontainmanysentences *@returnanarrayofStrings,eachelementcontainingasentence */ publicstaticString[]getSentences(Stringinput){ if(input==null){ returnnewString[0]; }else{ //splitona".",a"!",a"?"followedbyaspaceorEOL// returninput.split("(\\.|!|\\?)+(\\s|\\z)"); //中文分隔符regex=“[。?!]+(\\s)*[^”](\\s|\\z)*” returninput.split("[。?!]+(\\s)*[^”](\\s|\\z)*"); } } /** *GivenaninputStream,thismethodreturnsaString.Newlinesare *replacedwith"" */ publicstaticStringgetString(InputStreamis)throwsIOException{ BufferedReaderreader=newBufferedReader(newInputStreamReader(is)); Stringline=""; StringBufferstringBuffer=newStringBuffer(); while((line=reader.readLine())!=null){ stringBuffer.append(line); stringBuffer.append(""); } reader.close(); returnstringBuffer.toString().trim(); }}文件4packagemyClassfiler4j;importjava.io.BufferedReader;importjava.io.BufferedWriter;importjava.io.File;importjava.io.FileNotFoundException;importjava.io.FileReader;importjava.io.FileWriter;importjava.io.IOException;importjava.io.StringWriter;importjava.io.UnsupportedEncodingException;importjava.util.ArrayList;importjava.util.Arrays;importjava.util.Iterator;importjava.util.List;importjava.util.Map;importjava.util.Set;importnet.sf.classifier4J.AbstractCategorizedTrainableClassifier;importnet.sf.classifier4J.ClassifierException;importnet.sf.classifier4J.DefaultStopWordsProvider;importnet.sf.classifier4J.IStopWordProvider;importnet.sf.classifier4J.Utilities;importnet.sf.classifier4J.vector.TermVector;importnet.sf.classifier4J.vector.TermVectorStorage;importnet.sf.classifier4J.vector.VectorUtils;//importTrainingSample.PropertyGlobal;/***此类根据VecotrClasifier实现的的。*@authorlemon**/publicclassMyVectorClassifierextendsAbstractCategorizedTrainableClassifier{ publicstaticdoubleDEFAULT_VECTORCLASSIFIER_CUTOFF=0.80d; publicstaticfinalStringMODELPATH="c:/model0"; publicstaticfinalStringMODELNAME="model0.dwl"; publicstaticfinalintNUM_WORD=100; privateintnumTermsInVector=25; //将文本切分成单词集合// privateITokenizertokenizer; MyTokenizertokenizer;// IKTokenizertokenizer=newIKTokenizer(newStringReader(t),false);// try{// while(tokenizer.incrementToken()){// TermAttributetermAtt=tokenizer.getAttribute(TermAttribute.class);// System.out.println(termAtt.term()); // }// }catch(IOExceptione){// //Auto-generatedcatchblock// e.printStackTrace();// } //stopword列表 privateIStopWordProviderstopWordsProvider; privateTermVectorStoragestorage; publicTermVectorStoragegetStorage(){ returnstorage; } publicvoidsetStorage(TermVectorStoragestorage){ this.storage=storage; } privateStringpathname; publicMyVectorClassifier(){ tokenizer=newMyTokenizer(); stopWordsProvider=newDefaultStopWordsProvider(); storage=newMyHashMapTermVectorStorage(); setMatchCutoff(DEFAULT_VECTORCLASSIFIER_CUTOFF); } publicMyVectorClassifier(TermVectorStoragestorage){ this(); this.storage=storage; } publicdoubleclassify(Stringcategory,Stringinput) throwsClassifierException{ /** *//首先由tokenizer将文本input切分成单词集合words,不接收stopword集合中的单词 *//然后通过Utilities的getWordFrequency方法获取单词频率 *//Createamapofthewordfrequencyfromtheinput *MapwordFrequencies=Utilities.getWordFrequency(input,false,tokenizer,stopWordsProvider); *//获取欲匹配类别的特征向量TermVectortv=storage.getTermVector(category); *if(tv==null){return0;}else{ *//按照类别特征向量中的单词获取输入单词集合中的词频 *//如果没有匹配记录,返回0(参见generateTermValuesVector方法) *int[]inputValues=generateTermValuesVector(tv.getTerms(),wordFrequencies); *//计算类别特征向量与输入特征向量的cosine距离,作为input对category类的匹配程度 *returnVectorUtils.cosineOfVectors(inputValues,tv.getValues());} */ //这个Map存放的是input中词的频率单词 MapwordFrequencies=MyUtilities.getWordFrequency(input); TermVectortv=storage.getTermVector(category); if(tv==null){ return0; }else{ int[]inputValues=generateTermValuesVector(tv.getTerms(),wordFrequencies); returnVectorUtils.cosineOfVectors(inputValues,tv.getValues()); } } //得到fatherclass的名称 privateStringfilename(Stringfilename){ intstart=filename.lastIndexOf("\\"); if(start<=0) start=filename.lastIndexOf("/"); returnfilename.substring(start+1); } /** *读取训练 */ publicvoidsetTrainSet(StringpathTrain){ Stringfatherclass=null; //得到训练文件所在的位置 Filedir=newFile(pathTrain); //得到在训练文件下的所有的文件 File[]files=dir.listFiles(); for(inti=0;i<files.length;i++){ Filef=files[i]; if(f.isDirectory()){ System.out.println(f.getAbsolutePath()); fatherclass=filename(f.getAbsolutePath()); System.out.println(fatherclass); StringsubTrain=pathTrain+"/"+f.getAbsoluteFile().getName(); //得到子训练文件的文件对象 FileFile_subTrain=newFile(subTrain); //得到训练文件的文件对象txt文件。 File[]files_txt=File_subTrain.listFiles(); for(intj=0;j<files_txt.length;j++){ Stringfile_txt_path=subTrain+"/"+files_txt[j].getAbsoluteFile().getName(); train(file_txt_path,fatherclass); } } else{//当不是二级分类时 train(f.toString(),null);// System.out.println(f.toString()); } } setModel(storage,null); } /** *训练方法,主要负责,训练穿过来的文本,并且加入到Map中,并写入model文件。 *@paramfilepath */ privatevoidtrain(Stringfilepath,Stringfatherclass){// MySummariserms=newMySummariser(); StringWritersw=newStringWriter(); Filefile=newFile(filepath);// Stringcategory=filepath.substring(filepath.lastIndexOf("/"),filepath.lastIndexOf("."));// System.out.println(filepath.lastIndexOf("\\"));// System.out.println(filepath.lastIndexOf("."));// System.out.println(filepath); intstart=filepath.lastIndexOf("\\")+1; if(start<=0) start=filepath.lastIndexOf("/")+1; intend=filepath.lastIndexOf("."); // System.out.println(start+""+end); Stringcategory=filepath.substring(start,end); //下面的到分类的父亲类// Stringfatherclass=null;// start=filepath.indexOf("/");// if(start<=0){// start=filepath.indexOf("\\");// }// if(start>0){// fatherclass=filepath.substring(start);// }// // // if(fatherclass.indexOf("/")>0||fatherclass.indexOf("\\")>0){// fatherclass=// // } Stringinput=null; try{ FileReaderfread=newFileReader(file); BufferedReaderbr=newBufferedReader(fread,512); do{ input=br.readLine(); sw.append(input); }while(input==null); }catch(FileNotFoundExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } try{ input=newString(sw.toString().getBytes(),"utf-8"); }catch(UnsupportedEncodingExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } //上面的代码是读取文件内容,下面代码是提取出现频率最大的词放入到TermVector //getthefrequencyofeachwordintheinputMapwordFrequencies=MyUtilities.getWordFrequency(input);//nowcreateasetoftheXmostfrequentwordsSetmostFrequentWords=MyUtilities.getMostFrequentWords(NUM_WORD,wordFrequencies); Object[]array=mostFrequentWords.toArray();//tv=newTermVector(mostFrequentWords.),mostFrequentWords.size());String[]terms=(String[])mostFrequentWords.toArray(newString[mostFrequentWords.size()]);Arrays.sort(terms);int[]values=generateTermValuesVector(terms,wordFrequencies);TermVectortv=newTermVector(terms,values);if(fatherclass==null)storage.addTermVector(category,tv);else storage.addTermVector(fatherclass+"/"+category,tv);System.out.println(category);// System.out.println(ms.summarise(input,3)); } /** *设置类模式,实现的功能的:写入模式到硬盘,其中包括:创建文件,写入文件。 */ publicvoidsetModel(TermVectorStoragetvs,StringstarinPath){// publicvoidsetModel(Stringclasspath)原先的定义// Stringmodelname=null;// //得到Model路径// intstart=pathModel.indexOf("\\")+1;// if(start<=0)// start=pathModel.indexOf("/")+1;// pathModel=pathModel.substring(start);//// System.out.println(pathModel);// // start=pathModel.indexOf("\\");// if(start<=0)// start=pathModel.indexOf("/");// pathModel=pathModel.substring(start);//// System.out.println(pathModel);// // pathModel="c:/model"+pathModel;//// System.out.println(pathModel);// // intend=pathModel.lastIndexOf("\\");// if(end<=0)// end=pathModel.lastIndexOf("/");//// System.out.println(end);// modelname=pathModel.substring(end+1);// pathModel=pathModel.substring(0,end);// // // System.out.println(modelname);//// System.out.println(pathModel);// // MyHashMapTermVectorStoragemyStorage=(MyHashMapTermVectorStorage)tvs; intsize=myStorage.getStorage().size(); SetkeySet=myStorage.getStorage().keySet(); Iteratorit=keySet.iterator(); Stringclasspath=null; if(starinPath==null){ classpath=MODELPATH; }else{ classpath=starinPath; } Filefile_txt=newFile(classpath+"/"+MODELNAME); FileWriterfw=null; try{ fw=newFileWriter(file_txt); }catch(IOExceptione1){ //TODOAuto-generatedcatchblock e1.printStackTrace(); } while(it.hasNext()){ Stringmodelclass=(String)it.next(); Filefile=newFile(classpath); if(!file.isDirectory()){ System.out.println(file.mkdirs()); } if(!file_txt.isFile()){ try{ if(file_txt.createNewFile()){ BufferedWriterwb=newBufferedWriter(fw); wb.newLine(); wb.write(modelclass+"="+myStorage.toString()); wb.close(); } }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } } else{ try{// fw=newFileWriter(file_txt); BufferedWriterwb=newBufferedWriter(fw); wb.append(modelclass+"="+myStorage.getTermVector(modelclass).toString()); wb.newLine(); wb.flush(); }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } } } } publicTermVectorStoragegetModel(Stringmodelpath){ TermVectortv=null; if(modelpath==null){ modelpath=MODELPATH+"/"+MODELNAME; } Filefile=newFile(modelpath); FileReaderfread; try{ fread=newFileReader(file); BufferedReaderbr=newBufferedReader(fread,512); Stringline=null; Stringkeyword=null; Stringvalue=null; do{ line=br.readLine(); if(line==null) break; intstart=line.indexOf("=");// System.out.println("start:"+start); if(start>0) { keyword=line.substring(0,start); line=line.substring(start+1); List<String>list_String=newArrayList<String>(); List<Integer>list_Integer=newArrayList<Integer>(); while(line.indexOf("[")>0){ Stringkey=line.substring(line.indexOf("[")+1,line.indexOf(",")); key=key.trim(); line=line.substring(line.indexOf(",")+1); Stringvalue1=line.substring(0,line.indexOf("]")); value1=value1.trim(); Integervalue_int=newInteger(value1); list_String.add(key); list_Integer.add(value_int); } String[]array_str=newString[list_String.size()]; for(inti=0;i<list_String.size();i++){ array_str[i]=list_String.get(i); } int[]array_int=newint[list_Integer.size()]; for(inti=0;i<list_Integer.size();i++){ array_int[i]=list_Integer.get(i); } tv=newTermVector((String[])array_str,array_int); storage.addTermVector(keyword,tv); } }while(line!=null); }catch(FileNotFoundExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } // System.out.println(storage.getTermVector("电气机械及器材制造业").toString()); returnstorage; } publicTermVectorStoragegetModel(){ returngetModel(null); } // privatevoidwriteFile(Stringpath,Stringmodelname,Stringkey,MapStoreMap){// // Filefile=newFile(path);// if(!file.isFile()){// System.out.println(file.mkdirs());// }// Filefile_txt=newFile(path+"/"+modelname);// if(!file_txt.isFile()){// try{// // if(file_txt.createNewFile()){// FileWriterfw=newFileWriter(file_txt);// BufferedWriterwb=newBufferedWriter(fw);// // // }// }catch(IOExceptione){// //TODOAuto-generatedcatchblock// e.printStackTrace();// }// // }// } /***@seenet.sf.classifier4J.ICategorisedClassifier#isMatch(java.lang.String,java.lang.String)*/publicbooleanisMatch(Stringcategory,Stringinput)throwsClassifierException{return(getMatchCutoff()<classify(category,input));}/***@seenet.sf.classifier4J.ITrainable#teachMatch(java.lang.String,java.lang.String)*/publicvoidteachMatch(Stringcategory,Stringinput)thro

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论