[置顶] ICTCLAS2013 的使用方法

这个工具是什么?先看看他的官方介绍吧:

NLPIR汉语分词系统(又名ICTCLAS2013),主要功能包括中文分词;词性标注;命名实体识别;用户词典功能;支持GBK编码、UTF8编码、BIG5编码。新增微博分词、新词发现与关键词提取;张华平博士先后倾力打造十余年,内核升级10次。


[ICTCLAS版本已经更新,按照本博客操作可能遇到错误,最新ICTCLAS2014 c++版本使用方法请点击打开链接]


ICTCLAS2013 Java版本的使用方法 请点击点击打开链接

ICTCLAS2014 c++版本的使用方法  请点击点击打开链接

一,先下载c++版本:点击打开链接

解压文件后看到很多文件的:


图1. rar解压后的文件图


二,自己新建一个c++工程,在vs2010建名为ICTCLAS的工程。

建好后如图所示:


图2. 工程ICTCLAS根目录下的文件


三,将图1中的example-c文件夹(是整个文件夹,下同)复制到图2的ICTCLAS目录下,并且在ICTCLAS源文件中导入,同时将ICTCLAS.cpp文件下的_tmain函数注释掉。如图:


图3. 导入example-c文件夹下的Example-C.cpp文件



图4. 导入完成后,工程下面出现Example-C.cpp文件(图中红底线示意)


四,将图1中的include文件夹复制到图2的工程根目录下。否则,会出现下图所示错误。

图5. 复制include文件夹之前工程提示“无法打开源文件 "../../include/NLPIR.h"”



图6.复制include文件夹之后,工程ICTCLAS根目录下的文件


五,

1>将图1中的lib文件夹复制到图2工程根目录下面,并且在项目->添加现有项中导入lib下的NLPIR.lib文件。

[置顶] ICTCLAS2013 的使用方法_第1张图片

图7. 导入lib文件夹下NLPIR.lib文件


2>将图1中bin文件夹下的NLPIR.dll文件复制到工程根目录下ICTCLAS目录下Debug目录下。

3>注释掉Example-C.cpp文件第9行语句。

 #pragma comment(lib, "../../bin/NLPIR.lib")  -->   // #pragma comment(lib, "../../bin/NLPIR.lib")

  (不要问我为什么,我只能告诉你,我也不知道。在我实验中不注释掉这句话,依然报错 fatal error LNK1104。)


如果上述3步没有做好,控制台可能会输出下图所示的错误: 


图8. 导入库文件失败,控制台输出错误信息: LINK : fatal error LNK1104: 无法打开文件“../../bin/NLPIR.lib”


六,将图1中的Data文件夹和test文件夹复制到图2工程根目录下。

[置顶] ICTCLAS2013 的使用方法_第2张图片

图9, 步骤六完成后工程根目录下的文件


七,运行工程,虽然控制台输出乱码信息,但是在test文件夹下出现test-utf8.TXT的分词结果文件test-utf8.TXT_result1.txt,test-utf8.TXT_result2.txt

[置顶] ICTCLAS2013 的使用方法_第3张图片

图10,步骤七完成后,test目录下的文件(红色底线文件是新生成的结果文件)


如果想试试分gbk文件。可以将Example-C.cpp文件第322行的注释去掉。

  //testNewWord(GBK_CODE);    -->   testNewWord(GBK_CODE);

在此我去掉322行注释,对333行进行注释。控制台输出新词识别结果,并且test文件夹下出现对应文件的分词结果文件。


图11,控制台输出新词识别结果


至此,工程已经可以对文件进行分词(注意需要制定文件的格式GBK_CODE,UTF8_CODE等)。


八,如果想对Example-C.cpp文件325行的句子进行分词。如下操作:

1>去掉Example-C.cpp文件327行的注释

//SplitGBK(sInput);   -->  SplitGBK(sInput)

********如果这个时候运行,我的工程会输出:ICTCLAS INIT FAILED!  (初始化失败) 需要进行下面的步骤。

2>修改Example-C.cpp文件80行

if(!ICTCLAS_Init())//数据在当前路径下,默认为GBK编码的分词

-->

if(!ICTCLAS_Init("..",0))//数据在当前路径下,默认为GBK编码的分词

******** 个人经验:他的这个0 表示句子是GBK编码的

运行工程得到下面结果:

[置顶] ICTCLAS2013 的使用方法_第4张图片

图12. 对输入的句子进行的分词结果



后记:

1>个人才疏学浅,比如第七步控制台为何输出乱码信息,目前还没解决。等以后解决在进行补充。

2>分词工具中的一些细化的使用:比如加载自己的词典,如何进行分词粒度调节,等以后有时间再进行研究。


你可能感兴趣的:([置顶] ICTCLAS2013 的使用方法)