穷人的语义处理工具箱之一:语义版Jaccard

/* 版权声明:可以任意转载,转载时请标明文章原始出处和作者信息 .*/

                                                     author: 张俊林   


|为什么我们是ML界的穷人


如果对工业界里的机器学习(ML)从业者进行阶级划分的话,划线标准不是你用的算法的学名听起来多酷炫,无论你手里抡着的是最潮的深度高达1000层的深度学习核炸弹,还是听起来有点掉渣的大刀长矛朴素贝叶斯,如果没有大量数据,尤其是能跑监督学习算法的带标签训练数据,你就是ML界标准的底层渣男渣女或者渣娘炮。再加上计算资源,如果贵公司有上千台GPU服务器集群可供阁下驱使,外加十几火车皮的训练数据,那你就可能成为ML界的新贵、大数据处理领域的马云。


但是,理想丰满现实骨感,大多数中小公司里ML界贫农们的日常生活写照是这样的:前一天晚上看到某篇论文,学到一个让人兴味盎然的新ML姿势,第二天一大早横刀立马豪气干云地冲到公司,热血沸腾血往上涌准备撸起袖子大干一场,但是一转念掰着指头数数,看看自己手上超不过手指数量的数据资源,顿生有心杀贼,无力回天的挫败感。这画面的美丽程度与“看不进书的时候照照镜子,加不了班的时候数数银行卡余额”有异曲同工之妙。


但是穷人也应该有一颗追求美和好好活下去的强大心脏,既然没有训练数据,那我们就好好玩无监督学习,老老实实地去拟合你想要的公式,俗话说得好:无产阶级打破的只有枷锁,而得到的是整个世界。而本文就是带给ML界底层农民工的礼物和福音。


好,安利部分到此为止,以下是正文。


|原生态Jaccard

原生态Jaccard作为相似性计算函数,无论是计算思想还是工程实现都简单得令人发指。假设有两个集合:集合A和集合B,每个集合内各自包含若干元素,那么Jaccard计算两个集合的相似性就是用两个集合元素的交集作为分子,两个集合元素的并集作为分母,除一下就完事。因为交集代表了两个集合相同部分的子集合,并集代表了两个集合加起来总共有多少个元素,用相同部分占总元素数比例来代表集合相似性,两者重叠部分越多则两个集合越相似。


在文本处理领域,Jaccard也是一个比较常用的计算句子相似性的工具。具体使用时,往往是把两个要计算相似程度的句子改造成n-gram片段组成的两个集合,然后通过计算两个集合相同的n-gram片段个数作为集合交集,两个集合合并后的n-gram片段个数作为集合并集,这样就能得出两个句子的相似性得分。比如下面两个句子:


句子A:苹果电脑的价格

句子B:苹果ipad的价格


两个句子转换为2-gram后,形成如下集合:

SetA={ 苹果,果电,电脑,脑的,的价,价格}

SetB={ 苹果,果ipadipad的,的价,价格}

两个集合求交集得出相同语言片段个数为:3.(即为:苹果,的价,价格)

两个集合求并集得出分母大小为:8

所以这两个句子的相似度为:3/8=0.375


Jaccard的世界里,一切都是这么简单,智商80以上人群看完之后都会会心一笑,此刻,他们的眼里闪耀着智慧的光芒。


原生态Jaccard得分由于过于简单,在计算相似性只用Jaccard的情形比较少,但是往往会被用来作为机器学习系统的一个比较重要的特征因子,很多NLP领域的评测方法也参考这个思想,比如机器翻译评测方法BLUE,文本摘要评测方法ROUGE-N等本质上就是类似于Jaccard的思想,其实语义Jaccard对传统Jaccard的改进思路也可以试着用来改造BLUE或者ROUGE-N评价标准,当然如果实验证明没效果就当我没说这句话。


|语义版Jaccard的诞生


公元2015年的第一场雪,来得比往年早了一些。镜头摇近,一位面容憔悴衣衫落魄的中年男子(注1:不是杜甫,是本文作者)飘入画面,他深深地吸入一口帝都醇厚甘冽的雾霾,由于吸得生猛,只见他虎躯一震,止不住干咳两声,背手望着空中漫天纷扬飞舞的细雪,诗兴大发,正要蹦出:“月是故乡明,霾是故都纯,黄狗身上白,白狗身上肿”这首情景交融感人至深的千古咏雪名句。突然间,一个诡异的念头飘入他的脑中:经典Jaccard只是衡量两个句子字面上的文本匹配程度,如果用语义相似性替代字面相似性来改造一下

  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 13
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值