汉语自动分词

调用“海量智能分词”提供的动态链接库,实现汉语自动分词,并且搭建图形界面用于操作和显示。

首先下载“海量智能分词”软件,解压后拷出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

时间: 2024-08-30 05:48:25

汉语自动分词的相关文章

文本挖掘:灵玖大数据汉语智能分词技术

汉语分词(Chinese Word Segmentation) 指的是将一个汉字序列切分成一个一个单独的词.分词就是将连续的字序列按照一定的规范重新组合成词序列的过程.中文分词是其他中文信息处理的基础,搜索引擎只是中文分词的一个应用.其他的比如机器翻译(MT).语音合成.自动分类.自动摘要.自动校对等等,都需要用到分词. 汉语自动分词是目前中文信息处理领域公认的一大难题,也是自然语言理解研究领域中最基本的一个环节.中文自动分词就是将用自然语言书写的文章.句段经计算机处理后,以词为单位逐词输出,为

灵玖Nlpir Parser智能挖掘汉语精准分词

在中文自然语言处理中,词是最小的能够独立活动的有意义的语言成分.汉语是以字为基本书写单位,词语之间没有明显的区分标记,因此进行中文自然语言处理通常是先将汉语文本中的字符串切分成合理的词语序列,然后再在此基础上进行其它分析处理.中文分词是中文信息处理的一个基础环节,已被广泛应用于中文文本处理.信息提取.文本挖掘等应用中.分词涉及许多方面的问题,主要包括: (1). 核心词表问题:许多分词算法都需要有一个核心的(通用.与领域无关的)词表.凡在该词表中的词,分词时就应该切分出来.但对于哪些词应当收进核

《统计自然语言处理》读书笔记 一.基础知识及概念介绍

最近准备学习自然语言处理相关的知识,主要参考<统计自然语言处理·宗成庆>和<Natural Language Processing with Python>,推荐大家阅读.第一篇主要介绍的是NLP的基础知识和概念介绍,其实也是我关于NLP的读书笔记吧,希望对大家有所帮助. 一. 概念介绍 自然语言处理 自然语言处理(Natural Language Processing,简称NLP)技术的产生可追溯到20世纪50年代,它是一门集语言学.数学(代数.概率).计算机科学和认知科学等于一

自然语言处理学习笔记(1)——绪论

暑假开始研究NLP,先从宗成庆老师的<统计自然语言处理>开始学起. 一.语言:语言是由语音.词汇和语法构成的,语音和文字是构成语言的两个基本属性,语音是语言的物质外壳,文字则是记录语言的书写符号系统. 二.语音学:1)发音语音学(articulatory phonetics) 2)声学语音学(acoustic phonetics) 3)听觉语音学(auditory phonetics) 4)仪器语音学(instrumental phonetics) 三.自然语言处理的概念:利用计算机为工具对人

中文分词原理和实现

三大主流分词方法:基于词典的方法.基于规则的方法和基于统计的方法. 1.基于规则或词典的方法 定义:按照一定策略将待分析的汉字串与一个"大机器词典"中的词条进行匹配,若在词典中找到某个字符串,则匹配成功. 按照扫描方向的不同:正向匹配和逆向匹配 按照长度的不同:最大匹配和最小匹配 1.1正向最大匹配思想MM 从左向右取待切分汉语句的m个字符作为匹配字段,m为大机器词典中最长词条个数. 查找大机器词典并进行匹配: 若匹配成功,则将这个匹配字段作为一个词切分出来. 若匹配不成功,则将这个匹

从决策树学习谈到贝叶斯分类算法、EM、HMM --别人的,拷来看看

从决策树学习谈到贝叶斯分类算法.EM.HMM 引言 最近在面试中,除了基础 &  算法 & 项目之外,经常被问到或被要求介绍和描述下自己所知道的几种分类或聚类算法(当然,这完全不代表你将来的面试中会遇到此类问题,只是因为我的简历上写了句:熟悉常见的聚类 & 分类算法而已),而我向来恨对一个东西只知其皮毛而不得深入,故写一个有关数据挖掘十大算法的系列文章以作为自己备试之用,甚至以备将来常常回顾思考.行文杂乱,但侥幸若能对读者起到一点帮助,则幸甚至哉. 本文借鉴和参考了两本书,一本是T

大数据信息挖掘中文分词是关键

在中文自然语言处理中,词是最小的能够独立活动的有意义的语言成分.汉语是以字为基本书写单位,词语之间没有明显的区分标记,因此进行中文自然语言处理通常是先将汉语文本中的字符串切分成合理的词语序列,然后再在此基础上进行其它分析处理.中文分词是中文信息处理的一个基础环节,已被广泛应用于中文文本处理.信息提取.文本挖掘等应用中.分词涉及许多方面的问题,主要包括: (1). 核心词表问题:许多分词算法都需要有一个核心的(通用.与领域无关的)词表.凡在该词表中的词,分词时就应该切分出来.但对于哪些词应当 收进

浅谈分词算法(1)分词中的基本问题

[TOC] 前言 分词或说切词是自然语言处理中一个经典且基础的问题,在平时的工作中也反复的接触到分词问题,用到了不同的模型,不同的方法应用在各个领域中,所以想对分词问题做一个系统的梳理.大多数分词问题主要是针对类似汉语.韩语.日语等,词语之间并没有天然的分割,而像英语等,句子中是带有天然的分割的.但是英语也会涉及到分词问题,比如实体识别.词性标注等内容.而本系列文章更多的是讨论汉语中的分词问题,首先我们从分词问题的基本出发,之后从传统的词典分词到将分词转为序列标注问题的分词,以及最新的结合深度学

seg:NLP之前向最大匹配分词

完整代码实现放在我的github上:click me 一.任务要求 实现一个基于词典与规则的汉语自动分词系统. 二.技术路线 采用正向最大匹配(FMM)方法对输入的中文语句进行分词,具体的实现可以分为下面几个步骤: 对输入的一个中文语句,首先在程序中判断并确保语句中不包含数字或者字母 在句子中的当前位置开始取与词典dic_ce.txt中最大匹配长度的词作为一个分词段,如果没有在词典中成功匹配到就将句子在当前匹配位置的这个字作为一个分词段并将匹配位置向前挪一个位置 重复第2步直到匹配位置移到句末