• 大小: 5KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-07
  • 语言: C/C++
  • 标签: 中文分词  分词  

资源简介

用C语言编写的源代码. 实现了准确的中文分词.

资源截图

代码片段和文件信息

/******************************************
http://www.sqlet.com
mail:199909@gmail.com

中文分词测试版
author:linfj
词典文件:sqlet.dict
*******************************************/
#include 
#include 
#include 

#define BOOL char
#define bool BOOL
#define TRUE 1
#define FALSE 0
#define MAX_CWORD_LEN 10 //最长的词
#define MAX_SWORD_LEN 256 //最长的句子
#define MAX_CDIM 90

//不进行索引的单词
char *arrayEnglishStop[] = {
“a“ “b“ “c“ “d“ “e“ “f“ “g“ “h“ “i“ “j“ “k“ “l“ “m“ “n“ “o“ “p“ “q“ “r“ “s“ “t“ “u“ “v“ “w“ “x“ “y“ “z“ 
“1“ “2“ “3“ “4“ “5“ “6“ “7“ “8“ “9“ “0“  
“about“ “above“ “after“ “again“ “all“ “also“ “am“ “an“ “and“ “any“ “are“ “as“ “at“ 
“back“ “be“ “been“ “before“ “behind“ “being“ “below“ “but“ “by“ 
“can“ “click“ “do“ “does“ “done“ “each“ “else“ “etc“ “ever“ “every“ 
“few“ “for“ “from“ “generally“ “get“ “go“ “gone“ “has“ “have“ “hello“ “here“ “how“ 
“if“ “in“ “into“ “is“ “just“ “keep“ “later“ “let“ “like“ “lot“ “lots“ “made“ 
“make“ “makes“ “many“ “may“ “me“ “more“ “most“ “much“ “must“ “my“ “need“ “no“ “not“ 
“now“ “of“ “often“ “on“ “only“ “or“ “other“ “others“ “our“ “out“ “over“ “please“ “put“ 
“so“ “some“ “such“ “than“ “that“ “the“ “their“ “them“ “then“ “there“ “these“ “they“ 
“this“ “try“ “to“ “up“ “us“ “very“ “want“ “was“ “we“ “well“ “what“ “when“ “where“ 
“which“ “why“ “will“ “with“ “within“ “you“ “your“ “yourself“
};

//词典索引时字或词不需要索引
char *arrayChineseStop[] = {
“的““吗““么““啊““说““对““在““和““是“
“被““最““所““那““这““有““将““会““与“
“於““于““他““她““它““您““为““欢迎“
};

//全角的ASCII要全部转成半角英文字符以后还要加入其它的符号如.;/|等
//区码为163的都要转成ascii
//163 ! " # ¥ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | }  ̄ 
// !   #  $  %  &  ‘   (  )  % +    -  .  /   0   1  2 
unsigned char *arrayWideAscii[] = {
“a““b““c““d““e““f““g““h““i““j““k““l““m““n““o““p““q““r““s““t““u““v““w““x““y““z““.“
“A““B““C““D““E““F““G““H““I““J““K““L““M““N““O““P““Q““R““S““T““U““V““W““X““Y““Z““-“
};

//标点符号及汉字的标点符号注意 + - “ 这三个符号,因为在搜索的时候需要通过他们进行异或等条件判断

char arrayAsciiSymbol[] ={
‘!‘‘\\‘‘*‘‘(‘‘)‘‘-‘‘_‘‘+‘‘=‘‘{‘‘}‘‘[‘‘]‘‘:‘‘;‘‘\‘‘‘\“‘‘‘‘<‘‘>‘‘.‘‘?‘‘/‘‘|‘‘@‘‘#‘‘$‘‘%‘‘^‘‘&‘
};

//BIG5与GB对照把所有big5转成gb后进行处理
//$arrayBig5ToG = array ();
//UTF8的转换

//汉字词典
typedef struct _WORD_NODE
{
char strWord[MAX_CWORD_LEN+1];
// todo 可以增加 两个字,三个字,四个字,五个字的数组,这样查起来更快
struct  _WORD_NODE *nextWord;
}WORD_NODE;
//分词结果
typedef struct _SEG_NODE
{
char strWord[MAX_CWORD_LEN+1];
struct _SEG_NODE *nextWord;
}SEG_NODE;

struct _CH_DICT {
WORD_NODE *lstWord;
}CH_DICT[MAX_CDIM][MAX_CDIM];

struct _SEG_LIST {
SEG_NODE *lstWord;
}S

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      14853  2005-11-27 23:16  splitword.c

----------- ---------  ---------- -----  ----

                14853                    1


评论

共有 条评论