信息检索与搜索引擎技术实验向量空间模型

上传人:小** 文档编号:70153181 上传时间:2019-01-16 格式:DOC 页数:13 大小:722KB
返回 下载 相关 举报
信息检索与搜索引擎技术实验向量空间模型_第1页
第1页 / 共13页
信息检索与搜索引擎技术实验向量空间模型_第2页
第2页 / 共13页
信息检索与搜索引擎技术实验向量空间模型_第3页
第3页 / 共13页
信息检索与搜索引擎技术实验向量空间模型_第4页
第4页 / 共13页
信息检索与搜索引擎技术实验向量空间模型_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《信息检索与搜索引擎技术实验向量空间模型》由会员分享,可在线阅读,更多相关《信息检索与搜索引擎技术实验向量空间模型(13页珍藏版)》请在金锄头文库上搜索。

1、昆明理工大学信息工程与自动化学院学生实验报告( 20142015学年第 1学期)课程名称:信息检索与搜索引擎技术 开课实验室:信自楼445 2014 年12月 23日年级、专业、班计科111学号201110405138姓名成绩实验项目名称向量空间模型指导教师李卫疆教师评语该同学是否了解实验原理:A.了解B.基本了解C.不了解该同学的实验能力:A.强 B.中等 C.差 该同学的实验是否达到要求:A.达到B.基本达到C.未达到实验报告是否规范:A.规范B.基本规范C.不规范实验过程是否详细记录:A.详细B.一般 C.没有 教师签名: 年 月 日一、 上机目的及内容:给定文档语料: d1: 北京安立

2、文高新技术公司d2: 新一代的网络访问技术d3: 北京卫星网络有限公司d4: 是最先进的总线技术。d5: 北京升平卫星技术有限公司的新技术有。设计一个针对这些文档的信息检索系统。具体要求是:1) 给出系统的有效词汇集合(说明取舍原因)。2) 写出d1和d2在VSM中的表示(使用tf*idf,写出各项的数字表达式,具体数值不必实际计算出来)。3) 画出系统的倒排文件示意图。4) 按照向量夹角的余弦计算公式,给出针对查询“技术的公司”的前3个反馈结果。二、 实验原理给定文档语料: d1: 北京安立文高新技术公司 d2: 新一代的网络访问技术d3: 北京卫星网络有限公司 d4: 是最先进的总线技术。

3、d5: 北京升平卫星技术有限公司的新技术有。设计一个针对这些文档的信息检索系统。具体要求是:1) 给出系统的有效词汇集合(说明取舍原因)。北京、安、立、文、高新、技术、公司、新、网络、访问、卫星、有限、先进、总线、升、平的、是、最、有,这些词作为停用词不能加入系统的有效集合一、代,去除后并不影响原来句子语义的表达也不能算作系统的有效集合。2) 写出d1和d2在VSM中的表示(使用tf*idf,写出各项的数字表达式,具体数值不必实际计算出来)。 得到的矩阵:Termd1d2d3d4d5Term出现次数北京101013安100001立100001文100001高新100001技术110013公司1

4、01013新010012网络011002访问010001卫星001012有限001012先进000101总线000101升000011平000011TFIDF=cikj=1tcijlogNnk说明:TF:表示词项在该文档或者查询词中出现的频度。即该词项出现次数除以该文档的长度(所有词的个数)cik:表示词项k在Di中的出现次数。j=1tcij:表示该文档的长度(所有词的个数)IDF:表示词项在文档集合中的重要程度。一个词项出现的文档数越多,说明该词项的区分度越差,其在文档集合中的重要性就越低。N:表示集合中的文档数;nk:表示出现词项k的文档数。d1中各词项的数字表达式“北京”的TFIDF=1

5、7log53“安”的TFIDF=17log51“立”的TFIDF=17log51“文”的TFIDF=17log51“高新”的TFIDF=17log51“技术”的TFIDF=17log53“公司”的TFIDF=17log53d2中各词项的数字表达式:“新”的TFIDF=17log52“网络”的TFIDF=17log52“访问”的TFIDF=17log51“技术”的TFIDF=17log533) 画出系统的倒排文件示意图。 4) 按照向量夹角的余弦计算公式,给出针对查询“技术的公司”的前3个反馈结果。该部分由代码实现。三、 实验方法、步骤1 建立Java项目,2 建立DocumentStruct.

6、java类文件并编辑3 建立TextVector.java类文件并编辑,如图4-1,图4-2所示图4-1图4-24 建立TF.java类文件并编辑,如图图4-7所示图4-45 建立IDF.java类文件并编辑,如图图4-5所示图4-56 建立CaculateSim.java类文件并编辑,如图4-6所示图4-67 建立MainApp.java类文件并编辑,图4-7所示图4-78 完成后的项目文件夹如图4-8所示图4-89 运行结果如图4-9所示-13-1. DocumentStruct.java代码:packageacm.model;public class DocumentStruct pub

7、licDocumentStruct()this.documentID = 0;this.documentSimValue = 0;this.documentContent = None;this.documentName = None;publicDocumentStruct(int ID, double sim, String name, String content)this.documentID = ID;this.documentSimValue = sim;this.documentName = name;this.documentContent = content;public S

8、tring getDocumentContent() returndocumentContent;public void setDocumentContent(String documentContent) this.documentContent = documentContent;public String getDocumentName() returndocumentName;public void setDocumentName(String documentName) this.documentName = documentName;public double getDocumen

9、tSimValue() returndocumentSimValue;public void setDocumentSimValue(double documentSimValue) this.documentSimValue = documentSimValue;publicintgetDocumentID() returndocumentID;public void setDocumentID(intdocumentID) this.documentID = documentID;publicDocumentStruct sortDocBySim(DocumentStruct docLis

10、t)DocumentStruct temp;for(inti=0; idocList.length-1; i+)for(int j=i; jdocList.length-1; j+)if(docListi.getDocumentSimValue() docListj.getDocumentSimValue() )temp = docListi;docListi = docListj;docListj = temp;returndocList;private String documentName;private String documentContent;private double doc

11、umentSimValue;privateintdocumentID;2. TextVector.java代码:packageacm.model;public class TextVector publicTextVector(int dimension, int termCount, intdocumentTermCount, intdocumentCount, int documentContainTermCount)vectorWeight = new doubledimension;for(inti=0; idimension; i+)vectorWeighti = caculateW

12、eight(termCounti, documentTermCount, documentCount, documentContainTermCounti);public double caculateWeight(inttermCount, intdocumentTermCount, intdocumentCount, intdocumentContainTermCount)TF termTF = new TF(termCount, documentTermCount);IDF termIDF = new IDF(documentCount, documentContainTermCount);termTF.caculateTF();termIDF.caculateIDF();return(termTF.getTf()*termIDF.getIdf();public double getVectorWeight() returnvectorWeight;public void setVectorWeight(double vectorWeight) this.vectorWeight = vectorWeight;private double vectorWeight;3. TF.java代码packag

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号