logo好方法网

基于交叉支持度评价的模板自动挖掘系统及其方法


技术摘要:
本发明公开了基于交叉支持度评价的模板自动挖掘系统及其方法。所述系统包括意图识别模块、类目词替换模块、频繁项集挖掘模块、模板排序模块;所述意图识别模块用于对用户的历史记录进行意图识别,并将经过意图识别的记录发送至类目词替换模块;所述类目词替换模块用于  全部
背景技术:
在垂直搜索中,当用户的搜索关键词与数据库中的规则词匹配时,就会返回数据 库中的相关数据。实际应用中,用户的搜索关键词是多样的,很难手动配置所有的匹配词, 随着搜索种类数目的增加,手动配置显然是一个不现实的做法,因此设计算法自动挖掘出 用户常用的搜索模板就很有必要。当前的研究主要是从用户的历史数据中挖掘搜索模板, 典型的代表为百度的搜索技术专利《需求识别模板的自动挖掘方法、需求识别方法及对应 装置》,该技术提供了一种识别模板的自动挖掘方法。具体的步骤为:在搜索日志中确定预 设类型对应的记录集合;从集合中选择对应预设类型被点击次数超过预设次数的记录,组 成种子模板;将种子模板中的预设类型词与预设词典的词语进行匹配,替换成类型属性 词,;得到模板。 该技术的缺陷主要表现在:会丢弃一些具有潜在模板意图的记录。比如“七天酒店 多少钱”,“如家酒店多少钱”这两个记录公共的部分就是“酒店多少钱”,按照现有技术,如 果两个记录的点击量比较低就会剔除在外,实际上他们都是有模板意图的。 基于频繁项集挖掘的方法可以避免这样的问题。但是基于传统置信度频繁项集挖 掘的方法,存在稀少项集的问题。所谓稀少项集的问题,指的是非频繁项集可能产生潜在有 价值的规则,但在用置信度筛选的过程中被过滤掉了。在模板自动挖掘的过程中,经过意图 识别以后的记录存在着项集支持度分布不均衡的问题,导致类目词出现的频率会远远超过 其他词出现的频率。 另外传统置信度 只是考虑了A对B的影响,而忽略了B出现的情 况,假设置信度设置不合理,当 的情况出现时,表明A,B两个项是独立的,但是 由于置信度设置过低,导致把这样的记录也保留下来了。经过意图识别以后的记录,会存在 支持度分布不均衡的情况,因此挖掘的质量比较依赖置信度的设置,往往也很难找到一个 最合适的置信度阈值。
技术实现要素:
为解决上述基于传统置信度评价存在的问题,本发明提出了基于交叉支持度评价 的模板自动挖掘系统及其方法。 本发明的目的至少通过如下技术方案之一实现。 基于交叉支持度评价的模板自动挖掘系统,包括意图识别模块、类目词替换模块、 频繁项集挖掘模块、模板排序模块; 4 CN 111552862 A 说 明 书 2/7 页 所述意图识别模块用于对用户的历史记录进行意图识别,并将经过意图识别的记 录发送至类目词替换模块; 所述类目词替换模块用于对经过意识识别的记录进行切词,替换类目词,并将替 换类目词后的记录发送至频繁项集挖掘模块; 所述频繁项集挖掘模块用于利用关联规则挖掘算法对替换类目词后的记录进行 挖掘并筛选频繁项得到初步的模板; 所述模板排序模块用于根据熵值和与已有词表的相似度对初步的模板进行排序。 进一步地,所述意图识别模块中,采用相关记录训练意图识别模型,所述相关记录 指的是用户的搜索记录,所述意图识别模型包括fasttext模型,采用训练完的意图识别模 型对历史搜索记录进行意图识别; 所述训练意图模型是输入带有类目标签的数据,模型的输出为对应的类目标签, 比如输入有:‘酒店多少钱’,标签是‘酒店’;‘天气怎么样’,标签是‘天气’,训练的时候给模 型的输入是‘酒店多少钱’,‘天气怎么样’,输出是‘酒店’,‘天气’,输入大量带标签的数据 后这个模型就会去学习其中的参数,经过训练使得意图模型根据输入的记录计算该记录分 别属于各个类目的概率并输出其中概率最大的类目,比如新输入‘附近酒店’,模型给出的 概率中,酒店类的概率最大,就把这个分到酒店类,属于其他的概率比较小,就不会分到其 他类。 进一步地,所述类目词替换模块中,采用结巴分词对经过意图识别的记录进行切 词,比如输入是‘附近酒店多少钱’,切词以后就会得到:附近/酒店/多少钱。再用匹配算法 就可以得到每一个词‘附近’,‘酒店’,‘多少钱’;将记录中和固定类相关的词语替换成固定 类目词,比如要进行美食类目的模板挖掘,快餐店,美食店等统一替换成[food]。此处的统 一符号包含但不仅限于[food]的表达形式。这里是对历史搜索记录进行替换,比如历史搜 索记录中有‘附近快餐店’‘附近美食店’,本身会有一个词表,里面会包含‘美食店’,‘快餐 店’这样的词,这个词表是已经有的,是服务商提供的,可以直接拿到,然后如果搜索记录中 的词在这个词表中能找到,那么就统一替换为[food],也就是把‘快餐店’,‘美食店’替换为 ‘[food]’,得到‘附近[food]’。 进一步地,所述频繁项集挖掘模块中,对替换类目词后的记录进行切词,类目词替 换模块中的切词,输入是‘附近的快餐店’,切词以后是‘附近的/快餐店’,频繁项集挖掘模 块中的切词,输入是‘附近的[food]’,切词以后是‘附近的/[food]’;对切词以后得到的单 词进行去重并且去掉标点符号作为待挖掘的项,利用关联规则挖掘算法进行挖掘。 进一步地,所述关联规则挖掘算法包括改进的FP-Growth算法,即采用交叉支持度 筛选频繁项:所述交叉支持度评价指标如下: 其中,A、B表示经过切词后得到的词,P(A)表示的是切词以后得到的A  出现的频 率,P(B)表示的是切词以后得到的B出现的频率,P(AB)指的是A  和B同时出现的概率,比如 ‘附近的酒店’,切词以后是‘附近的/酒店’,输入到模型之后,A是‘附近的’,B是‘酒店’,p (AB)指的是‘附近的’以及‘酒店’这两个词同时出现的概率;在计算交叉支持度时,相应的 类目词不纳入计算范围;交叉支持度阈值设置为大于0,大于0表示两个项之间存在正相关 5 CN 111552862 A 说 明 书 3/7 页 的关系。因为类目词出现的频率过大,经过意图识别的记录,再利用类目词来筛选的意义不 大,经过意图识别以后,得到的记录都是同一类的,比如美食类,那么这一类的记录中,很多 记录都会包含[food]这个标志词,这个词出现的频率就很高,因为频繁项的挖掘算法就是 根据频率进行筛选的,因此频率太高就会干扰挖掘,所以不考虑[food]这样的类目词,也就 是计算频率的时候不算[food] 这个词出现的频率。 进一步地,所述模板排序模块中,计算同一类型模板中匹配词的可能性,利用熵值 来评价模板的通用性,所述熵值排序,衡量的是带有固定类目词所包括的可能性个数,熵值 S的计算公式如下: S=-∑p(A)log(p(A)); 比如挖掘出的模板是[food]多少钱,因为[food]是经过替换过来的,可能包含很 多种情况,假设这里的[food]包含了‘快餐店’,‘美食店’,‘火锅店’三种情况,其中‘快餐店 多少钱’这个出现了5次,‘美食店多少钱’出现了3次,‘火锅店多少钱’出现了2次,‘[food] 多少钱’这个模板的熵值是: 加入另外一个 模板是‘[food]好不好呀’,只有一个类型的‘快餐店好不好呀’跟这个模板匹配得上,假设 ‘快餐店好不好呀’出现了5次,那么这个模板的熵值是: 这个熵值比前面 ‘[food]  多少钱’小,从实际上可以看出,也是‘[food]多少钱’这个模板更加具有通用性。 用余弦相似度计算与已有词表的相似度,模板挖掘是一个多次迭代的任务,每次 挖掘出来的单词会把排在前面的几个单词添加到实际要用的词表中,下次挖掘出新的单词 如果跟实际应用是词表中的单词比较相似,那么也就有理由相信这个新挖掘的单词添加到 实际应用词表中是比较合适的。实际上每个单词都可以用多维的向量来表示,这个向量的 表示是提前训练好的,也就是每个单词都会对应有一个多维的向量表示,然后计算向量之 间的余弦值就可以得到向量之间的相似度。比如A单词的向量表达式[1  0  1  1  1],B单词的 向量是[0  1  1  1  0  1],  计算这两个向量的余弦值就可以得到这两个单词的相似度。根据 熵值和与已有词表的相似度,训练LR模型即排序模型对模板进行排序,排序模型用到的是 LR  算法(线性回归模型),首先训练模型得到排序优先度占比参数,比如经过训练以后,熵 值占比40%,相似度占比60%,再根据熵值和与已有词表的相似度优先度占比参数对模板 进行排序。 进一步地,所述排序模型的训练方法是,首先人工收集历史记录数据,与训练类目 相关的数据打上标签‘1’,不相关的打上标签‘0’,比如收集到‘附近酒店’,‘最近天气’,然 后‘附近酒店’是酒店相关的,‘最近天气’是天气相关的,假设现在在做天气相关的类目,那 么‘最近天气’这个输入会手动打上标签‘1’,‘附近酒店’手动打上‘0’;然后输入到排序模 型里面去训练,得到排序模型的优先度占比参数,下次输入新的记录安装该参数进行排序。 基于交叉支持度评价的模板自动挖掘方法,包括以下步骤: S1、输入用户的历史记录,采用意图识别模块对用户的历史记录进行意图识别,得 到经过意图识别的记录 S2、采用类目词替换模块对经过意图识别的记录,用结巴分词进行切词,将记录中 和固定类相关的词语替换成固定类目词,得到替换类目词后的记录; 6 CN 111552862 A 说 明 书 4/7 页 S3、采用频繁项集挖掘模块对替换类目词后的记录用结巴分词进行切词并且进行 去重,把切词以后得到的词语作为待挖掘的项,利用关联规则挖掘算法进行挖掘; S4、采用频繁项集挖掘模块对频繁项进行筛选; S5、遍历S1中处理得到的经过意图识别的记录,把同时符合S4中筛选出来的频繁 项的结果保留下来,得到初步的模板; S6、采用模板排序模块对模板进行排序展示。 相比于现有技术,本发明的优点在于: 与基于传统的置信度挖掘的方法,本发明的优点: 本发明可以不用设置置信度,挖掘出来的结果质量更高。 附图说明 图1是本发明基于交叉支持度评价的模板自动挖掘方法的步骤流程图; 图2是本发明实施例中经过意图识别模型得到的结果示意图; 图3是本发明实施例中类目词替换的过程示意图; 图4是本发明实施例中对频繁项集挖掘算法评价指标改进的伪代码示意图; 图5是本发明实施例中挖掘潜在模板的算法伪代码示意图; 图6是本发明实施例中基于交叉支持度评价的模板自动挖掘方法的挖掘示意图; 图7是本发明实施例中传统的基于置信度的模板自动挖掘方法挖掘示意图。
分享到:
收藏