word.cc

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

CC
101
字号
#include <stdio.h>#include <stdlib.h>#include <ctype.h>#include <string.h>#include <iostream.h>#include "Word.h"Word::Word(char *str){    nameList = (nameNode *)malloc(sizeof(nameNode));    nameList->name = new char[strlen(str)+1];    nameList->next = NULL;    strcpy(nameList->name,str);    left = NULL;    right = NULL;    occurrence = 0;    isFeat = 0;    docList = NULL;    docListTail = NULL; }Word::~Word(){}int Word::stemStrcmp(char *str){    int r,s,t;    nameNode *ptr;    ptr = nameList;    r = 1;    while(ptr!=NULL && r!=0){        r = strcmp(ptr->name,str);        ptr = ptr->next;    }    ptr = nameList;    s = 1;    while(ptr!=NULL && r!=0 && s!=0){        s = namecmp(ptr->name,str);        ptr = ptr->next;    }    if(r == 0){	t = 0;    }else if(s == 0){        nameNode *temp;        temp = (nameNode *)malloc(sizeof(nameNode));        temp->name = new char[strlen(str)+1];        strcpy(temp->name,str);        temp->next = nameList;        nameList = temp;	t = 0;    }else if(s != 0){	t = s;    }    return t;}int Word::namecmp(char *name,char *str){  int result;  result = strcmp(name,str);  if(result != 0){    int i,len1,len2,len,l;    double v,avelen;    len1 = strlen(name);    len2 = strlen(str);    if(len1 > len2){        len = len2;    }else{        len = len1;    }    l = 0;    i = 3;    while(i<=len && l==0){        if(strncmp(name,str,i) == 0){            i++;        }else{            l = 1;        }    }    i--;    avelen = (len1+len2)/2.0;    v = ((double) i)/avelen;    if(i>=3 && v>Threshold){        result = 0;    }  }    return result;}

⌨️ 快捷键说明

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