ICTCLAS是中科院计算所研发的中文分词软件,这个软件在第一届国际中文处理研究机构SigHan组织的评测中都获得了多项第一名,是公认的当今最好的中文分词软件。
综合性能:ICTCLAS 2011分词速500KB/s左右,分词精度98.45%。
官网地址:http://ictclas.org/
软件下载
下载地址:http://ictclas.org/ictclas_download.aspx
下载的时候需要填下姓名和邮箱,然后就可以下载,是免费的。我下载的是C++版的,当然也有Java版的,目前只支持这两种语言。
下载解压后有四个文件夹,分别是:
API:
Demo:
Doc:使用文档
Smaple:给了一个使用的例子
软件使用
1. 在你的函数里加入对ICTCLAS50.lib的引用
#ifndef OS_LINUX #include <Windows.h> #pragma comment(lib, "ICTCLAS50.lib") //ICTCLAS50.lib库加入到工程中 #endif
2. 初始化ICTCLAS环境
if(!ICTCLAS_Init()) //初始化分词组件。 { printf("Init fails\n"); return ; } else { printf("Init ok\n"); }
3. 加入用户词典
方法一:用字符串加入
const char* pszDictBuffer="舟曲县城@@nr;最新动态@@nr"; //字符串形式导入用户词典 unsigned int nItems=ICTCLAS_ImportUserDict (pszDictBuffer, strlen(pszDictBuffer),CODE_TYPE_UNKNOWN);
方法二:用文本加入
unsigned int nItems=ICTCLAS_ImportUserDictFile("userdict.txt",CODE_TYPE_UNKNOWN);
保存用户词典
ICTCLAS_SaveTheUsrDic(); //保存添加的用户词汇,下次使用依然有效
4. 分词函数
nRstLen=ICTCLAS_ParagraphProcess( sSentence, //需要进行分词的字符串 nPaLen, //进行分词的字符串长度 sRst1, //用户自行分配空间,用于保存结果,在例子中用的是nPanlen的六倍长度 CODE_TYPE_UNKNOWN, //编码类型 1 // 0- 结果没有tag, 1- 有POS的tag );