首页 > 代码库 > 汉语自动分词
汉语自动分词
调用“海量智能分词”提供的动态链接库,实现汉语自动分词,并且搭建图形界面用于操作和显示。
首先下载“海量智能分词”软件,解压后拷出include文件夹下的HLSegFunc.h、HLPubDef.h和dll&lib文件夹下的HLSSplit.dll、HLSplitWord.dat、HLSSplit.lib。
图形界面使用MFC搭建,新建基于对话框的MFC应用程序,同时要将HLSSplit.lib、HLSegFunc.h、HLPubDef.h拷贝至工程目录下,将HLSSplit.dll、HLSplitWord.dat拷至Debug目录下。
因为下载海量智能分词链接库可能已经过期,故为了正常运行,需要改动一下计算机时间,我们使用的需要将系统时间调制2005年。
搭建界面如下:
“分词”按钮的响应函数如下:
void CTest20Dlg::OnBnClickedButton2(){ CString strText; // 存放要进行分词的字符串 GetDlgItemText(IDC_EDIT1,strText); bool bInitDict = HLSplitInit(); if(!bInitDict) { MessageBox("初始化分词字典失败"); return ; } HANDLE hHandle = HLOpenSplit (); //创建分词句柄 if(hHandle == INVALID_HANDLE_VALUE) {//创建分词句柄失败 MessageBox("创建分词句柄失败"); HLFreeSplit () ;//卸载分词字典 return ; } int iExtraCalcFlag = 0; //附加计算标志,不进行附加计算 LPCSTR lpText = (LPCSTR)strText ; bool bSuccess = HLSplitWord (hHandle, lpText, iExtraCalcFlag); CString strResult = ""; if(bSuccess) {//分词成功 int nResultCnt = HLGetWordCnt (hHandle);//取得分词个数 for(int i = 0 ; i < nResultCnt ; i++) {//取得分词结果 SHLSegWord* pWord ;//存放分词结果中的一个词 pWord = HLGetWordAt (hHandle , i) ;//取得一个分词结果 strResult += pWord->s_szWord; strResult +=" "; //以空格分割分词结果中的每个词 } HLCloseSplit (hHandle) ;//关闭分词句柄 } else {//分词失败 MessageBox("分词失败"); HLCloseSplit (hHandle) ;//关闭分词句柄 HLFreeSplit () ;//卸载分词字典 return ; } HLFreeSplit () ; //卸载分词词典 SetDlgItemText(IDC_EDIT2,strResult); }
“载入文件”按钮响应函数见上篇博客《MFC显示文本文档》
效果如下:
完整的工程下载:http://download.csdn.net/detail/u010839382/8313415
汉语自动分词
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。