海量智能分词研究版接口手册.docx
- 文档编号:27030808
- 上传时间:2023-06-25
- 格式:DOCX
- 页数:23
- 大小:23.71KB
海量智能分词研究版接口手册.docx
《海量智能分词研究版接口手册.docx》由会员分享,可在线阅读,更多相关《海量智能分词研究版接口手册.docx(23页珍藏版)》请在冰豆网上搜索。
海量智能分词研究版接口手册
海量智能分词研究版
接口手册
天津市海量科技发展有限公司编写
二○○五年四月
产 品 说 明3
功能概述3
产品清单3
技术支持4
第一章 系统环境要求5
1.1环境要求5
第二章 基本使用方法6
2.1.1分词过程伪码6
2.1.2标注词性伪码7
2.1.3计算关键词伪码8
2.1.4计算语义指纹伪码8
第三章分词基础件提供的接口描述10
3.1.基本接口10
3.2.分词接口11
3.3.获取分词结果接口12
3.4.其他接口13
附 录17
附录A 功能基础件概念诠释17
附录B 术语列表19
产 品 说 明
功能概述
✧词形切分
对给定的字序列文本,自动切分为词序列文本。
✧标注词性
对切分后的词标注词性
✧计算关键词
对给定的序列文本,计算表现本文本内容的关键词
✧计算语义指纹
对给定的序列文本,计算语义指纹。
产品清单
Ø词典文件
HLSplitWord.dat
Ø动态链接库文件
Release版:
HLSSplit.dll
Ølib库文件
Release版:
HLSSplit.lib
Ø源码
HLSegFunc.h
HLPubDef.h
Ø说明文件
海量智能分词研究版接口手册.doc
技术支持
电话:
86(010)
传真:
86
E-mail:
网站:
论坛:
bbs/main.htm
联系人:
杨智炜
通信地址:
北京市海淀区中关村东路18号财智大厦B2009
第一章 系统环境要求
1.1环境要求
⏹软件开发环境:
VC++6.0
⏹软件支持环境:
Windows2000及其以后版本
⏹硬件支持环境:
最低配置:
128M内存,PII400
⏹提供的开发接口:
C/C++
第二章 基本使用方法
2.1.1分词过程伪码
//初始化分词词典
boolbInitDict=HLSplitInit();
if(!
bInitDict)
{
AfxMessageBox(_T(“初始化分词字典失败!
”));
return;
}
CStringstrText;//存放要进行分词的字符串
…………
………..
HANDLEhHandle=HLOpenSplit();//创建分词句柄
if(hHandle==INVALID_HANDLE_VALUE)
{//创建分词句柄失败
AfxMessageBox(_T("创建分词句柄失败!
"));
HLFreeSplit();//卸载分词字典
return;
}
intiExtraCalcFlag=0;//附加计算标志,不进行附加计算
LPCSTRlpText=(LPCSTR)strText;
boolbSuccess=HLSplitWord(hHandle,lpText,iExtraCalcFlag);
CStringstrResult;
strResult=_T(“”);
if(bSuccess)
{//分词成功
intnResultCnt=HLGetWordCnt(hHandle);//取得分词个数
for(inti=0;i {//取得分词结果 SHLSegWord*pWord;//存放分词结果中的一个词 pWord=HLGetWordAt(hHandle,i);//取得一个分词结果 strResult+=pWord->m_szWord; strResult+=_T(“”);//以空格分割分词结果中的每个词 } HLCloseSplit(hHandle);//关闭分词句柄 } else {//分词失败 AfxMessageBox(_T(“分词失败! ”)); HLCloseSplit(hHandle);//关闭分词句柄 HLFreeSplit();//卸载分词字典 return; } HLFreeSplit();//卸载分词词典 ……….. ………… 2.1.2标注词性伪码 //略去分词初始化部分 HANDLEhHandle=HLOpenSplit();//创建分词句柄 if(hHandle==INVALID_HANDLE_VALUE) {//创建分词句柄失败 AfxMessageBox(_T("创建分词句柄失败! ")); HLFreeSplit();//卸载分词字典 return; } intiExtraCalcFlag=HL_CAL_OPT_POS;//附加计算标志 LPCSTRlpText=(LPCSTR)strText; boolbSuccess=HLSplitWord(hHandle,lpText,iExtraCalcFlag); CStringstrResult; strResult=_T(“”); if(bSuccess) {//分词成功 intnResultCnt=HLGetWordCnt(hHandle);//取得分词个数 for(inti=0;i {//取得分词结果 SHLSegWord*pWord;//存放分词结果中的一个词 pWord=HLGetWordAt(hHandle,i);//取得一个分词结果 CStringstrWord(pWord->s_szWord); if((pWord->s_dwPOS&NATURE_D_N)==NATURE_D_N)//如果是名词,在结果中标出 strWord+=_T(“\n”); strResult+=strWord; strResult+=_T(“”);//以空格分割分词结果中的每个词 } HLCloseSplit(hHandle);//关闭分词句柄 2.1.3计算关键词伪码 //略去分词初始化部分 HANDLEhHandle=HLOpenSplit();//创建分词句柄 if(hHandle==INVALID_HANDLE_VALUE) {//创建分词句柄失败 AfxMessageBox(_T("创建分词句柄失败! ")); HLFreeSplit();//卸载分词字典 return; } intiExtraCalcFlag=HL_CAL_OPT_KEYWORD;//附加计算标志 LPCSTRlpText=(LPCSTR)strText; boolbSuccess=HLSplitWord(hHandle,lpText,iExtraCalcFlag); intnKeyCnt=HLGetFileKeyCnt(hHandle);//获取关键词个数 for(intj=0;j { SHLSegWord*pKey=HLGetFileKeyAt(hHandle,j);//获得单个关键词 CStringstrKey; strKey.Format(“%s%f”,pKey->s_szWord,pKey->s_fWeight); ………………………. } HLCloseSplit(hHandle);//关闭分词句柄 2.1.4计算语义指纹伪码 //略去分词初始化部分 HANDLEhHandle=HLOpenSplit();//创建分词句柄 if(hHandle==INVALID_HANDLE_VALUE) {//创建分词句柄失败 AfxMessageBox(_T("创建分词句柄失败! ")); HLFreeSplit();//卸载分词字典 return; } CstringstrFinger; intiExtraCalcFlag=HL_CAL_OPT_FINGER;//附加计算标志 LPCSTRlpText=(LPCSTR)strText; boolbSuccess=HLSplitWord(hHandle,lpText,iExtraCalcFlag); LPBYTEpData; unsignedlongnDataLen; if(HLGetFingerM(hHandle,pData,nDataLen)) { for(intj=0;j { CStringstrFData; strFData.Format("%2.2x",pData[j]); strFinger+=strFData; } } HLCloseSplit(hHandle);//关闭分词句柄 输出结果(语义指纹): f9246c3eaffce0ed562fa7536b12ea11 第三章 分词基础件提供的接口描述 3.1.基本接口 基本接口是指使用此软件包所需的基本功能函数,共包括四个接口: 1.boolHLSplitInit(constchar*lpszDataFilePath=NULL) 功能描述: 初始化海量分词系统,加载分词用数据。 参数说明: lpszDataFilePath[IN]分词数据文件路径(不包括文件名)。 当lpszDataFilePath为NULL时, 先搜索内存中是否存在分词数据字典,若存在不再加载;若不存在,加载DLL目录下的字典文件。 返回值: 成功标志,成功返回true,否则返回false。 说明: 如果初始化失败,通常的原因是初始化路径不正确或数据文件遭到破坏。 初始化成功后,可进行多次分词,在不再进行分词时,调用HLFreeSplit函数卸载分词系统。 其他相关函数: HLFreeSplit 使用例程: 参见HLCloseSplit 2.voidHLFreeSplit(void); 功能描述: 卸载海量自动中文分词系统,释放分词系统所占资源。 参数说明: 无。 返回值: 无。 其他相关函数: HLSplitInit 使用例程: 参见HLCloseSplit 3.HANDLEHLOpenSplit(); 功能描述: 创建自动中文分词结果句柄。 参数说明: 无 返回值: 返回创建的分词结果句柄,创建失败返回INVALID_HANDLE_VALUE。 说明: 调用此接口前请保证分词词典已加载成功。 其他相关函数: HLCloseSplitHLSplitWordHLGetWordCnt 使用例程: 参见HLCloseSplit 4.voidHLCloseSplit(HANDLEhHandle); 功能描述: 关闭分词结果句柄,释放分词结果所占资源。 参数说明: hHandle[IN]创建的分词结果句柄。 返回值: 无。 说明: 调用此接口前请保证分词词典已加载成功;在每次调用HLOpenSplit后调用此函数释放分词所占资源。 其他相关函数: HLOpenSplit 使用例程: …… if(! HLSplitInit()) { AfxMessageBox(_T(“海量分词初始化失败! ”)); return; } …… //创建分词句柄 HANDLEhHandle=HLOpenSplit(); if(hHandle==INVALID_HANDLE_VALUE) {//创建分词句柄失败 AfxMessageBox(_T(“创建分词句柄失败! ”)); HLFreeSplit();//卸载分词字典 return; } //分词并对分词结果进行处理 …… //关闭分词句柄 HLCloseSplit(hHandle); …… //卸载海量分词 HLFreeSplit(); 3.2.分词接口 以下提供一个分词接口: 1.boolHLSplitWord(HANDLEhHandle,LPCSTRlpText,intiExtraCalcFlag=0); 功能描述: 对指定字符串进行分词。 参数说明: hHandle[IN]分词结果句柄。 lpText[IN]要分词的字符串。 iExtraCalcFlag[IN]附加计算标志,默认为0,详细信息见附加计算标志。 返回值: 返回成功标志。 成功返回true,否则返回false。 说明: 调用此接口前请保证分词词典已加载成功,并且分词结果句柄有效。 其他相关函数: HLOpenSplitHLCloseSplit 使用例程: …… if(! HLSplitInit()) { AfxMessageBox(_T(”海量分词初始化失败! ”)); return; } …… //创建分词句柄 HANDLEhHandle=HLOpenSplit(); if(hHandle==INVALID_HANDLE_VALUE) { AfxMessageBox(_T(“创建分词句柄失败! ”)); HLFreeSplit();//卸载分词字典 return; } LPCSTRlpText=_T(“海量分词软件包”); boolbRet=HLSplitWord(hHandle,lpText,0); //对分词结果进行处理 …… //关闭分词句柄 HLCloseSplit(hHandle); …… //卸载海量分词 HLFreeSplit(); 3.3.获取分词结果接口 获得分词结果接口是用于对分词后的结果进行获取的相关接口,共有两个: 1.intHLGetWordCnt(HANDLEhHandle); 功能描述: 得到分词结果中的词的个数。 参数说明: hHandle[IN]分词结果句柄。 返回值: 分词结果的个数,小于0表示失败。 说明: 调用此接口前请保证分词词典已加载成功,并且分词结果句柄有效。 其他相关函数: HLOpenSplitHLCloseSplitHLSplitWord 使用例程: 参见分词过程伪码描述。 2.SHLSegWord*HLGetWordAt(HANDLEhHandle,intiIndex); 功能描述: 得到指定的分词结果。 参数说明: hHandle[IN]分词结果句柄。 Iindex[IN]分词结果下标。 返回值: 分词结果,返回NULL表示失败。 说明: 调用此接口前请保证分词词典已加载成功,并且分词结果句柄有效。 其他相关函数: HLOpenSplitHLCloseSplitHLSplitWordHLGetWordCnt 使用例程: 参见分词过程伪码描述。 3.4.其他接口 本软件包提供了用户自定义词典和关键词、语义指纹计算的相关接口,共五个: 1.boolHLOpenUsrDict(LPCSTRlpUserDictName); 功能描述: 加载用户自定义词典。 参数说明: lpUserDictName[IN]字典的全路径名。 返回值: 返回成功标志,成功返回true,否则返回false。 说明: 在调用分词之前调用此接口,用户自定义词典才会参与到分词中,否则不会参与分词。 用户自定义词典装载成功后,不能再次装载其他用户自定义词典,要想再装载,先卸载当前的用户自定义词典,然后再装载。 自定义字典的格式为: 每行一个词,每行以回车换行结束,不处理多余的空格。 其他相关函数: HLFreeUsrDict 使用例程: 参见HLFreeUsrDict 2.voidHLFreeUsrDict(); 功能描述: 卸载用户自定义词典。 参数说明: 无。 返回值: 无。 说明: 当不希望用户自定义词典参与分词时调用此接口,另外当调用HLFreeSplit后用户自定义词典也会被卸载。 其他相关函数: HLOpenUsrDict 使用例程: …… if(! HLSplitInit()) { AfxMessageBox(_T(“海量分词初始化失败! ”)); return; } …… //加载用户自定义词典 if(! HLOpenUsrDict(_T(“C: \\MyDict.txt”))) { AfxMessageBox(_T(“加载用户自定义词典失败! ”)); return; } …… //创建分词句柄 HANDLEhHandle=HLOpenSplit(); if(hHandle==INVALID_HANDLE_VALUE) { AfxMessageBox(_T(“创建分词句柄失败! ”)); renturn; } LPCSTRlpText=_T(“海量分词软件包”); boolbRet=HLSplitWord(hHandle,lpText,0); //对分词结果进行处理 …… //关闭分词句柄 HLCloseSplit(hHandle); …… //卸载用户自定义词典 HLFreeUsrDict(); //卸载海量分词 HLFreeSplit(); 3.intHLGetFileKeyCnt(HANDLEhHandle); 功能描述: 获取关键词个数。 参数说明: hHandle[IN]分词句柄 返回值: 关键词个数。 说明: 调用此接口时要保证已经调用了分词接口并且分词句柄未释放。 其他相关函数: 无 使用例程: 参见计算关键词伪码 4.SHLSegWord*HLGetFileKeyAt(HANDLEhHandle,intiIndex); 功能描述: 获取指定下标的关键词 参数说明: hHandle[IN]分词句柄 iIndex[IN]指定下标 返回值: 获取指定的关键词 说明: 调用此接口前请保证分词已加载成功,并且分词结果句柄有效, 此函数只对于在分词函数中置了计算关键词标志有效. 其他相关函数: 无 使用例程: 参见计算关键词伪码 5.boolHLGetFingerM(HANDLEhHandle,LPBYTE&rpData,DWORD&rdwLen); 功能描述: 获取语义指纹 参数说明: hHandle[IN]分词句柄 rpData[OUT]存放语义指纹的指针 rdwLen[OUT]语义指纹长度 返回值: 是否成功 其他相关函数: 无 使用例程: 参见计算语义指纹伪码 3.5其他结构说明 1.SHLSegWord结构说明 structSHLSegWord { char*s_szWord;//字符串 DWORDs_dwPOS;//词性标志 floats_fWeight;//关键词权重,如果不是关键词,权重为0 SHLSegWord() { Reset(); }; voidReset() { s_szWord=NULL; s_dwPOS=0; s_fWeight=0; }; }; 2.词性说明 宏定义 取值 描述 NATURE_D_A 形容词形语素 NATURE_D_B 区别词区别语素 NATURE_D_C 连词连语素 NATURE_D_D 0x08000000 副词副语素 NATURE_D_E 0x04000000 产品词 NATURE_D_F 0x02000000 方位词方位语素 NATURE_D_I 0x01000000 成语 NATURE_D_L 0x00800000 习语 NATURE_A_M 0x00400000 数词数语素 NATURE_D_MQ 0x00200000 数量词 NATURE_D_N 0x00100000 名词名语素 NATURE_D_O 0x00080000 拟声词 NATURE_D_P 0x00040000 介词 NATURE_A_Q 0x00020000 量词量语素 NATURE_D_R 0x00010000 代词代语素 NATURE_D_S 0x00008000 处所词 NATURE_D_T 0x00004000 时间词 NATURE_D_U 0x00002000 助词助语素 NATURE_D_V 0x00001000 动词动语素 NATURE_D_W 0x00000800 标点符号 NATURE_D_X 0x00000400 非语素字 NATURE_D_Y 0x00000200 语气词语气语素 NATURE_D_Z 0x00000100 状态词 NATURE_A_NR 0x00000080 人名 NATURE_A_NS 0x00000040 地名 NATURE_A_NT 0x00000020 机构团体 NATURE_A_NX 0x00000010 外文词 NATURE_A_NZ 0x00000008 其他专名 NATURE_D_H 0x00000004 前接成分 NATURE_D_K 0x00000002 后接成分 附 录 附录A 功能基础件概念诠释 海量科技: 中文信息处理基础件的供应商。 海量科技: 业界首家提出“功能基础件”概念的公司。 一、什么是“功能基础件”? 功能基础件不是一种产品,是一种理念。 功能基础件是厂商利用专有技术,采用标准化、对象化、构件化的设计思想,设计开发出的能够完成独立功能、应用广泛、可供二次开发的软件产品,以及为发挥产品在目标系统中的最优品质而提供的特定服务。 其服务包括: 目标系统架构咨询、辅助开发、技术培训、售后支持等。 简称基础件。 基础件的目标: 帮助合作伙伴成功! 基础件的特点: 是一种“共生”理念: 帮助合作伙伴成功。 具有独立功能、应用广泛、可供二次开发的软件产品。 包含为使目标系统性能最优而提供的特定服务。 二、为什么需要“功能基础件”? 功能基础件模式的出现符合社会分工专业化发展趋势! “功能基础件”帮助合作伙伴降低其设计风险。 “功能基础件”帮助合作伙伴降低其运营成本。 “功能基础件”帮助合作伙伴满足其用户复杂的个性化需求。 “功能基础件”有利于合作伙伴专注于自身核心竞争力。 三、合作方式 根据合作伙伴需求,双方达成合作意向。 商务谈判,达成合作协议。 海量科技提供基础件发布版,并提供下列服务: 架构咨询 辅助开发 技术培训 合作成功,海量科技并提供下列服务: 售后服务(维护与升级) ⏹海量中文智能分词功能基础件 海量中文智能分词功能基础件是海量科技在中文分词技术基础之上推出的分词准确率高、接口方便灵活的便于二次开发的软件包,以及为使软件包在目标系统中实现最优品质而提供的特定服务。 其服务
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 海量 智能 分词 研究 接口 手册