mylib.cc

来自「一个增量文本聚类的算法。 参考文献: Wai-chiu Wong, Ada 」· CC 代码 · 共 82 行

CC
82
字号
#include <stdio.h>#include <stdlib.h>#include <ctype.h>#include <string.h>#include <iostream.h>#include <time.h>#include "DC.h"#include "MyLib.h"void dummy(){    printf("I'm a dummy.\n");}int ranGen(int seed,int num){    srand((time(NULL))+(seed*121)*37);    return (rand()%num);}double man_sim(DC *dc1,DC *dc2){    double s,dist,w1,w2;    int nf;    nf = dc1->numFeat;    dist = 0.0;    for(int i=0;i<nf;i++){        w1 = ((double) dc1->W[i])/((double) dc1->N);        w2 = ((double) dc2->W[i])/((double) dc2->N);        dist = dist + fabs(w1-w2);    }    s = 1.0-(dist/((double) nf));    return s;}double cos_sim(DC *dc1,DC *dc2){    double s,w1,w2,prod,norm1,norm2;    int nf;    nf = dc1->numFeat;    prod = 0.0;    norm1 = 0.0;    norm2 = 0.0;    for(int i=0;i<nf;i++){        w1 = ((double) dc1->W[i])/((double) dc1->N);        w2 = ((double) dc2->W[i])/((double) dc2->N);        prod = prod+(w1*w2);        norm1 = norm1+(w1*w1);        norm2 = norm2+(w2*w2);    }    s = prod/sqrt(norm1*norm2);    return s;}double euc_sim(DC *dc1,DC *dc2){    double s,dist,w1,w2,diff;    int nf;    nf = dc1->numFeat;    dist = 0.0;    for(int i=0;i<nf;i++){        w1 = ((double) dc1->W[i])/((double) dc1->N);        w2 = ((double) dc2->W[i])/((double) dc2->N);        diff = w1-w2;        dist = dist+(diff*diff);    }    s = 1.0-(sqrt(dist)/((double) nf));    return s;}double sim(int simID,DC *dc1,DC *dc2){    if(simID == 1){	return cos_sim(dc1,dc2);    }else if(simID == 2){	return euc_sim(dc1,dc2);    }else{	return man_sim(dc1,dc2);    }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?