在C++项目中如何使用ICTCLAS工具包

摘自:http://hi.baidu.com/doubleysl/item/9176c689b5683b2f110ef324

做中文信息处理研究这一方向的人都知道,汉语的分词是研究的基础的基础,只有建立在分词之后的基础上才能进行下一步研究, 术语抽取,命名实体识别等等(当然,也有些研究并不需要建立在分词的基础之上)。

目前分词工具包有很多,而且大部分是开源的,具体有哪些可以参考下面这个网站,作者总结得比较好:

http://blog.csdn.net/hover_online/article/details/6963957

本人常用,也比较推崇的当然属中科院计算所研发的ICTCLAS分词工具包(官方下载地址:http://ictclas.nlpir.org/ 目前已经发布了2013版)。

本文的目的是介绍如何快速的在C++项目中使用ICTCLAS这个工具包。网上大部分介绍使用ICTCLAS的文章都是介绍如何在VS中配置动态链接库,本人嫌这样配置来配置去太麻烦,这样不利用新手快速学会使用ICTCLAS。(当然,在一个C++大项目中,最好的方式当然是在VS中配置啦,不过本人一般做就是在做论文实验时才用到ICTCLAS)。

 

好了,废话不多说了,下面进入正式内容:

一、下载ICTCLAS工具包(以2013版为例),解压后得到目录下有如下子目录:


这里只介绍我们用得到的目录和文件。doc目录很重要,里面有词性集的说明,还有ICTCLAS的使用说明文档,这是非常重要的。

bin目录中有名为NLPIR.dll的动态库文件,这是我们需要的。include目录里有NLPIR.h头文件,这也是我们需要用到的文件。Data目录里的所有内容都是我们需要的,所有整个Data目录就是我们需要的。

 

二、现在我们需要做的是把Data目录,bin目录下的NLPIR.dll,include目录下的NLPIR.h 这三样东西拷贝到我们C++工程目录下。

比如,本人建了的C++工程名为TerminologyExtractionUseCRF,拷贝后,它下面的文件结构如下图示:


(被选中的文件即为拷贝而来的,细心的人可能还看到了里面有个NLPIR.lib,这个文件是可拷贝,也可不可拷贝的,本人试过,没有它的存在一样能分词,如果你遇到什么意想不到的问题,可以考虑把它也拷贝进来。)

 

三、已经拷贝好了后,在C++文件中需要加上这样几行代码:

#include “NLPIR.h”   //这是头文件

#pragma comment(lib,"NLPIR.lib")   //没有分号哦,这是包含库文件

 

四、接下来,你就可以参考Doc目录下的使用说明文档进行随心所欲得使用ICTCLAS这个强大的工具包啦!

 

为了使你更清晰明白,我还是把我的main.cpp代码贴出来,让你看看ICTCLAS的初始化,退出,以及分词的代码吧。

#include <iostream>
#include <fstream>
#include <string>
using namespace std;
#include "NLPIR.h"
#pragma comment(lib,"NLPIR.lib")
int main(int argc,char *argv[])
{
 ifstream fin("36.txt",ios::in);
 if(!fin){cout<<"36.txt file read error!"<<endl; return -1;}
 string text,tempstr;
 while (!fin.eof())
 {
  getline(fin,tempstr);
  text += tempstr+"\r\n";
 }
 //cout<<text<<endl;
 if (!NLPIR_Init())
 {
  cout<<"NLPIR_Init() error!"<<endl;
  return -1;
 }
 string resulttext = NLPIR_ParagraphProcess(text.c_str(),1);
 cout<<resulttext<<endl;
 NLPIR_Exit();
 return 0;
}


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值