文本相似度度量_文本相似度分析

文本相似度度量_文本相似度分析文本相似度度量就是衡量两个文本相似度的算法。主要包括两个步骤:将文本表示为向量(文本表示);衡量两个向量的相似度(相似度度量)。1文本表示文本表示也包括两部分:文本切分粒度(按什么粒度切分得到文本特征),如何构造特征(如何将文本特征转化成数值特征)。1.1文本切分粒度可以按照字,词,n-gram对文本进行切分;当文本是长文本时,也可以利用主题模型提取关键词,来减少词的维度。1.2文本特征构建特征构建就是如何将词袋模型中的词转化成向量表示。可以用one-hot,对应位置的权重可以是TF或者.

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

在这里插入图片描述

文本相似度度量就是衡量两个文本相似度的算法。主要包括两个步骤:将文本表示为向量(文本表示);衡量两个向量的相似度(相似度度量)。

1 文本表示

文本表示也包括两部分:文本切分粒度(按什么粒度切分得到文本特征),如何构造特征(如何将文本特征转化成数值特征)。

1.1 文本切分粒度

可以按照字,词,n-gram对文本进行切分;当文本是长文本时,也可以利用主题模型提取关键词,来减少词的维度。

1.2 文本特征构建

特征构建就是如何将词袋模型中的词转化成向量表示。可以用one-hot,对应位置的权重可以是TF或者是TF-IDF。也可以用分布式表示word2vec。或者是google发布的simhash。

simhash:

google发布的初衷是解决亿万级别的网页去重任务。通常用于长文本,降维将长文本压缩至几个关键词表示(如取TF-IDF权重大的top k个词)。然后将关键词编码成固定长度的二进制字符串。用固定长度的编码来表示一篇文章。

2 相似度度量

(1)欧式距离
L ( x 1 , x 2 ) = ( x 1 − x 2 ) 2 L(x_1,x_2)=\sqrt{(x_1-x_2)^2} L(x1,x2)=(x1x2)2

(2)余弦距离

用两个向量夹角的余弦值来衡量距离。
L ( x 1 , x 2 ) = x 1 ⋅ x 2 ∣ x 1 ∣ ∣ x 2 ∣ L(x_1,x_2)=\frac{x_1\cdot x_2}{|x_1||x_2|} L(x1,x2)=x1x2x1x2
(3)杰卡德距离
L ( A , B ) = ∣ A ⋃ B ∣ ∣ A ⋂ B ∣ L(A,B)=\frac{|A\bigcup B|}{|A\bigcap B|} L(A,B)=ABAB
(4)海明距离

海明距离主要用于simhash算法。

海明距离是用特征各维度不相等的个数来衡量差异性。

(5)最小编辑距离

字符串A不断增删改直至与字符串B相等,所需要的最少修改次数作为距离的度量。一般用动态规划来求解

参考:

[1]知乎:常见文本相似度计算方法简介

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/213554.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • vue返回上一层不刷新页面_vue嵌套html

    vue返回上一层不刷新页面_vue嵌套html解决嵌套路由刷新时,路由没有变化,正常情况下页面是不会重新渲染的1、在router-view中加上条件渲染v-if默认为true。让它显示出来2、写写一个reload方法,在页面刷新只有,点击某个查询条件的时候调用这个重载的方法这是条件渲染变化了为false在修改数据之后使用$nextTick,条件渲染变化了为true则可以在回调中获取更新后的DOM如果需要带有查询参数…

    2022年10月7日
    0
  • 实现textarea内换行

    为什么会出现这个问题呢?是因为我在做自己个人网站的留言板时,我想预设好textarea的值,像这样,让用户输入的时候直接另起一行!不墨墨唧唧了,直接告诉你们,下面两种方法是没有用的。1.企图在html里面加上<br/><textareacols="15"rows="8"id="Txt">To

    2022年4月3日
    56
  • 详解SpringMVC执行流程[通俗易懂]

    详解SpringMVC执行流程[通俗易懂]SpringMVC执行流程SpringMVC执行流程整体如下:执行流程分析(1)浏览器提交请求到中央调度器。(2)中央调度器直接将请求转给处理器映射器。(3)处理器映射器会根据请求,找到处理该请求的处理器,并将其封装为处理器执行链后返回给中央调度器。(4)中央调度器根据处理器执行链中的处理器,找到能够执行该处理器的处理器适配器。(5)处理器适配器调用执行处理器。(6)处理器将处理结果及要跳转的视图封装到一个对象ModelAndView中,并将其返回给处理器适配器。(7)处理器适配

    2022年6月28日
    25
  • vscode新建html文件并快速生成标准的html代码_用visual studio code制作网页

    vscode新建html文件并快速生成标准的html代码_用visual studio code制作网页1、Ctrl+N快捷创建文件2、Ctrl+s快速保存文件,保存时用.html结尾保存3、Ctrl+可以让vscode的字体变大,Ctrl-可以让字体变小4、输入!,然后按下tab健可以快速生成页面骨架结构5、单击鼠标右键,点击openindefaultbrowser可以打开浏览器预览页面效果,前提是安装了浏览器插件…

    2022年8月22日
    5
  • 内核编程与应用程序开发的主要区别是_内核编程用什么语言

    内核编程与应用程序开发的主要区别是_内核编程用什么语言内核编程既不能访问C库也不能访问标准的C头文件。内核编程时必须使用GNUC。内核编程缺乏像用户空间那样的内存保护机制。内核编程时难以执行浮点数运算。内核给每个进程只有一个很小的定长堆栈。由于内核支持异步中断、抢占和SMR,因此必须时刻注意同步和并发。要考虑可移植性的重要性。…

    2022年10月8日
    0
  • 关于后台动态模板添加内容的总结 Builder使用

    关于后台动态模板添加内容的总结 Builder使用

    2021年10月21日
    41

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号