资源简介
可直接运行,利用空间向量模型建立简单的布尔检索,内含源代码与用于搜索的TXT文本,可以替换
代码片段和文件信息
#include
#include
#include
#include
#include
using namespace std;
const int total=20;
class node
{
friend class suoyin;
public:
char * name;
node * next;
int d[total]; //记录name在第几个文档中出现了几次
int df;
int tf;//记录词项在查询向量中的tf
node()
{ for (int i=0;i {
d[i]=0;
}//初始化d设为不存在
df=0;
tf=0;
};
node(char *a); //初始化,将外部字符串设为name
};
node::node(char *a)
{//初始化,将外部字符串设为name
name = new char [];
name = a;
}
class suoyin
{//倒排索引类
public:
float lenth[total];
float score[total];
node * root ;//记录根节点,创建链表记录倒排索引
suoyin(){root = NULL;}//初始化 root
suoyin & addnode(int knode & a);//将外部节点加入倒排索引
suoyin & delenode();//删除重复名字的节点,并且将记录表合并
int * find(char * x);//按名字查找记录,并且返回记录表(为一个int数组)
void output1();//打印在屏幕上
void output2();//打印在“il.txt“中
suoyin & cosine(char * q);
suoyin & Lenth();
};
suoyin & suoyin::addnode(int knode & a)
{//将外部节点加入倒排索引
node * p=root;
for(int i=1;i p=p->next;//寻找到最后一个节点
node * y =new node;//新建节点y作为桥梁,将新节点加入
y->name=a.name;
for (int ir=0;ir {
y->d[ir]=a.d[ir];
}
if(k!=0)//加入的不是首节点
{
y->next=p->next;
p->next=y;
}
if(k==0)//加入的是首节点
{
y->next=root;
root=y;
}
return * this;//返回新的倒排索引
}
suoyin & suoyin::delenode()
{//删除重复名字的节点,并且将记录表合并
node * p = root;
while (p->next)//遍历倒排索引
{
if (!strcmp(p->next->namep->name))//当名字相同时
{//合并记录表,并将第二个节点删除
for(int i=0;i {
p->d[i]=p->d[i]+p->next->d[i];
}
p->next=p->next->next;
}
else p=p->next;//名字不同时,放过
}
return * this;//返回新的倒排索引
}
int * suoyin::find(char * a)
{//按名字查找记录,并且返回记录表(为一个int数组)
int results[total];//记录查询结果
for(int i=0;i {
results[i]=-1;//先初始化为-1
}
node * current=root;
while(strcmp(current->namea)!=0)
{
current=current->next;
}
if(current)//找到对应的名字
{//返回相应的记录表
for (int i=0;i {
results[i]=current->d[i];
}
return results;
}
return results; //没找到对应的名字,返回值为-1的记录表
}
void suoyin::output1()
{//打印在屏幕上
node * current;
for(current=root;current;current=current->next)
{
int fre=0;
for (int i=0;i {
fre=fre+current->d[i];
}
cout<name<<“ fre:“< for (int iw=0;iw if (current->d[iw])cout<<“ ->“<d[iw]<<“)“;
cout< }
}
void change (node & xnode & y)
{//外部函数,按名字排列时,交换两个词项的顺序
char * temp=new char [strlen(x.name)+1];//交换名字
strcpy(tempx.name);
strcpy(x.namey.name);
strcpy(y.nametemp);
for (int i=0;i {
int dtemp=x.d[i];//交换记录表
x.d[i]=y.d[i];
y.d[i]=dtemp;
}
};
void copy(char * achar * bint iint j)
{//外部函数,将a字符串的第i位到第j位复制到b字符串中,处理布尔查询表达式时用
int count;
for(count=0;count {
b[count]=a[i+count];
}
b[count]=‘\0‘;
};
///////////////////////////////////////////////////////////////////////////////
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 75 2013-09-24 21:35 1.txt
文件 141 2013-11-04 20:34 10.txt
文件 153 2013-11-04 20:34 11.txt
文件 192 2013-11-04 20:37 12.txt
文件 141 2013-11-04 20:36 13.txt
文件 135 2013-11-04 20:35 14.txt
文件 78 2013-11-08 23:16 15.txt
文件 139 2013-11-04 20:35 16.txt
文件 133 2013-11-04 20:37 17.txt
文件 129 2013-11-04 20:35 18.txt
文件 179 2013-11-04 21:49 19.txt
文件 80 2013-09-24 21:35 2.txt
文件 128 2013-11-04 20:36 20.txt
文件 132 2013-11-04 20:29 3.txt
文件 93 2013-11-04 20:30 4.txt
文件 139 2013-11-04 20:31 5.txt
文件 93 2013-11-04 20:32 6.txt
文件 129 2013-11-04 20:32 7.txt
文件 135 2013-11-08 23:04 8.txt
文件 131 2013-11-04 20:34 9.txt
文件 10003 2013-11-08 23:15 ddd.cpp
文件 103424 2013-11-08 23:23 信息检索3_实验报告.dot
目录 0 2014-01-14 20:10 空间向量模型\
文件 75 2013-09-24 21:35 空间向量模型\1.txt
文件 141 2013-11-04 20:34 空间向量模型\10.txt
文件 153 2013-11-04 20:34 空间向量模型\11.txt
文件 192 2013-11-04 20:37 空间向量模型\12.txt
文件 141 2013-11-04 20:36 空间向量模型\13.txt
文件 135 2013-11-04 20:35 空间向量模型\14.txt
文件 78 2013-11-08 23:16 空间向量模型\15.txt
文件 139 2013-11-04 20:35 空间向量模型\16.txt
............此处省略26个文件信息
- 上一篇:ESP8266一键烧写工具
- 下一篇:fragstat4.2
相关资源
- 关于求线段和线段,线段和圆弧,圆
- PCL点云库SACSegmentation用法demo
- cocos2dx经典三消游戏
- 《深入理解计算机系统》随书代码
- glut库glew库glfw库glaux库
- 人脸识别系统设计-毕业设计
- ACM大学生程序设计竞赛在线题库精选
- OpenSSL-win64库使用依赖文件
- 西门子数控系统二次开发
- 多用户多级目录文件系统的实现
- devcpp4990setup
- 俄罗斯方块 SDL 版
- 基于Win socket简单实现一个FTP协议的客
- p2p 的简单实现 上传文件
- 数据结构实验课(全部题目+完整代码
- 哈夫曼树实现图片压缩与解压
- 车辆保险管理系统
- 算法导论第三版英文原版
- CTP接口及开发文档.zip
- VxWorks及Tornado集成开发环境的使用
- 炫彩界面库帮助文档chm-v2.5.0
- vc实用教程第三版+郑阿奇
- 嵌入式华清远见培训 ARM代码内部资料
- VLD For VS2019
- 网上鲜花销售系统完整代码
- Qt中嵌入Excel
- VS2010写的连连看
- Clion+Qt 运行的
- 超市进销存管理系统需要数据库
- introduction to information retrieval246004
评论
共有 条评论