中文搜索引擎技术
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一.如何获得用户的查询信息 可对搜索引擎用户查询日志(LOG)文件做查询归类。 二.如何选择提示词 对于用户查询进行分词,然后对于分词后的结果来进行相似 性计算。
Info.Retrieval
“娱乐新闻报道”和“新闻娱乐报道”的相关提示完全一样。
www.ecteach.com
三.如何计算相似性并排序输出
Info.Retrieval
统计结果表明:单纯使用正向最大匹配的错误率为1/169,单纯使用反向 最大匹配的错误率为1/245。逆向匹配的切分精度略高于正向匹配。
www.ecteach.com
2.基于统计的分词方法 相邻的字同时出现的次数越多,就越有可能构成一个词。 用于系统自动识别新词。 3.基于理解的分词方法 在分词的同时进行句法、语义分析,利用句法信息和语义 信息来处理歧义现象。
③ 处理冲突的方法 为该关键字的记录找到另一个“空”的哈希地址。 例:开放定址法 Hi=(H(key)+di) MOD m (m=空间大小) di=1,2,…,m-1 称线性探测再散列
Info.Retrieval
www.ecteach.com
二.三级Cache的设计
精确匹配 用户查询 一级cache (内存) 精确匹配 二级Cache (磁盘) 二分查找 索引 (磁盘)
第八章 中文搜索引擎技术
第一节 中文分词技术 分词技术简述 百度分词技术 分词中的难题与发展 第二节 拼写检查错误提示 第三节相关提示功能分析 第四节 CACHE结构 CACHE的实现原理 三级CACHE的设计
Info.Retrieval
www.ecteach.com
一.什么是中文分词 把中文的汉字序列切分成有意义的词。 例:我/是/一个/学生 二.分词技术简述 1.基于字符串匹配的分词方法 按照一定的策略将待分析的汉字串与一个机器词库中的词条 进行匹配。 常用分词方法: 正向最大匹配法(由左到右的方向) 例:我 /有意/ 见/ 分歧 反向最大匹配法 例:我 /有/意见/分歧
Info.Retrieval
www.ecteach.com
三.百度分词技术分析 1.最大分词词 长:
小于等于 3个中文字不切割 对于大于等于 4个汉字的词将被分词 。
Info.Retrieval
www.ecteach.com
2.分词算法: 查询:“工地方向导” 正向最大匹配: 工地/方向/导 反向最大匹配: 工/地方/向导
归纳: 首先用专有词典采用最大正向匹配分词,切分出部分结果; 剩余没有切分交给普通词典,同样采取正向最大匹配分词。
Info.Retrieval
www.ecteach.com
四.分词中的难题 1.歧义识别 「这个门把手坏了」 -「把手」是个词 ; 「请把手拿开」 -「把手」不是一个词; 「元帅任命了一名中将」 -「中将」是个词; 「产量三年中将增长两倍」 -「中将」不再是词。 真歧义 「乒乓球拍卖完了」 可以切分成「乒乓 球拍 卖 完 了」、 也可切分成「乒乓球 拍卖 完 了」。 2.新词识别 就是那些在字典中没收录过,但又确实能称为词的那些词。 收录人名本身是一项巨大的工程 「吴官正在吉林考察」 「听说温家宝物非常多」 过多专用人名的收录很容易出现问题
为什么增 加的是“娱 乐报道”和 “新闻报 道”的相关 提示呢?
Info.Retrieval
www.ecteach.com
设每个单词都有一个权重值 IDF(word)=log(N/DF(word)) 注:N为百度收录的网页总数,设为10亿; DF(word) 是包含单词word的网页数目 得: IDF(娱乐)=log(10/0.325)=1.488 IDF(新闻)=log(10/0.563)=1.249 IDF(报道)= log(10/0.172)=1.764 权重是报道>娱乐>新闻 IDF(娱乐,新闻,报道) = IDF(娱乐) + IDF(娱乐) + IDF(娱乐) =4.501 IDF(娱乐,新闻,报道) >IDF(娱乐,报道)>IDF(新闻,报道) 查询权重相同,则按照用户查询次数由高到低排序输出。
分词 例:“姚明和叶莉” 三级Cache (内存)
没找到 (找“叶莉”)
ቤተ መጻሕፍቲ ባይዱ
高频倒排文档(找“姚明”)
Info.Retrieval
www.ecteach.com
Info.Retrieval
www.ecteach.com
二.错误提示流程
用户输入 匹配 不做拼写检查
查分词词典 不匹配
利用拼音标注程序对用户输入进行拼音标注
在同音词词典 里面扫描 拼音提示 流程 匹配 输出权重比较大 的几个提示结果
不匹配
不做提示
Info.Retrieval
www.ecteach.com
百度采用正向最大匹配算法 Info.Retrieval
www.ecteach.com
查询: 邓小平安定军山 正向最大匹配: 邓小平/安定/军/山
百度分词:邓小平/安/定军山
结论:百度识别人名、影视、戏剧名等专用词,专用词库分词时优先。 Info.Retrieval www.ecteach.com
查询:何润东西南北(“何润东”、“东西南北”两个词) 正向最大匹配: 何润东/西/南北
Info.Retrieval
www.ecteach.com
2.Cache的实现-哈希(Hash)表 ① 什么是哈希表 不经过任何比较,一次存取便能得到所查记录。 在记录的存储位置和它的关键字之间建立一个对应关系 ② 哈希函数的构造方法 例:除留余数法 H(key)=key MOD p
如:在长度为11的哈希表中已填有关键字为17,60,29的记录 (哈希函数 H(key)=key MOD11)
Info.Retrieval
www.ecteach.com
五.最新进展 设计目标: 1.无长度限制 2.歧义包容:将出现歧义的 各种可能性都包含进去, 作为分词的参考。 方案:将关系数据库的词按 字打散,并存放到层次 数据库中。 特色:分词长度限制,词的 长度变成了树的高度, 每一次的匹配变成了树 的遍历。
Info.Retrieval
www.ecteach.com
娱乐,新闻,报道
娱乐,报道
Info.Retrieval
新闻,报道
www.ecteach.com
研究表明用户的查询有30%-40%是重复的。 一.一级Cache的设计 1.百度的一级Cache 提交一个古怪的查询,
只要是两次提交同样的查询,第二次返回时间总是0.001秒, 证明Cache的存在。
感冒 感冒解痛散 感冒解痛颗粒 感冒解痛灵茶 等都能匹配
Info.Retrieval
www.ecteach.com
一.实例分析
百度维持着一个同音词词典, 多音字不区分
百度的中文纠错和拼音检索 使用的机制相同。 百度是将分词词典里面每个 词条利用拼音标注程序标注 成拼音。 查询:罗华世界有风军 词长不限,专用词全部标注