欢迎来到天天文库
浏览记录
ID:42571558
大小:288.08 KB
页数:10页
时间:2019-09-17
《现代信息检索-河海大学》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、本科生课程论文CoursePaper论文编号PaperNo:撰写日期Date:2013-10-23现代信息检索Moderninformationretrieval课程名称Course:现代信息检索课程性质CourseNo:专业选修课学分数Credits:2主讲教师Instructor:韩立新开设学院College:计算机与信息学院Computers&InformationEngineering开设时间Semester:2013〜2014学年第一学期Autumn,2013伺洛大学现代信息检索一、tf-idf向量模型1.题目:
2、试按仃TV/在剔除一些常用词后给出文本屮术语的统计算法和程序,并按降序进行排序。2.算法思想:对于中文检索需要有中文词库,程序中用到20万的词库。数据结构用了最简单的数组。读取文献,采用每次读取1KB的内容进行分词。分词采用正向最大匹配算法,查找用二分法(词库中词己排序)。3.程序代码:ftincludc#includc#includeusingnamespeicestd;ftdefineN9//文献数目intcomminute(char*text,longlg,intn
3、umber);//分词程序intfileopen(char*f,intn);charword[200000][22]={0};intfrequency[200000][N]={0};//独指定文件//200000条词库//N篇文章//词库中实际词条数目voidmain(intn,char*arg[]){inti=0,j=0;intni;intmax[N]={0};charch;char*filc[N]二{0};char*savefile;clocktstartO,finishO;doublesftimeO;startO=c
4、lock();//心放文献使用频率最大词//需要检索的文献//结果存放文档//程序运行时间savefile=z,idf文档.txt";file[0]二"抱愧山西.txt";file[l]=〃一梦三四年.txt";filc[2]二〃漂泊的人生.txt";file[3]="linux下驱动编程.txt";FTLE*cp=fopen("词库・txt","r");while(!feof(cp))(rh=f^PtC(rn)•for(i=0;ch!=13&&i<22&&ch1=10;i++){word[word1eng][i]二ch;
5、ch=fgetc(cp);}word1eng++;}fclose(cp);〃词库位置〃读取词库//关闭词库for(inti=0;i6、ordleng;i++){for(j=0;jmax[j])max[j]=frequency[i][j]:}//开始输出//计算包含词i的文件数目〃出现的词语内容//(fre7、quency[i][j]*l.0/max[j])*log(N*l.0/ni)为词语加fprintf(p,"t%dt%5・frequency[i][j],(frequency[i][j]*l.0/max[j])*1og(N*1.0/ni));elsefprintf(p,/ztOtO.0000");fprintf(p,"");)}std::cout<<"结果成功输出到文件:"<8、SPERSEC;//计算用时std::cout<<"分词夭川时间:"«sftime0«"秒."<
6、ordleng;i++){for(j=0;jmax[j])max[j]=frequency[i][j]:}//开始输出//计算包含词i的文件数目〃出现的词语内容//(fre
7、quency[i][j]*l.0/max[j])*log(N*l.0/ni)为词语加fprintf(p,"t%dt%5・frequency[i][j],(frequency[i][j]*l.0/max[j])*1og(N*1.0/ni));elsefprintf(p,/ztOtO.0000");fprintf(p,"");)}std::cout<<"结果成功输出到文件:"<8、SPERSEC;//计算用时std::cout<<"分词夭川时间:"«sftime0«"秒."<
8、SPERSEC;//计算用时std::cout<<"分词夭川时间:"«sftime0«"秒."<
此文档下载收益归作者所有