ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:23.08KB ,
资源ID:3420170      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3420170.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(信息检索实验报告.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

信息检索实验报告.docx

1、信息检索实验报告 信管11班 吕双武 (01083088) 熊炎波 (01083094) 2004-6-12第一单元 文本处理与倒排文档的建立实验目的:通过用高级语言编程实现倒排文档组织,深刻理解倒排文档的结构和组成,掌握自动抽词标引、建立倒排文档的基本原理和实现方法。实验内容: (一) 系统功能建立文献信息条目的顺排文档;对标题字段、文摘或全文字段进行自动抽词标引;建立倒排文档组织。(二) 处理方法与思想 根据文献中词频、词性与词的区分能力之间的关系,具有好的区分能力的词应是中等词频有实际意义的词,根据这一思想去掉停用词,对文本进行词干化处理。然后根据一定的关键词赋权方法进行自动标引和抽词,

2、生成K-D文件和倒排文档。(三) 算法流程与数据结构1、从磁盘中读入一篇文献 2、对文献文本进行预处理: 词汇分析 删除停用词 词干处理 选择标引词 建立概念等级关系 3、对选出的标引词及其地址和记录号进行输出并存储在磁盘空间中,生成标引词表wordlist.txt文件4、对检索入口词进行规范化处理,通过屏幕输入检索词进行检索,并验证倒排文档的生成(四) 源程序以下采用 c 程序设计语言实现上述算法#include#include#include#include#define MAX_LENGTH 6#define MAX_COUNT 1000 #define STOPLIST_COUNT 2

3、0char xx5080;int maxline=0; /*the Total Line Of The d1.txt*/typedef struct node char word20; char num10; int row; int col; WNODE; WNODE wordListMAX_COUNT;char *stopList=a,an,and,are,as,at,be,by,for,from,in,is,of,on,or,our,the,to,with,we;int SearchWord(char *str) int i=0; for(;iSTOPLIST_COUNT;i+) if(

4、strcmp(stopListi,str)=0) return 1; return 0; int ReadWord(char *document)FILE *fp;int i=0;char *p;if(fp=fopen(document,r )=NULL) return 1;while(fgets(xxi,80,fp)!=NULL)p=strchr(xxi,n);if(p) *p=0;i+;maxline=i;fclose(fp);return 0;void Word(char *docu_num) clrscr(); int i,j,k,m,n,ll,h=0,t=0,r=0,flag; ch

5、ar yy20; for(i=0;imaxline;i+) ll=strlen(xxi); /printf(%dn,ll); /for(j=0;jll;j+) printf(%cn,xxij); k=n=0; for(j=0;jll;j+) /if(isalpha(xxij) k+; if(isalpha(xxij)flag=1;yyn+=xxij; else yyn=0; if(flag) if(!SearchWord(yy) for(t=0;t=n;t+) wordListh.wordt=yyt; /wordListh.word=yy; for(r=0;r=4;r+) wordListh.

6、numr=docu_numr; wordListh.row=i; wordListh.col=j-n; h+; n=0; flag=0; k=0; yyn=0; if(flag) if(!SearchWord(yy) for(t=0;t=n;t+) wordListh.wordt=yyt; for(r=0;r=4;r+) wordListh.numr=docu_numr; wordListh.row=i; wordListh.col=j-n; h+; n=0; flag=0; k=0; void WriteWord()FILE *fp;int i;clrscr();fp=fopen(WordL

7、ist.txt,a);for(i=0;i level( Aj),则立即停止向后搜索,并进行以下操作: NFD(Ai) NFD(Aj)(2)逆向扫描遇见AFD(Ai) 为空时,同样应向回搜索,依次判别各项level(Aj)值。当满足条件level( Ai) level( Aj)或者搜索到提问逻辑式中最后一个检索项目词时,进行以下操作: AFD(Ai) AFD(Aj)3、 分析提问式 Q=A+B*(C+D*(E+F)+G*H Q=01+02*(03+04*(05+06)+07*08 4、检索处理流程从顺排文档中依次读出一篇文献记录,然后与提问文档中所有的提问式进行匹配检索,如满足提问表达式所要求的

8、条件,该文献记录就作为提问式的命中文献输出。系统需要对提问文档中各提问式分批进行处理,先从提问式文档中取N个提问式处理,当这N个提问式与所有数据库中文献记录匹配完毕后,再从提问式文档中取N个提问式重复以上处理过程,一直到提问式文档中数据处理完为止。 (二) 数据结构(1)检索词表结构检索词表是为了描述提问式中出现的提问检索词而设计的。因为在实际提问式处理过程中,提问检索词只是以其在检索词表中检索词号形式出现,而不是检索词本身。(2)展开表结构地址AFDNFD层次值检索词号属性项号比较部位比较条件有效位检索词项地址是指该行所在展开表中地址匹配成功时转向地址AFD,给出一旦在检索词与文献记录中标引

9、词匹配成功时,下步应该处理的提问检索词在提问表中的地址。匹配不成功时转向地址NFD,给出一旦检索词与标引词匹配失败以后应该转向展开表中的地址。层次值给出层次计数器在完成展开表填写时的当前处理值。(3)标引词标识表结构是为了描述文献记录中各标引词特征而设立的,它的设立为提问文档与文献记录的匹配奠定了基础。标引此标识号有效值项目词标引词标识号是系统赋予从文献记录中抽出标引词的类编码,实际上是属性项号。有效位是指标引词在匹配中的有效长度。项目词是指具体的标引词(三) 源程序以下采用 c 程序设计语言实现上述算法# include main()int b20,a204;int i,h,j,k,l,le

10、vel;printf(input query:n);i=0;do scanf(%c,&bi); i+;while(bi!=.);h=i;for(i=0;ih;i+)ai0=i+1;j=0;level=0;for(i=0;i=A)&(bi0;j-)if(aj-13aj3) if(aj-11!=0) aj-12=aj2; if(aj-12!=0) aj-11=aj1; if(aj-13=aj3) if(aj-11!=0) aj-12=aj2; if(aj-12!=0) aj-11=al1; if(aj-13aj3) if(aj-11!=0) for(k=j;k=l;k+) if(ak3=aj-13

11、) aj-12=ak2; if(aj-12!=2) for(k=j;k=l;k+) if(ak3=aj-13) aj-11=ak1; printf(add afd nfd level wordn);for(j=1;jl+1;j+)for(i=0;i=A&ch=a&ch=z)/*aspn=ch;*/ /*生成检索词表,算项保存在数组aspk中*/expt=ch; t+;/*n+;*/elseif(ch=() /*生成算子栈,并判断优先级,符合条件的算子保存在数组stacktop中,判断算子出栈,进入逆波兰输出区*/top+;stacktop=ch;elseif(ch=)while(stackto

12、p!=()expt=stacktop;top-;t+;top-;elseif (ch=+|ch=-)while(top!=0&stacktop!=()expt=stacktop;top-;t+;top+;stacktop=ch;elseif(ch=*)while(stacktop=*)expt=stacktop;top-;t+;top+;stacktop=ch;ch=stri;i+;while(top!=0)expt=stacktop;t+;top-;expt=#;for(j=1;j=t;j+)printf(%c,expj);printf(n) /*从文件中分行读入文献记录*/ /*fp=fo

13、pen(index.dat);j=0for(i=0;i100;i+)while(fp!=#) fscanf(fp,%c,&indexij); j+; ch=indexij; y=1; top=0;for(k=1;k=A&ch=a&ch=z) cc=expk; top+; if(strcmp(ch,cc)=0) /*算项集合与文献记录进行比较*/ /* yardtopy=i+1; y+; elseswitch (expk)case +:yardtop-1=strcat(yardtop-1,yardtop);break; case -:yardtop-1=str (yardtop,yardtop-1);break;case *:yardtop-1=str (yardtop-1,yardtop);break;top-; if(feof(fp)break;fclose(fp); printf(The Retrieval Results are:);printf(n);for(x=1;xy;x+) i=yard1x; printf(%c,indexi); (四) 算法改进该算法一般需要七个工作区,与检索提问式的形式有很大关系,可以通过改变检索式的构造形式,优化检索算项和算子的存储方式,以准波兰式的形式对检索算子与算项进行实时运算来节省空间和时间,进而提高检索效率。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1