没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
//编写程序实现为给定目录下txt文件建立倒排索引文件il.txt
#include<fstream.h>
#include<string.h>
#include<math.h>
#include<stdio.h>
#define dd 0.0384615 //即1/26,这样做是为了完成26个字母的加权值
double jiaquan(char b[]) //计算1/26机制的字符串
{
double w=0;
for( int r=0 ; r<=strlen(b)-1 ; r++ ) //每一位计算加权值,第一位为1,第二位为1/26,以此类推。
{
if ( (b[r]>='a') && (b[r]<='z') )
{
int t= b[r]-'a'+1;
w+=pow(dd,r)*t;
}
else
w+=0.01; //不是单词的话,加0.01
}
return w;
}
bool Txt1( char l1[], char l2[][10], int z ) //txt1记录该词项是否在文档1中出现,出现则为true,否则为false
{
bool txt1=false;
for ( int k=0; k<z; k++ )
{
if ( strcmp(l1,l2[k])==0 )
txt1=true;
#include<fstream.h>
#include<string.h>
#include<math.h>
#include<stdio.h>
#define dd 0.0384615 //即1/26,这样做是为了完成26个字母的加权值
double jiaquan(char b[]) //计算1/26机制的字符串
{
double w=0;
for( int r=0 ; r<=strlen(b)-1 ; r++ ) //每一位计算加权值,第一位为1,第二位为1/26,以此类推。
{
if ( (b[r]>='a') && (b[r]<='z') )
{
int t= b[r]-'a'+1;
w+=pow(dd,r)*t;
}
else
w+=0.01; //不是单词的话,加0.01
}
return w;
}
bool Txt1( char l1[], char l2[][10], int z ) //txt1记录该词项是否在文档1中出现,出现则为true,否则为false
{
bool txt1=false;
for ( int k=0; k<z; k++ )
{
if ( strcmp(l1,l2[k])==0 )
txt1=true;
}
return txt1;
}
bool Txt2( char l1[], char l2[][10], int z1, int z2 ) //txt2记录该词项是否在文档2中出现,出现则为true,否则为false
{
bool txt2=false;
for ( int k=z1; k<z1+z2; k++ )
{
if ( strcmp(l1,l2[k])==0 )
txt2=true;
}
return txt2;
}
void main() //**********************************主函数**********************************************
{
//***************************首先把所有的词项拆开放到数组a[]里******************************
char a[80][10]; //存放1.txt,2.txt的单词,即将文档拆成词条,是未排序的词典
char c[80][10]; //一会查询时用到
ifstream fin1("1.txt"); //打开文件1.txt
int num1,num2; //记录文档1、文档2中词项的数目
for ( int i=0 ; fin1!='\0' ; i++)
{
fin1>>a[i];
}num1=i;
fin1.close();
ifstream fin2("2.txt"); //打开文件2.txt
for ( i=i-1 ; fin2!='\0' ; i++)
return txt1;
}
bool Txt2( char l1[], char l2[][10], int z1, int z2 ) //txt2记录该词项是否在文档2中出现,出现则为true,否则为false
{
bool txt2=false;
for ( int k=z1; k<z1+z2; k++ )
{
if ( strcmp(l1,l2[k])==0 )
txt2=true;
}
return txt2;
}
void main() //**********************************主函数**********************************************
{
//***************************首先把所有的词项拆开放到数组a[]里******************************
char a[80][10]; //存放1.txt,2.txt的单词,即将文档拆成词条,是未排序的词典
char c[80][10]; //一会查询时用到
ifstream fin1("1.txt"); //打开文件1.txt
int num1,num2; //记录文档1、文档2中词项的数目
for ( int i=0 ; fin1!='\0' ; i++)
{
fin1>>a[i];
}num1=i;
fin1.close();
ifstream fin2("2.txt"); //打开文件2.txt
for ( i=i-1 ; fin2!='\0' ; i++)
剩余8页未读,继续阅读
资源评论
- qq_243198932014-12-09还不错哦!就是不能处理很大的本文
lele12138
- 粉丝: 5
- 资源: 14
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功