Conflation Algorithm Code [Commented]
#include<stdio.h>
#include<string.h>
void main()
{
FILE *fptr1,*fptr2,*fptr3,*fptr4,*fptr5,*fptr6,*fptr7;
char ch[30],stop[30],temp[30],temp1[30];
int flag=0,i=0,j=0;
/*===============CONFLATION ALGORITHM PART -1 REMOVAL OF STOP WORDS FROM A FILE===========================*/
//SOURCE FILE INPUT.TXT CONTAINS NORMAL WORDS AS WELL AS STOP WORDS
//THE FILE STOP.TXT CONTAINS A LIST OF STOP WORDS
//THE STOP WORDS FROM FIRST FILE ARE REMOVES AND REMAINING WORDS ARE STORED IN THE FILE NAMED OUTPUT1.TXT
fptr1=fopen("input.txt","r");
fptr3=fopen("output1.txt","w");
while(fscanf(fptr1,"%s",ch)!=EOF)
{
fptr2=fopen("stop.txt","r");
while(fscanf(fptr2,"%s",stop)!=EOF)
{
if(strcmp(ch,stop)==0)
{
flag=1; //WHEN FLAG IS SET TO 1 MEANS THAT STOP WORD HAS BEEN FOUND
}
}
if(flag==1)
{
flag=0; //FLAG NEEDS TO BE RESET TO VALUE 1
}
else if(flag==0)
{
fprintf(fptr3,"%s\n",ch); //FLAG IS 0 MEANING THE WORD IS NOT A STOP WORD
}
}
fclose(fptr1);
fclose(fptr2);
fclose(fptr3);
/*==============================CONFLATION ALGOORITHM PART 2 , SUFFIX STRIPPING==============================================*/
fptr4=fopen("output1.txt","r");
fptr5=fopen("output2.txt","w");
while(fscanf(fptr4,"%s",temp)!=EOF)
{
i=0;
i=strlen(temp);
i--;
//REMOVING THE PLURAL WORDS S
if(temp[i]=='s')
{
temp[i]='\0';
}
//REMOVING ED TYPE
else if(temp[i]=='d')
{
if(temp[--i]=='e')
{
temp[i]='\0';
temp[++i]='\0';
}
}
//REMOVING LY
else if(temp[i]=='y')
{
if(temp[--i]=='l')
{
temp[i]='\0';
temp[++i]='\0';
}
}
//REMOVING ING
else if(temp[i]=='g')
{
if(temp[--i]=='n')
{
if(temp[--i]=='i')
{
temp[i]='\0';
temp[++i]='\0';
temp[++i]='\0';
}
}
}
fprintf(fptr5,"%s\n",temp);
}
fclose(fptr5);
/*====================CONFLATION ALGORITHM STEP 3 , DETECTION OF EQUIVALENT STEMS======================*/
flag=0;
fptr6=fopen("output2.txt","r");
while(fscanf(fptr6,"%s",temp)!=EOF)
{
fptr7=fopen("output3.txt","r+");
while(fscanf(fptr7,"%s",temp1)!=EOF)
{
if(strcmp(temp,temp1)==0)
{
flag=1;
}
}
if(flag==1)
{
flag=0;
}
else if(flag==0)
{
fprintf(fptr7,"\n%s",temp);
printf("%s",temp);
}
fclose(fptr7);
}
fclose(fptr6);
//fclose(fptr7);
}
#include<stdio.h>
#include<string.h>
void main()
{
FILE *fptr1,*fptr2,*fptr3,*fptr4,*fptr5,*fptr6,*fptr7;
char ch[30],stop[30],temp[30],temp1[30];
int flag=0,i=0,j=0;
/*===============CONFLATION ALGORITHM PART -1 REMOVAL OF STOP WORDS FROM A FILE===========================*/
//SOURCE FILE INPUT.TXT CONTAINS NORMAL WORDS AS WELL AS STOP WORDS
//THE FILE STOP.TXT CONTAINS A LIST OF STOP WORDS
//THE STOP WORDS FROM FIRST FILE ARE REMOVES AND REMAINING WORDS ARE STORED IN THE FILE NAMED OUTPUT1.TXT
fptr1=fopen("input.txt","r");
fptr3=fopen("output1.txt","w");
while(fscanf(fptr1,"%s",ch)!=EOF)
{
fptr2=fopen("stop.txt","r");
while(fscanf(fptr2,"%s",stop)!=EOF)
{
if(strcmp(ch,stop)==0)
{
flag=1; //WHEN FLAG IS SET TO 1 MEANS THAT STOP WORD HAS BEEN FOUND
}
}
if(flag==1)
{
flag=0; //FLAG NEEDS TO BE RESET TO VALUE 1
}
else if(flag==0)
{
fprintf(fptr3,"%s\n",ch); //FLAG IS 0 MEANING THE WORD IS NOT A STOP WORD
}
}
fclose(fptr1);
fclose(fptr2);
fclose(fptr3);
/*==============================CONFLATION ALGOORITHM PART 2 , SUFFIX STRIPPING==============================================*/
fptr4=fopen("output1.txt","r");
fptr5=fopen("output2.txt","w");
while(fscanf(fptr4,"%s",temp)!=EOF)
{
i=0;
i=strlen(temp);
i--;
//REMOVING THE PLURAL WORDS S
if(temp[i]=='s')
{
temp[i]='\0';
}
//REMOVING ED TYPE
else if(temp[i]=='d')
{
if(temp[--i]=='e')
{
temp[i]='\0';
temp[++i]='\0';
}
}
//REMOVING LY
else if(temp[i]=='y')
{
if(temp[--i]=='l')
{
temp[i]='\0';
temp[++i]='\0';
}
}
//REMOVING ING
else if(temp[i]=='g')
{
if(temp[--i]=='n')
{
if(temp[--i]=='i')
{
temp[i]='\0';
temp[++i]='\0';
temp[++i]='\0';
}
}
}
fprintf(fptr5,"%s\n",temp);
}
fclose(fptr5);
/*====================CONFLATION ALGORITHM STEP 3 , DETECTION OF EQUIVALENT STEMS======================*/
flag=0;
fptr6=fopen("output2.txt","r");
while(fscanf(fptr6,"%s",temp)!=EOF)
{
fptr7=fopen("output3.txt","r+");
while(fscanf(fptr7,"%s",temp1)!=EOF)
{
if(strcmp(temp,temp1)==0)
{
flag=1;
}
}
if(flag==1)
{
flag=0;
}
else if(flag==0)
{
fprintf(fptr7,"\n%s",temp);
printf("%s",temp);
}
fclose(fptr7);
}
fclose(fptr6);
//fclose(fptr7);
}
No comments:
Post a Comment