Indexing 实验报告 学号:200433103143 姓名: 吴蔚瀚 一 实验目的 .DOCVIP

Indexing 实验报告 学号:200433103143 姓名: 吴蔚瀚 一 实验目的 .DOC

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Indexing 实验报告 学号:200433103143 姓名: 吴蔚瀚 一 实验目的

Indexing 实验报告 学号:200433103143 姓名: 吴蔚瀚 一. 实验目的 ?? 了解索引系统的工作原理及实现方法; ?? 掌握文本预处理技术; ?? 熟悉创建倒排索引。 二. 实验内容 1 文本预处理 要求可对提供的数据集进行预处理,处理功能要求如下,但不限于此: (1)网页的预处理和去噪声 (2)网页关键文本的提取 (3)中文分词处理 (4)英文stemming 以及时态分析(如需要) (5)停止词处理 (6)中文编码转换(如需要) 2 建立倒排文件 设计和创建倒排文件的数据结构。 (1)对每个索引的词,至少应该存储其文件频率(df)。 (2)设计置入文件的数据结构,至少记录每个词在各个文档中出现的次数,即词频(tf)。 同时对每个文档,存储文档的所有词(包括停止词)的个数,即文档长度。 (3)索引的压缩:压缩索引占据的存储空间。(可选) 3 实验结果统计分析 对索引的过程,生成统计信息: (1)创建索引所需的时间(the elapsed time); (2)(压缩前后的)索引的大小,以字节为单位 (3)索引中反向列表的个数 (4)找出5 个具有最大df 值的词,给出其tf 值,置入文件的大小。如果是英文,给出 主干词(stem)。(可选) (5)与Lucene 索引结构的比较,说明优缺点。(可选) 三. 实验环境描述 我采用的编程语言是visual c# ,所以实验环境要求为 .NET Framkwork 2.0 我是在Microsoft Visual Studio 2005 这个工具平台上编程的。 四. 索引系统设计思路及总体框架; 我的索引系统设计思路是这样的:由于提供网页资料不是太大,所以一开始我就把所有网页的html代码全读入内存,用一个string 数组来装着。然后通过对每个网页资料的预处理,分词,去停止词后,得到一个装着词的List链表。再通过对每个List的操作,算出该List中每个不相同词的tf值,并对其idf值赋值为1,再放到设计好的B+树数据结构里面。在放到B+树的过程中要涉及到idf值的整合。最后把B+树叶节点的内容写到一个文件里,为有哪些信誉好的足球投注网站做好准备。 然后的我索引系统设计的总体框架是这样的: 因为我是分域建索引,主要分为正文(content)和标题(title)两个域,所以在建索引时要分别各建一个。 网页去噪处理模块: PreProcess 类(提取正文的) 提取标题就直接提取title和/title之间的内容了 分词模块:SplitWord 类 去除停止词模块: RemoveStopWords 类 (4)存储结构模块: BPTree searchTree = new BPTree();//储存正文索引词的BP树 BPTree searchTree_title = new BPTree();//储存标题索引词的BP树 public class BPunit :是树的叶节点的类型,它包括: public string word;//索引词 public Hashtable tfTable;//文件索引值为key和以word在该文件的tf值为值的哈西表 double df;//储存 df值 五. 程序结构及具体实现的流程分析 我的程序核心有以下几个程序文件: 按结构顺序,我将逐一说明各个文件中类的作用及实现流程(类名跟其所在文件名是一样的) ① DefineTree.cs :定义了BPunit的类,这个类封装了 索引词 public string word (文件索引值/word的tf值)哈西表 public Hashtable tfTable word 的idf值 double idf 是BPTree的基本储存单位 ② BPTree : 提供一棵B+树的类,内部节点有7个(真正有用的只有6个),叶节点有11个。 它提供了插入数据public bool insert(BPunit record),查找最左叶节点public Leaf findLeftLeaf()的函数。其中在insert函数中,如果发现要插入的索引词是一样的话,那么B+树会把两个词的哈西表tfTable内容合并,即把要插入的索引项的tfTable内容插入到原有的索引项的tfTable里。然后还要把原有的索引项的idf值加1,最后保留原索引项,要插入的索引项实际上没有插入。 ③ SegList :为分词提供数据结构及其操作 ④ Segment :提供分词功能 ⑤ SplitWord : 封装SegList和Segment , public strin

文档评论(0)

2105194781 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档