文本相似度 | 余弦相似度思想

我一直觉得,在数据分析领域,只有文本分析是最“接地气儿”的,“接地气儿”不是指最简单,而是我们普通大众的使用它最多。

我们每天使用互联网,但不一定每个人都炒股,不一定都做行业研究,也不一定都搞科研,因此那些高大上的模型对大部分人来说都是飘忽在天上的,只有文本分析,他的产出结果是直接惠及到几乎全部人。

比如,你总得打字,会使用到输入法的模糊匹配;你总得网购,刷新页面的时候就会看到某宝给你推荐的产品;你总得看新闻,APP会根据你以往的输入给你推荐文章......

文本分析最基本的可以看正则表达式,我曾经写过SAS和Python的相关文章:

这个小系列,介绍的是计算文本之间的相似度。

1. 计算文本相似度有什么用?

  • 反垃圾文本的捞取

“诚聘淘宝兼职”、“诚聘打字员”...这样的小广告满天飞,作为网站或者APP的运营者,不可能手动将所有的广告文本放入屏蔽名单里,挑几个典型广告文本,与它满足一定相似度就进行屏蔽。

  • 推荐系统

在微博和各大BBS上,每一篇文章/帖子的下面都有一个推荐阅读,那就是根据一定算法计算出来的相似文章。

  • 冗余过滤

我们每天接触过量的信息,信息之间存在大量的重复,相似度可以帮我们删除这些重复内容,比如,大量相似新闻的过滤筛选。

这里有一个在线计算程序,你们可以感受一下

忘了说了,复制下面地址到浏览器:http://51tools.info/textsimilarity.aspx

2. 余弦相似度的思想

余弦相似度,就是用空间中两个向量的夹角,来判断这两个向量的相似程度:

  • 当两个向量夹角越大,距离越远,最大距离就是两个向量夹角180°;
  • 夹角越小,距离越近,最小距离就是两个向量夹角0°,完全重合。

借鉴这一思想,我们可以计算出两个文本的相似程度。但,我们真的要用夹角的大小去衡量吗?

文本1与文本2之间的夹角估计有37°; 文本A与文本C之间的夹角大概72.8°

相似度,个么侬就好好弄一个相似程度好伐?比如99%相似、10%相似,更关键的是,夹角这个东西——

我不会算!

谁来跟我说说两个空间向量的角度怎么计算?哪本书有?

一个更好的方法是计算夹角的余弦,对,就是那个初二学的——cos(θ)!这个不仅有公式可以算,而且结果也很有意义,是一个0-1的取值。

所以,用余弦夹角来计算两个文本的距离的步骤就是:

  • 首先,将两个文本数字化,变成两个向量;
  • 其次,计算两个向量的夹角余弦cos(θ)

结束。

原文发布于微信公众号 - 数说工作室(shushuojun)

原文发表时间:2017-02-13

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏AI科技评论

业界 | 如期而至!谷歌开源 BERT 模型源代码

AI 科技评论按:自上个月谷歌公开 BERT 模型以来,BERT 模型以其双向、深层等特点,成功在 11 项 NLP 任务中取得 state of the ar...

1464
来自专栏新智元

NAACL2016年度论文:无监督神经网络理解虚构人物关系

【新智元导读】非监督式学习如何确定小说中动态的人物角色关系?本论文提出了一种新的神经网络架构的RMN,通过结合词典学习来对关系描述符进行学习,是深度循环自编码器...

3738
来自专栏崔庆才的专栏

NLP通用模型诞生?一个模型搞定十大自然语言常见任务

翻译:于之涵 编辑:Leo 出品:AI科技大本营 (公众号ID:rgznai100)

2115
来自专栏AI研习社

可能是最好玩的深度学习模型:CycleGAN的原理与实验详解

CycleGAN是在今年三月底放在arxiv的一篇文章,文章名为Learning to Discover Cross-Domain Relations with...

7464
来自专栏张善友的专栏

一个开源的,跨平台的.NET机器学习框架ML.NET

1696
来自专栏阮一峰的网络日志

TF-IDF与余弦相似性的应用(三):自动摘要

有时候,很简单的数学方法,就可以完成很复杂的任务。 这个系列的前两部分就是很好的例子。仅仅依靠统计词频,就能找出关键词和相似文章。虽然它们算不上效果最好的方法,...

3169
来自专栏玉树芝兰

如何用Python和深度神经网络发现即将流失的客户?

想不想了解如何用Python快速搭建深度神经网络,完成数据分类任务?本文一步步为你展示这一过程,让你初步领略深度学习模型的强大和易用。

2183
来自专栏鸿的学习笔记

The Brain vs Deep Learning(四)

现在我们经历了整个过程,让我们把所有这一切都放在全文中,看看大脑如何使用所有的这一切。大多数神经元每秒重复接收输入和发射的过程约50到1000次; 射击频率高度...

571
来自专栏AI科技评论

学界 | 女朋友说「我想要MAC」,OpenAI帮直男get到是口红还是电脑

AI 科技评论按:语言词汇的多义性已经是一个越发让人头疼的问题。比如女生对男朋友说:「生日礼物我想要MAC」,本来心怀期待地揣测他买来的唇彩会是什么色,结果收到...

3659
来自专栏机器之心

开源 | Intel发布神经网络压缩库Distiller:快速利用前沿算法压缩PyTorch模型

项目地址:https://github.com/NervanaSystems/distiller/

3323

扫码关注云+社区