关于百度中文分词系统研究
汉语分词技术研究现状与应用展望

续的字符串( , C )输 出是汉语的词 串( . CC C… ,
2 1 通用 词表和 切分 规范 .
… ) 这里 , 可 以是单字词也可 以是多字 ,
词. 那么 , 在这个过程中, 我们所要解决 的关键问题是什么 , 我们又有什么样 的解决方案呢? 至今为止 , 分词系统仍然没有一个统一的具有权威性的分词词表作为分词依据. 这不能不说是分词系
要 解决 的重要 问题 ,
除了同音词的自动辨识 , 汉语的多音字 自动辨识仍然需要分词 的帮助. 例如 : 校 、 、 、 、 等都 “ 行 重 乐 率” 是多音字. 无论是拼音 自动标注还是语音合成都需要识别出正确的拼音. 而多音字的辨识可以利用词以及
句子中前后词语境 , 即上下文来实现. 如下面几个多音字都可以通过所在的几组词得 以定音 : ) 、 z n ) 重(hn ) 快乐(e/ jo 对 行( ag 列/ x g 进 重(h g 量/ cog 新、 i n o 1)音乐 (u ) 率 (h a) 效 ye 、 sui领/
率( ) 1. v
2 汉语分词所面临 的关键 问题
汉语分词是由计算机 自动识别文本中的词边界的过程. 从计算机处理过程上看 , 分词系统的输入是连
定义两个字的互信息计算两个汉字结合程互信息体现了汉字之间结合关系的紧密程度需要大量的训练文本用以建立模型的参数到底哪种分词算法的准确度更高目前尚无定论对于任何一个成熟的分单独依靠某一种算法来实现都需要综合不同的算法汉语分词技术的应用国内自80年代初就在中文信息处理领域提出了自动分词从而产生了一些实用京航空航天大学计算机系1983年设计实现的cdws分词系统是我国第一个实用的自度约为625开发者自己测试结果下同早期分词系统机系研制的abws自动分词系统和北京师范大学现代教育研究所研制的书面汉语这些都是将新方法运用于分词系统的成功尝试具有很大的理论意义随后比较有代表性的有清华大学seg和segtag分词系统复旦分词系统州大学改进的mm分词系统北大计算语言所分词系统分词和词类标注相结合在自然语言处理技术中中文处理技术比西文处理技术要落后很大一段距离文不能直接采用就是因为中文必需有分词这道工序汉语分词是其他中文信息处理是汉语分词的一个应用语音合成自动分类自动摘要要用到分词因为中文需要分词可能会影响一些研究但同时也为一些企业带来机会参考文献汉语信息处理词汇01部分朱德熙
基于统计语言模型的中文分词算法研究

基于统计语言模型的中文分词算法研究中文是世界上使用人数最多的语言之一,它的排列方式和英语等西方语言有很大的不同,因此分词是中文自然语言处理的重要一环。
中文分词的主要目标是将一段连续的中文文本切分成单个的词语。
目前,基于统计语言模型的中文分词算法是最为流行和使用广泛的算法。
本文将会探讨中文分词的基础知识,以及基于统计语言模型的中文分词算法的核心思想和实现方法。
一、中文分词的基础知识中文文本是由汉字组成的,中文词语并不像英语词汇那样有明显的边界。
因此,中文分词器需要解决的第一个问题就是识别出哪些汉字是组成词语的基本单元。
然后,再根据组合方式将词语划分出来。
中文分词可以分为基于规则的分词和基于统计的分词两种算法。
基于规则的分词算法是手动编写规则,根据这些规则来解决分词问题。
但是这种方法实现起来非常困难,因为包含规则的样本集必须足够大而且需要频繁更新。
而且,规则往往是比较复杂的,需要人工不断调整和改进。
基于统计的分词算法是通过分析一定量的语言样本集,建立起一个统计模型来解决分词问题。
这种方法不需要手动编写规则,而是通过分析大量的语言样本,了解自然语言的规律,然后再根据语言的规律来处理分词问题。
因此,基于统计的分词方法相对于基于规则的方法更加高效和精确。
二、基于统计语言模型的中文分词算法基于统计语言模型的中文分词算法并不是直接对每个汉字进行分词,而是在每个可能的词边界处赋予一个概率权重,然后取最大概率的词语作为对应的分词结果。
基于统计语言模型的分词算法包含三个主要组成部分:分词模型、特征提取和概率计算。
1. 分词模型分词模型是中文分词的核心模型,它可以对中文句子进行分词。
分词模型可以分为两种类型:基于统计的分词模型和基于规则的分词模型。
基于统计的分词模型通常基于最大概率模型或条件概率模型,常用的模型包括Hidden Markov Model (隐马尔可夫模型)和Conditional Random Fields(条件随机场)模型。
中文分词技术的研究

一
至关重 要 的因素 。 所周 知 , 众 中文 文本与英 文文本 的表 示 方法 有 所不 同 , 英文 文本 中词 与词 中间都 由空 格或
标 点符 号隔开 , 因而 词与词 之间 的界限很 明显 , 以很 可 容 易地 获 取关键 词 , 中文 文 本 中词 与词则 元 明显 的 而
第2卷 3
第 3 期
电 脑 开 发 与 应 用
文章 编 号 :0 35 5 ( 0 0 0 -0 10 1 0—8 0 2 1 )30 0 — 3
中文 分 词技 术 的研 究
Re e r h o i s o d S g e a i n Te hn q e s a c n Ch ne e W r e m nt to c i u s
依 赖 于 分词 词典 的好 坏 , 于无 词典 的分 词算 法 不需 基 要利 用词 典 信息 , 通过 对 大规 模 的生语 料库 进 行 统 它 计分析 , 自动 地 发现 和学 习词汇 , 分词精 度 来 看 , 从 基
于词典 的分 词算法 要大 大优于无 词典 的分词算 法 。
3 1 基 于足 够 的词 来供 分 析程 序处 理 , 计
算 机如何 完成这 一过 程 ? 其处 理过程 就称为分 词算 法 。
现 有的分 词 算法 按 照 是否 使用 分词 词典 来 分 , 可 分 为基 于 词 典 的 分 词 算 法 和 基 于 无 词 典 的 分 词 算
定 的工 具从 大规 模 的动 态信 息流 中 自动筛 选 出满足
用户 需求 的信 息 , 同时 屏蔽 掉无 用信 息 的过程 。 目前很
中文分词技术的研究现状与困难

四、解决方案
为了克服中文分词技术的研究困难,以下一些解决方案值得:
1、优化分词算法:针对分词算法的复杂性问题,可以尝试优化算法的设计和 实现,提高其效率和准确性。例如,可以通过引入上下文信息、利用语言学知 识等方式来改进算法。
2、改进信息检索技术:在信息检索领域,可以尝试将先进的排序算法、推荐 系统等技术引入到检索过程中,以提高检索效果。此外,还可以研究如何基于 用户行为和反馈来优化检索结果。
3、缺乏统一的评价标准:中文分词技术的评价标准尚未统一,这使得不同研 究之间的比较和评估变得困难。建立通用的中文分词技术评价标准对于推动相 关研究的发展至关重要。
4、特定领域的应用场景:中文分词技术在不同领域的应用场景中面临着不同 的挑战。例如,在金融领域中,需要分词技术对专业术语进行精确识别;在医 疗领域中,需要处理大量未登录词和生僻字。如何针对特定领域的应用场景进 行优化,是中文分词技术的重要研究方向。
3、建立大型标注语料库:通过建立大型标注语料库,可以为分词算法提供充 足的训练数据,提高其准确性和自适应性。此外,标注语料库也可以用于开发 基于规则的分词方法和测试集的构建。
4、研究跨领域的应用场景:针对不同领域的应用场景,可以研究如何将中文 分词技术进行迁移和适配。例如,可以通过知识图谱等技术将不同领域的知识 引入到分词过程中,以提高分词效果。
然而,各种分词方法也存在一定的局限性和不足。例如,基于规则的分词方法 需要人工编写规则和词典,难以维护和更新;基于统计的分词方法需要大量标 注语料库,而且训练模型的时间和计算成本较高;基于深度学习的分词方法虽 然取得了较好的效果,但也需要耗费大量的时间和计算资源进行训练。
三、研究困难
中文分词技术的研究面临着诸多困难和挑战,以下是一些主要词方法:该方法主要依靠人工编写的分词规则来进行分词。 代表性的工作包括台湾大学开发的中文分词系统“THULAC”和北京大学开发 的“PKU中文分词系统”。这些系统均基于词典和规则,具有较高的准确率和 召回率。
中文搜索引擎技术

一.如何获得用户的查询信息 可对搜索引擎用户查询日志(LOG)文件做查询归类。 二.如何选择提示词 对于用户查询进行分词,然后对于分词后的结果来进行相似 性计算。
Info.Retrieval
“娱乐新闻报道”和“新闻娱乐报道”的相关提示完全一样。
三.如何计算相似性并排序输出
第八章 中文搜索引擎技术
第一节 中文分词技术 分词技术简述 分词技术 分词中的难题与发展 第二节 拼写检查错误提示 第三节相关提示功能分析 第四节 CACHE结构 CACHE的实现原理 三级CACHE的设计
Info.Retrieval
一.什么是中文分词 把中文的汉字序列切分成有意义的词。 例:我/是/一个/学生 二.分词技术简述 1.基于字符串匹配的分词方法 按照一定的策略将待分析的汉字串与一个机器词库中的词条 进行匹配。 常用分词方法: 正向最大匹配法(由左到右的方向) 例:我 /有意/ 见/ 分歧 反向最大匹配法 例:我 /有/意见/分歧
Info.Retrieval
娱乐,新闻,报道
娱乐,报道
Info.Retrieval
新闻,报道
研究表明用户的查询有30%-40%是重复的。 一.一级Cache的设计 1.的一级Cache 提交一个古怪的查询,
只要是两次提交同样的查询,第二次返回时间总是0.001秒, 证明Cache的存在。
Info.Retrieval三.分词技术分析 1.最大分词词 长:
小于等于 3个中文字不切割 对于大于等于 4个汉字的词将被分词 。
Info.Retrieval
2.分词算法: 查询:“工地方向导” 正向最大匹配: 工地/方向/导 反向最大匹配: 工/地方/向导
中文分词相关技术简介

中文分词相关技术简介目前对汉语分词方法的研究主要有三个方面:基于规则的分词方法、基于统计的分词方法和基于理解的分词方法。
基于规则的分词方法基于规则的分词方法,这种方法又叫做机械分词方法,它是按照一定的策略将待分析的汉字串与一个"充分大的"机器词典中的词条进行匹配,若在词典中找到某个字符串,则匹配成功(识别出一个词)。
常用的方法:最小匹配算法(Minimum Matching),正向(逆向)最大匹配法(Maximum Matching),逐字匹配算法,神经网络法、联想一回溯法,基于N-最短路径分词算法,以及可以相互组合,例如,可以将正向最大匹配方法和逆向最大匹配方法结合起来构成双向匹配法等。
目前机械式分词占主流地位的是正向最大匹配法和逆向最大匹配法。
◆最小匹配算法在所有的分词算法中,最早研究的是最小匹配算法(Minimum Matching),该算法从待比较字符串左边开始比较,先取前两个字符组成的字段与词典中的词进行比较,如果词典中有该词,则分出此词,继续从第三个字符开始取两个字符组成的字段进行比较,如果没有匹配到,则取前3个字符串组成的字段进行比较,依次类推,直到取的字符串的长度等于预先设定的阈值,如果还没有匹配成功,则从待处理字串的第二个字符开始比较,如此循环。
例如,"如果还没有匹配成功",取出左边两个字组成的字段与词典进行比较,分出"如果";再从"还"开始,取"还没",字典中没有此词,继续取"还没有",依次取到字段"还没有匹配"(假设阈值为5),然后从"没"开始,取"没有",如此循环直到字符串末尾为止。
这种方法的优点是速度快,但是准确率却不是很高,比如待处理字符串为"中华人民共和国",此匹配算法分出的结果为:中华、人民、共和国,因此该方法基本上已经不被采用。
中文分词技术研究

分词算法一般有三类:基于字符串匹配、基于语义分析、基于统计。
复杂的分词程序会将各种算法结合起来以便提高准确率。
Lucene被很多公司用来提供站内搜索,但是Lucene本身并没有支持中文分词的组件,只是在Sandbox里面有两个组件支持中文分词:ChineseAnalyzer和CJKAnalyzer。
ChineseAnalyzer 采取一个字符一个字符切分的方法,例如"我想去北京天安门广场"用ChineseAnalyzer分词后结果为:我#想#去#北#京#天#安#门#广#场。
CJKAnalyzer 则是二元分词法,即将相邻的两个字当成一个词,同样前面那句用CJKAnalyzer 分词之后结果为:我想#想去#去北#北京#京天#天安#安门#门广#广场。
这两种分词方法都不支持中文和英文及数字混合的文本分词,例如:IBM T60HKU现在只要11000元就可以买到。
用上述两种分词方法建立索引,不管是搜索IBM还是11000都是没办法搜索到的。
另外,假如我们使用"服务器"作为关键字进行搜索时,只要文档包含"服务"和"器"就会出现在搜索结果中,但这显然是错误的。
因此,ChineseAnalyzer和CJKAnalyzer虽然能够简单实现中文的分词,但是在应用中仍然会感觉到诸多不便。
基于字符串匹配的分词算法用得很多的是正向最大匹配和逆向最大匹配。
其实这两种算法是大同小异的,只不过扫描的方向不同而已,但是逆向匹配的准确率会稍微高一些。
"我想去北京天安门广场"这句使用最大正向分词匹配分词结果:我#想去#北京#天安门广场。
这样分显然比ChineseAnalyzer和CJKAnalyzer来得准确,但是正向最大匹配是基于词典的,因此不同的词典对分词结果影响很大,比如有的词典里面会认为"北京天安门"是一个词,那么上面那句的分词结果则是:我#想去#北京天安门#广场。
百度和谷歌的中文分词技术浅析

摘
要 中文分 词技 术对搜 索引 擎、 户 以及搜 索引 擎优 化有 着重要 的影响 , 用 本文 旨在 通 谷歌 G ol 中文分词 og e
过 实例 检 索 推
关 键词
研 究搜 索 引擎 的 中文 分 词 技 术 , 不论 是
一
,
因此不 会 将细 节公 之 于众 , 能利用 黑盒 只
方 法进 行 推导 , 即通 过输 入检 索 提 问 , 也 查看 结 果 情况 , 通 过 两 个 搜 索 引 擎都 具 备 的 网 并
明 的 先后次 序 。 2 和 谷 歌 的中文 分 词 页快 照 功 能 查 看 各 自对 检 索 提 问 的 分 词 情
况。
表 l 检 索提 问 在 百 度 和 谷 歌 中 的 分 词 情 况 中文 分 词 是 和 谷 歌 的 核 心 技 术 之
序 号
l
捡 索提 问
“L海天 气 ” 一 海 天 气 f :
百 度 分 词 情 况
L 天 气 海
谷 歌分 词 情 况
2 3 4
4 4
・
中国索引( u aoT e h a oiy fnee ) J r lf h i c to I xr o n C n S e d s
生箜 塑( ! : : 2
索 引 与数 据库 技 术 ・
百 度 和 谷 歌 的 中 文 分 词 技 术 浅析
周 满 英
( 海 中 医药大 学图 书馆 上 2 10 ) 0 2 3
对 用户 检索 , 还是 做搜 索引 擎优化 , 具有 重 都 要 意义 。 同时 , 中文分词 技术 , 对搜 索 引擎本 身而 言 , 是相 当重要 , 词 的准确 性关 系 到 也 分
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
关于百度中文分词系统研究所谓分词就是把字与字连在一起的汉语句子分成若干个相互独立、完整、正确的单词。
词是最小的、能独立活动的、有意义的语言成分。
计算机的所有语言知识都来自机器词典(给出词的各项信息) 、句法规则(以词类的各种组合方式来描述词的聚合现象) 以及有关词和句子的语义、语境、语用知识库。
中文信息处理系统只要涉及句法、语义(如检索、翻译、文摘、校对等应用) ,就需要以词为基本单位。
当汉字由句转化为词之后,才能使得句法分析、语句理解、自动文摘、自动分类和机器翻译等文本处理具有可行性。
可以说,分词是机器语言学的基础。
分词准确性对搜索引擎来说十分重要,但如果分词速度太慢,即使准确性再高,对于搜索引擎来说也是不可用的,因为搜索引擎需要处理数以亿计的网页,如果分词耗用的时间过长,会严重影响搜索引擎内容更新的速度。
因此对于搜索引擎来说,分词的准确性和速度,二者都需要达到很高的要求。
分词算法的三种主要类型现有的分词算法可分为三大类:基于字符串匹配的分词方法、基于理解的分词方法和基于统计的分词方法。
》基于字符串匹配的分词方法。
这种方法又叫做机械分词方法,它是按照一定的策略将待分析的汉字串与一个“充分大的”机器词典中的词条进行匹配,若在词典中找到某个字符串,则匹配成功 (识别出一个词) 。
按照扫描方向的不同,串匹配分词方法可以分为正向匹配和逆向匹配;按照不同长度优先匹配的情况,可以分为最大(最长) 匹配和最小(最短) 匹配;按照是否与词性标注过程相结合,又可以分为单纯分词方法和分词与标注相结合的一体化方法。
常用的几种机械分词方法如下:1) 正向最大匹配法(由左到右的方向) 。
通常简称为MM(Maximum Matching Method) 法。
其基本思想为:设D 为词典,MAX 表示D 中的最大词长,STR 为待切分的字串。
MM 法是每次从STR 中取长度为MAX 的子串与D 中的词进行匹配。
若成功,则该子串为词,指针后移MAX 个汉字后继续匹配,否则子串逐次减一进行匹配。
2) 逆向最大匹配法(由右到左的方向) 。
通常简称为RMM ( Reverse Maximum MatchingMethod) 法。
RMM 法的基本原理与MM 法相同,不同的是分词的扫描方向,它是从右至左取子串进行匹配。
3) 最少切分法(使每一句中切出的词数最小) 。
还可以将上述各种方法相互组合,例如,可以将正向最大匹配方法和逆向最大匹配方法结合起来构成双向匹配法。
由于汉语单字成词的特点,正向最小匹配和逆向最小匹配一般很少使用。
一般说来,逆向匹配的切分精度略高于正向匹配,遇到的歧义现象也较少。
统计结果表明,单纯使用正向最大匹配的错误率为1/169 ,单纯使用逆向最大匹配的错误率为1/ 245 。
但这种精度还远远不能满足实际的需要。
实际使用的分词系统,都是把机械分词作为一种初分手段,还需通过利用各种其它的语言信息来进一步提高切分的准确率。
一种方法是改进扫描方式,称为特征扫描或标志切分,优先在待分析字符串中识别和切分出一些带有明显特征的词,以这些词作为断点,可将原字符串分为较小的串再来进行机械分词,从而减少匹配的错误率。
另一种方法是将分词和词类标注结合起来,利用丰富的词类信息对分词决策提供帮助,并且在标注过程中又反过来对分词结果进行检验、调整,从而极大地提高切分的准确率。
》基于理解的分词方法。
这种分词方法是通过让计算机模拟人对句子的理解,达到识别词的效果。
其基本思想就是在分词的同时进行句法、语义分析,利用句法信息和语义信息来处理歧义现象。
它通常包括三个部分:分词子系统、句法语义子系统、总控部分。
在总控部分的协调下,分词子系统可以获得有关词、句子等的句法和语义信息来对分词歧义进行判断,即它模拟了人对句子的理解过程。
这种分词方法需要使用大量的语言知识和信息。
由于汉语语言知识的笼统、复杂性,难以将各种语言信息组织成机器可直接读取的形式,因此目前基于理解的分词系统还处在试验阶段。
》基于统计的分词方法。
从形式上看,词是稳定的字的组合,因此在上下文中,相邻的字同时出现的次数越多,就越有可能构成一个词。
因此字与字相邻共现的频率或概率能够较好地反映成词的可信度。
可以对语料中相邻共现的各个字的组合的频度进行统计,计算它们的互现信息。
定义两个字的互现信息,计算两个汉字X、Y的相邻共现概率。
互现信息体现了汉字之间结合关系的紧密程度。
当紧密程度高于某一个阈值时,便可认为此字组可能构成了一个词。
这种方法只需对语料中的字组频度进行统计,不需要切分词典,因而又叫做无词典分词法或统计取词方法。
但这种方法也有一定的局限性,会经常抽出一些共现频度高、但并不是词的常用字组,例如“这一”、“之一”、“有的”、“我的”、“许多的”等,并且对常用词的识别精度差,时空开销大。
实际应用的统计分词系统都要使用一部基本的分词词典(常用词词典)进行串匹配分词,同时使用统计方法识别一些新的词,即将串频统计和串匹配结合起来,既发挥匹配分词切分速度快、效率高的特点,又利用了无词典分词结合上下文识别生词、自动消除歧义的优点。
它与语料库的规模有关,并且要进行大规模的计算,因此实现较复杂。
中文分词的一般过程中文分词包括以下部分:词典初始化、输入分词文本、文本的结构化处理、分词(粗分) 、消歧与识别未登录词、更新词典和保存结果,如图1所示。
分词中的难题经历了将近十年的发展,各种分词算法都已经比较成熟了,但是中文是一种十分复杂的语言,让计算机理解中文语言更难。
在中文分词过程中,有两大难题一直没有完全突破。
1) 歧义识别。
歧义是指同样的一句话,可能有两种或者更多的切分方法。
例如,“安徽大学生”,因为“安徽”、“大学”、“学生”、“大学生”、“安徽大学”都是词,那么这个短语就可以分成“安徽/ 大学生”和“安徽大学/ 生”。
这种称为交叉歧义。
像这种交叉歧义十分常见,相对组合歧义来说是还算比较容易处理的,组合歧义就需要根据整个句子来判断了。
例如,在句子“这个门把手坏了”中“, 把手”是个词,但在句子“请把手拿开”中“, 把手”就不是一个词。
此外,在歧义中还有一个难题,是真歧义。
真歧义意思是给出一句话,由人去判断也不知道哪个应该是词,哪个应该不是词。
如“网球拍卖完了”,如果没有上下文,即使是人也很难判断到底是“网球拍/卖/完了”还是“网球/拍卖/完了”。
2) 新词识别。
新词,专业术语称为未登录词,也就是那些在字典中都没有收录过,但又确实能称为词的那些词。
最典型的是人名,此外还有机构名、地名、产品名、商标名、简称、省略语等都是很难处理的问题,而且这些又正好是人们经常使用的词,因此对于搜索引擎来说,分词系统中的新词识别十分重要。
目前新词识别准确率已经成为评价一个分词系统好坏的重要标志之一。
百度分词算法推导搜索引擎涉及到许多技术点,比如查询处理、排序算法、页面抓取算法、CACHE 机制、ANTI – SPAM 等等。
这些技术细节,作为商业公司的搜索引擎服务提供商比如百度, Google 等是不会公之于众的。
将现有的搜索引擎看作一个黑盒,通过向黑盒提交输入,判断黑盒返回的输出大致判断黑盒里面不为人知的技术细节。
百度作为一个典型的中文搜索引擎一直强调其“中文处理”方面具有其它搜索引擎所不具有的关键技术和优势。
那么就来看看百度到底采用了哪些所谓的核心技术。
首先,判断一下百度的分词条件。
单字词不用分,从二字词开始,为了避免词对判断分词程序是否起作用的干扰,输入任意非词二字。
分别向百度提交“校学”、“学大”,从返回结果的标红关键字来看,百度并没有将“校学”、“学大”分成“校/ 学”、“学/ 大”,说明百度的分词程序没有启动;接着提交查询“或者与”,返回结果1 210 000 篇相关页面,翻到最后一页,发现标红的关键字都是“或者与”连续出现的情况,好像没有切分,但是还不确定,再提交人工分好的查询“或者与”,返回结果31 400 000 篇,要么是“或者,与”,要么是“或者与”,可以确定没有进行分词; 再向百度提交“论文下载”,从返回结果中标为红字的地方可以看到查询已经被切分成“论文/ 下载”两个词了,说明分词程序已经启动了。
如果是比四个中文字符更长的字符串,分词程序当然也会被激发了。
归纳一下,单从字符数上来看,百度的分词条件是大于等于四个中文字符,三个及以下字符不进行切分,如表1所示。
下面,判断一下百度采取的分词算法。
现在分词算法已经算是比较成熟了,有简单的有复杂的,比如正向最大匹配、反向最大匹配、双向最大匹配、语言模型方法、最短路径算法等等。
判断一个分词系统好不好,关键看两点,一个是消除歧义能力;一个是词典未登录词的识别能力。
首先假设,百度没有采取比较复杂的算法,因为考虑到速度问题。
提交一个查询“安徽大学网络实验室”,如果是正向最大匹配算法的话,那么输出应该是: “安徽大学/ 网络实验室”或者“安徽大学/ 网络/ 实验室”,百度的分词结果:“安徽大学/ 网络/ 实验室”,跟期望相一致,但是并不能据此就说明百度采用的是正向最大匹配算法。
再输入“甲型H1N1 流感症状”,结果百度分为“甲型H1N1/ 流感/ 症状”。
可以获得如下信息:百度能够识别“甲型H1N1”,说明百度有未登录词识别功能或者百度的专有词典中已经有了“甲型H1N1”这个词。
认为分词过程分为两个阶段:第一阶段,查找一个特殊词典,这个词典包含一些人名、地名以及一些普通词典没有的新词, 这样首先将“甲型H1N1”解析出来。
第二阶段,将剩下的字符串“流感症状”交给普通词典,分成“流感/ 症状”。
分词的结果也符合正向最大匹配算法。
然而上面的两个例子如果是反向最大匹配算法结果也是说的通的,为了证明这一点,提交查询“安徽大学科建设”, 如果是反向最大匹配算法应该分成“安徽/ 大/ 学科/ 建设”,百度实际分成“安徽大学/ 科/ 建设”。
再查询“东京城市民国”, 如果是反向最大匹配算法应该分成“东京/ 城市/ 民国”,但是百度分成“东京城/ 市民/ 国”,这就证明了不是反向最大匹配算法。
同时又出现了新的问题,“东京”是个城市的名字,为什么没有识别出来,而是分成了“东京城”,我想应该是百度的专有词典中有“东京城”这个词,虽然也有“东京”,但是按最大匹配来分应该是分成“东京城”。
这样基本能确定百度分词采取了至少两个词典,一个是普通词典, 一个是专有词典( 地名、人名等) 。
而且是专有词典先切分,然后将剩余的片断交由普通词典来切分。
继续测验,提交查询“登上海东方明珠”,如果没有专有词典,那么结果应该是“登上/ 海/ 东方明珠”,事实上百度的分词结果是“登/ 上海/ 东方明珠”。
至此,可以判断百度的分词算法是正向最大匹配算法。
结束语归纳一下百度的分词算法系统:首先用专有词典采用正向最大匹配分词,切分出部分结果,剩余没有切分的部分交给普通词典,同样采取正向最大匹配分词, 最后输出结果。