[发明专利]一种面向中文分词的搜索算法有效

专利信息
申请号: 201810422499.3 申请日: 2018-05-05
公开(公告)号: CN108846016B 公开(公告)日: 2021-08-20
发明(设计)人: 金城;陶仕谦;唐士芳;吴渊;张玥杰;冯瑞;薛向阳 申请(专利权)人: 复旦大学
主分类号: G06F16/953 分类号: G06F16/953;G06F40/284
代理公司: 上海正旦专利代理有限公司 31200 代理人: 陆飞;陆尤
地址: 200433 *** 国省代码: 上海;31
权利要求书: 查看更多 说明书: 查看更多
摘要: 发明属于文本搜索引擎技术领域,具体为一种面向中文分词的搜索算法。本发明算法主要分为两个阶段:离线构建索引阶段和在线查找阶段。在离线构建索引阶段,首先提取所有原始字符串集合的后缀串集合,然后由后缀串集合生成改进的后缀树;在在线查找阶段,首先根据基于后缀树的索引模型得到关键词的查询结果,然后量化关键词和查询结果的匹配程度,最后将查询结果按匹配程序由高到低排序后返回。本发明通过一种改进的基于后缀树的索引结构来平衡索引构建时间和占用空间,使用本发明的索引结构的搜索效率远高于对结果集暴力计算匹配度并排序的效率。
搜索关键词: 一种 面向 中文 分词 搜索 算法
【主权项】:
1.一种面向中文分词的搜索算法,其特征在于,分为两个阶段:离线构建索引阶段和在线查找阶段;(一)离线构建索引阶段,具体步骤为:(1)由原数据集生成后缀串集合T(S)表示带有分隔符($)和结束符(#)的字符串S所组成的原数据集,其中第i个字符串的索引ID为i,1≤i≤n,假设WBS表示从分隔符处开始的后缀串,NWBS表示不从分隔符处开始的后缀串;由T(S)生成带索引ID的后缀串集合T(WBS)和T(NWBS)的具体步骤如下:第一步:遍历T(S)中的所有字符串,提取每个字符串的所有后缀串si,构成集合T*(s1),T*(s2)…T*(sn),其中后缀串是指字符串S从位置i开始到S末尾结束符的一个子串,即若S用C1C2…Cn表示,则CiCi+1…Cn称为S的一个后缀串,1≤i≤n;第二步:剔除集合T*(s1),T*(s2)…T*(sn)中所有以分隔符($)或结束符(#)为首的后缀串;第三步:遍历T*(si)中所有后缀串,若后缀串的首字符跟原字符串的首字符相同,或者跟原字符串中分隔符($)后的首字符相同,则在该后缀串末尾添加索引ID后加入至T(WBS),反之,则在该后缀串末尾添加索引ID后加入至T(NWBS);(2)对后缀串集合T(WBS)和T(NWBS)分别建立改进后缀树所谓改进后缀树是在传统后缀树的基础上,将每条边上的标识存放到节点中,即把每个节点作为一个存储单元,节点存储信息包括节点标识、结束符子节点指针、分隔符子节点指针、一般子节点指针集和匹配索引ID序列,其中节点标识为结束符、分隔符或一般字符串;对任意后缀串集合T建立改进后缀树的具体步骤如下:第一步:创建一棵只包含一个节点的改进后缀树,该节点的节点标识、所有子节点指针和匹配索引ID序列均为空,把这个节点记为改进后缀树的根节点root;第二步:把后缀串集合T中所有元素依次插入到改进后缀树中;每个后缀串的插入过程都是从根节点出发,寻找插入位置;第三步:递归构造每个节点的匹配索引ID序列;由前可知,结束符节点的匹配索引ID序列在全部后缀串插入完成时已经构造完成;只需按公式(1)构造所有非结束符节点N(s)的匹配索引ID序列Q(N(s)):Q(N(s))=Q(N(s#))Q(N(s$))Q(N(s*))#   (1)其中,N(s#),N(s$)和N(s*)分别表示节点N(s)的结束符子节点,分隔符子节点和所有一般子节点;(二)在线查找阶段,具体步骤为:(1)匹配点查询对任意节点N(s),从N(s)出发,按公式(2)查询字符串c1…cn的匹配节点:其中,R(N(s))表示查询结果,N(s)为匹配节点,s为节点标识;给出查询字符串c1…cn,首先查找根节点的所有子节点,找到节点标识的首字符等于c1的子节点N(s),然后执行R(N(s),c1…cn),找到所有匹配点,最终得到搜索结果R(N(s))=(S,Q(N(s)));其中,Q(N(s))为N(s)的匹配索引ID序列;(2)对结果集排序定义负熵来衡量查询字符串c1…cn和搜索结果字符串s的匹配程度,熵值越小,匹配程度越低;反之,熵值越大,匹配程度越高;计算所有s的分词负熵值,按其值由大到小对结果集进行排序;(3)消除结果集中的重复项并生成搜索结果序列依次取出排序后结果集的Q(N(s)),执行相应操作后放入搜索结果序列中,搜索结果序列初始值为空;所述执行相应操作是按公式(3)是对Q(N(si))执行如下操作:SR(i)=(D(Q(N(si)))‑SR(i‑1))∩SR(i‑1),1≤i≤n#   (3)其中,SR(i)表示合并完第i个节点的匹配索引ID序列Q(N(si))后的搜索结果序列,SR(1)和SR(n)分别为搜索结果序列的初始状态和最终状态;D(Q(N(si)))表示对Q(N(si))执行去重操作;(D‑SR)表示在去重后的Q(N(si))中去除已经在搜索结果序列中出现过的索引号;(D‑SR)∩SR表示将(D‑SR)添加至当前搜索结果序列SR的末尾;最终得到的搜索结果序列为SR(n)。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于复旦大学,未经复旦大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/201810422499.3/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top