Transcript 1.刘剑

Q-T语义一致识别算法描述



姓名:刘剑
编译笔名:37X21=777
平台账号:stormagain
LOGO
主要内容
 第一部分:LSC算子介绍
 第二部分:ToTAL算子介绍
 第三部分:门禁算法介绍
 第四部分:算法评价
LSC算子
算子作用:找出最长公共字符串
实现思想:
1,用一个矩阵来记录两个字符串中 所有位置的匹
配情况,如果相同则为1,不同则为0.
2,正向求出对角线最长的1序列,其对应的长度即
为最长公共字符串长度,其位置就是最长公共字符
串的位置.
TOTAL算子
算子作用:找出query语句中有多少字符出现在title语句
实现思想:遍历query字符串的每个字符,如果字符出现
在title中,则+1,反之+0,最后统计出出现
过的字符总数。
门禁算法
算法描述:在判断大量对象的是与非的问题中,很多时候
我们只需要去筛选出是的那一部分对象,那么
非的那一部分对象自然也区分出来了。我们可
以通过构造一系列的通道去过滤这些数据,能
够顺利通过通道的数据,自然就是我们要寻找
的是的那一部分对象。由于它跟生活中的门禁
系统比较相似,因此,我称它为门禁算法。
门禁算法就是去设计一系列的通道,如VIP通
道,尊贵会员通道,普通会员通道,及普通通
道等,对象在起点位置可获得一张具有优先级
的PassCard,如果这张PassCard能够打通某条
通道上的所有关卡,即对象到达终点,则该对
象会被识别为一致。
门禁算法
算法描述:如果对象在走某一条通道的途中,没有打开某
个关卡,那么这时候的对象该怎么办呢?此时,
对象有两种可能,一是沿着原路返回,改走其他
的通道,二是被直接判定为永远无法到达终点。
这就是设置PassCard的意义,当PassCard在某
个关卡被消耗掉的时候,对象会被直接判定为不
一致,如果打不开关卡,PassCard也没有被消
耗掉,那么对象可以原路返回,改走其他的通道
门禁算法
算法实现:这样的一种思想是怎么在语义一致识别中去实
现的呢?对于门禁算法的实现,重点在于通道
的设置,通道设置的有效性及完美程度,关系
到算法的效果。笔者根据大赛的数据描述,设
置了四条大的通道,以及通道下面的一系列子
通道(子通道的某些关卡决定PassCard是否消
耗),后面详细介绍四条通道。
门禁算法
算法实现:第一条通道(VIP):
case 1:query与title完全一致:
query:惺惺相惜是什么意思
title:惺惺相惜是什么意思?
对于这种去掉最后的符号后,前面的query短句与title短句
一致的情况,我们没有必要去做语义上的分析,直接走
VIP通道,到达终点。
门禁算法
算法实现:第二条通道:
case 2:query是title的子句,存在简单的疑问词、
助词变换等:
query:周杰伦的资料
title:有关周杰伦的资料
或者:query:海市蜃楼是?
title:海市蜃楼是什么?
对于这种query和title之间只是某些前缀或者后缀的差别,
并没有影响语义偏差很大的对象,可以认为语义一致。当
然,这种情况下并不是每种情形都会一致,这就需要用到
前面提到的两个算子来控制了,对于query与title长度相差
超过一定范围,或者不满足两个算子所控制的界限,该对
象有可能要换走其他通道,或者被判断为不一致。
门禁算法
算法实现:第三条通道:
case 3:query与title出现语序变化,主题词变换,
但表意相同:
query:U盘分区方法
title:u盘如何分区?
对于这种数据对象,这次就不像第二条通道那样增加前缀、
后缀了,而是去对一些疑问词、语气词或者与疑问词同义
的词语的过滤。例如:过滤掉上面的“方法”与“如何”,
这样得到处理后的query和title短句就是一致的了,但是,
这样过滤很可能造成大量数据的误识别,例如:
门禁算法
算法实现:第三条通道:
case 3:query与title出现语序变化,主题词变换,
但表意相同:
例如:
query:叔叔的妈妈如何称呼
title:妈妈的叔叔怎样称呼
在这两个短句中,“如何”和“怎样”的表意是一样的,
因此,它们可以被过滤掉,但是由于“叔叔”与“妈妈”
的位置不一样,造成了语义不一致,这就需要对这种数据
对象的再一次语义检测,从而减小识别误差。
门禁算法
算法实现:第四条通道:
case 4:query的语义被title用多个子句表示出来:
这就是最难检测的那部分数据,因此要对它们做语义分析,
通过语义上的相似度去判断它们是否一致,也是误差最高
的地方,笔者借助MMSeg4J的jar包,对短句实现分词,
分词之后通过计算词形和词序上的相似度来获得加权的相
似度,其中在计算词形相似度时用到了同义词词林,由于
笔者未找到比较好的反义词词林,因此,程序中没有用到
反义词及否定词检测(程序留了位置),而同义词词林的
词组也不超过两万条,再加上一些专业术语未加收录,因
此,效果不是很好,但是只要是收录过的词语或同义词词
组,都能达到很好的效果。
算法评价
为什么选择门禁算法?
笔者一开始想到了今年比较火的Deep Learning算法,但是
为什么没有选择Deep Learning来做呢,原因有这么几点,
现在的query语句呈现碎片化,各种带有语病的语句(如:
错别字,杂乱的语序,甚至是比较乱的符号),等等都给
语义一致识别带来很大麻烦,如果要选择用深度学习算法,
那么它的训练数据集将是巨大的,而且效率堪忧。再者是
网络新兴词汇的诞生,经常有网络词汇诞生,这就需要适
时的去更新词库,对于深度学习算法,更新词库后,需要
重新训练,这样带来的工作很麻烦。
算法评价
门禁算法的优缺点分析:
本次算法大赛中途更改过一次规则,以前是需要有0.9
的准确率来支撑,在笔者提供的快速门禁算法中,得出的
数据结果是这样的:F值:0.6158,召回率:0.4679,准确
率:0.9012,可以看到,在有准确率约束的条件下,它可
以达到比较好的效果。
我想更多的说一下它的缺点,缺点主要是对一系列子
通道的设置,笔者现在基本上是靠前面提到的两个算子来
控制的,但是我感觉还是不够的,这两个算子只是从短句
的整体和基于自身字符的出现率来衡量的,这还属于模糊
判断,笔者还在探索其他的算子。
算法评价
门禁算法的改进方向:
其实在大赛的规则更改之后,我就想到了改进算法,
去尝试一些颠覆性的思想,但由于工作原因,没有花时间
来思考,这些想法都是感性上的一种认识,并没有强有力
的理论来支撑,所以现在还不成熟,大概可以包括这么几
点(这也是为了解决第四条通道的高误差问题),一种是
构造多维的语义树,一种是构造全局或者局部的语义拓扑
结构,甚至是对语义弱约束词的筛选等。