#文本分析#一文讲述常见的文本相似度计算方法
本文插图
本文插图
作者 | LU_ZHAO
责编 | 徐威龙
出品 | AI科技大本营(ID:rgznai100)
本文插图
前言
在自然语言处理中 , 我们经常需要判定两个东西是否相似 。
比如 , 在微博的热点话题推荐那里 , 我们需要比较微博之间的相似度 , 让相似度高的微博聚集在一起形成一个簇 , 提出一个主题 。
在问答系统中 , 比如说人工客服 , 我们需要提前准备好问题和一些答案 , 让用户输入的问题与题库中的问题进行相似度的比较 , 最后输出答案 。
在推荐系统中 , 我们需要提取一个用户的所有物品 , 在根据这个物品找到对应的用户群 , 比较两个用户之间的相似性 , 在进行相应的推荐(协同过滤) 。
在对语料进行预处理的时候 , 我们需要给予文本的相似度 , 把相似度高的重复主题过滤掉 。
总之 , 相似度是一种非常有用的工具 , 可以帮助我们解决很多问题 。
本文插图
任务目标
一般来说 , 是比较两个物体(商品 , 文本)之间的相似度 。 这里的相似度是一个抽象的值 , 它可以抽象成估计的百分比 。
在推荐工程中 , 计算相似度是为了给用户推送一定量的物品 。 即把所有的相似度排序 , 然后选出最高的那几个物品 。
人是很容易判断出物品的相似度的 , 人们会在心里有一个考量 。 那么程序如何判断呢?
如果是文本分析 , 它首先就要用到分词技术 , 然后去掉不必要的词(语气词 , 连接词) 。 然后对词给一个抽象的量表示权重 , 最后在用一些方法去统计出整体的相似度 。
如果是其他的 , 可能首先也需要进行数据清洗的工作 , 留下那些关键的能够表示物体特征的部分 , 对这些部分定权值 , 再去估计整体 。
- 相似度计算关键组件
- 表示模型
- 度量方法
后者负责基于前面得到的数值向量计算物体之间的相似度 。
- 距离的度量方式
本文插图
使用python计算欧式距离:
distance = numpy.linalg.norm(vec1 - vec2)
相似度为:
similarity = 1.0/(1.0 + np.linalg.norm(dataA - dataB))
- 余弦距离
本文插图
与欧氏距离的区别:
- 欧氏距离能够体现个体数值特征的绝对差异 , 所以更多的用于需要从维度的数值大小中体现差异的分析 , 如使用用户行为指标分析用户价值的相似度或差异 。
- 余弦距离更多的是从方向上区分差异 , 而对绝对的数值不敏感 , 更多的用于使用用户对内容评分来区分兴趣的相似度和差异 , 同时修正了用户间可能存在的度量标准不统一的问题(因为余弦距离对绝对数值不敏感)
- Jacard相似度
推荐阅读
- 南疆烽烟正十年■杨得志代替王必成,日本媒体分析了其中缘由,战前中央临阵换将
- [南疆烽烟正十年]杨得志代替王必成,日本媒体分析了其中缘由,战前中央临阵换将
- 『如水月色』2020年共享充电宝的市场疫情过后发展趋势走向分析
- 体坛焦点@利物浦是维尔纳的完美下家吗?,深度:从技术特点到战术打法分析
- [悠家娱乐]三年负债降至4000亿!一文读懂恒大战略转型的深层逻辑
- 「世界最快新冠病毒检测技术有何特点」新闻分析:“世界最快”新冠病毒检测技术有何特点
- 「直播吧」我正对我半年来的表现进行分析,卢卡库:健康是最重要的
- 集成灶的价格高吗?从火星人实力分析价格问题
- 「前瞻网」创造力是大脑右半球的产物?分析音乐家的大脑活动后发现没那么简单
- 中商情报网:一文了解石墨烯是什么?我国口罩产能有多大?,新型石墨烯口罩面世
