搜索汉语分词技术浅析

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
依次循环读取字符 ch{ 如果 ch 非数字或是数字后缀 பைடு நூலகம் 数词分词结束 中断循环
}
}
} 3 地名、人名识别
人名根据前缀识别,地名根据后缀识别 ;只有在词典中找不 到的词才进行地名、人名分词操作。
人名前缀有“丁、万、万俟、上官、东方、乔、于、令狐、仲孙、 任、何、余、候、傅、公冶、公孙、公羊、、易、曹、曾、朱、李、 杜、杨、林、梁、阎、陆、陈、雷、韩、顾、马、高、魏、鲜于、 黄、黎、龙、龚…”。
分词包括以下几个方面 : 中文词典
中文词典是一个采用双数组 Trie 结构的内存存储结构体,双 数组 Trie 结构的特性使得词组查找达到极高的效率。
中文分词 为了尽可能减少查询盲区,中文分词采用正向最小切分算法 结合回溯切分算法,把可能的词组都分出来。
英文分词 采用空格和标点符号切分。
数量分词 发现数量词(阿拉伯数字、中文数字、罗马数字等)、数量 词前缀和后缀时进行数量分词,遇到非数量词时则结束。
5.1 在分析未知词汇时有丢字现象 原因 : 在未知词汇分词结束时,上下文游标已经跳到下一个词的起 始位置,造成最后一个字没有被识别出来。 解决方法 : 在每次进行新的分词时进行判断,如果上一个词是未知词汇, 则游标返回一个汉字(2 个字节)进行上一个词的重新输出 ;然 后再前进一个汉字(2 个字节)进行后续分词工作。 5.2 分词时出现不可理解的歧义问题 原因 : 某一个词前一个字是前面词的最后一个字,后一个字是其后 词汇的第一个字 ;此时大多情况是不需要分出该词的 ;但是由于 分词算法是不放弃任何成词可能情况,所以没有办法进行更好的 处理。 例如 :中国人民共和国人体写真,分词结果为 : 中国人民共和国国人人体写真 其中“国人”是没必要分出来的。 解决方法 : 暂时还没有好的解决方法,但是这个对分词整体影响不大。 5.3 在分出的词中有重复现象 原因 :
‖125‖
网络天地
} 4 二分法处理生词
在处理地名和人名都不成功的情况下,开始对生词进行二分 处理。
算法描述 : 临时存储 tmp=null 循环读取未分词字符 ch{
If(tmp==null){ tmp=ch ;
continue ;
} 输出二分词 tmp+ch ; tmp=ch ;
} 5 分词问题总结
分词出现重叠现象,是由于分词算法是不放弃任何成词可能 情况造成的。
解决方法 : 暂时未解决,考虑到将来搜索的准确率(搜出用户最想要的 数据);确定保留该现象。 5.4 中文分词 Linux 移植 问题 : 由 windows 迁移到 linux 时造成中文分词无法使用。 原因 : 由于 lseek 函数在 Linux 和 Windows 中执行出现不同结果造 成词典加载不完整。 解决方法 : 替换 lseek 函数,读取文件时在内存缓存中处理 gbk 字节剩 余问题。 6 中文分词的应用 中文分词是其他中文信息处理的基础,搜索引擎只是中文分 词的一个应用。其他的比如机器翻译(MT)、语音合成、自动分 类、自动摘要、自动校对等等,都需要用到分词,而分词准确性 对搜索引擎来说十分重要,但如果分词速度太慢,即使准确性再 高,对于搜索引擎来说也是不可用的,因为搜索引擎需要处理数 以亿计的网页,如果分词耗用的时间过长,会严重影响搜索引擎 内容更新的速度。因此对于搜索引擎来说,分词的准确性和速度, 二者都需要达到很高的要求。目前研究中文分词的大多是科研院 校,IBM 研究院、微软中国研究院等都有自己的研究队伍,而真 正专业研究中文分词的商业公司除了海量科技以外,几乎没有了。 科研院校研究的技术,大部分不能很快产品化,而一个专业公司 的力量毕竟有限,看来中文分词技术要想更好的服务于更多的产 品,还有很长一段路。
图1 词典内存存储结构 说明 :节点背景为灰色的表明从根节点到该节点所有的字可 以组成一个词
零壹贰叁肆伍陆柒捌玖拾百千万亿拾佰仟萬億兆卅廿 ⅠⅡⅢⅣⅤⅥⅧⅨⅩⅪ”的数字外,还包括数字连接符”,./ :Ee 点”,数字前缀”-+$ ¥第”,数字后缀”%‰几多余半”。
算法描述 : 读入字符 ch 如果 ch 是数字或数字前缀 { // 进行数量分词操作
搜索汉语分词技术浅析
◆孙海涛
网络天地
近年来,网络发展迅猛,出现了很多新的网络名词,如云计算、 虚拟技术和互联网 + 等,国家也非常重视中国互联网的发展。在 这样一个大数据时代下,想要准确、快速的获取自己需要的东西 显得特别重要,本文就搜索引擎技术的一种核心技术——中文分 词技术,本文以数量分词、地名人名识别、路径以及语义等为基础, 论述了分词的相关方法和策略,并对中文分词的应用进行了分析。
搜索引擎技术的研究,国外比中国要早近十年,从最早的 Archie,到后来的 Excite,以及 altvista、overture、google 等搜索 引擎面世,搜索引擎发展至今,已经有十几年的历史,而国内开 始研究搜索引擎是在上世纪末本世纪初。虽然在国外搜索引擎技 术早就开始研究,但在国内还是陆续涌现出优秀的搜索引擎,国 内的搜索引擎已经和国外的搜索引擎效果上相差不远。之所以能 形成这样的局面,有一个重要的原因就在于中文和英文两种语言 自身的书写方式不同,这其中对于计算机涉及的技术就是中文分 词。
人名识别 人名识别首先根据姓进行查询,如果遇到姓则进行人名分词。
地名识别 地名识别应该在人名识别失败时,进行后缀匹配,匹配成功 则进行地名分词。
二分法 二分法是在所有分词失败时的补充算法,该方法比较原始, 但有一定的实用功能。 整体分词流程 先进行分词操作,分词不成功时进行数量分词,数量分词不 成功时进行人名地名分词、如果还不成功则进行二分操作。 1 中文词典 需求 :高效的查询功能,用户自定义词典功能。 设计要点 :
词典为纯文本数据 在内存中采用多叉树结构 预留用户自定义接口 词典内存存储结构 : 图 1 是以“中”字为根节点的内存词典存储结构,其包含了 12 个词组 ;按照上图所示结构去判断“中日关系”四个字是否是 一个词,只需要进行 4 次对比即可完成,而采用普通对比操作则 至少需要 12 次循环,每次循环都要进行匹配判断。 2 数量分词 数量分词包括除”0123456789 ○一二两三四五六七八九十
地名后缀有“乡、井、亭、党、区、厅、县、园、塔、家、寺、 局、巷、市、弄、所、斯基、楼、江、河、觀、观、诺夫、路、部、 镇、阁、山、子、娃…”。
算法描述 : 读入字符 ch 如果 ch 是人名前缀 { // 进行人名分词操作 输出人名 中断函数
} 如果有符合的后缀 { // 进行地名分词
输出地名 中断函数
相关文档
最新文档