大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新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)=(x1−x2)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)=∣x1∣∣x2∣x1⋅x2
(3)杰卡德距离
L ( A , B ) = ∣ A ⋃ B ∣ ∣ A ⋂ B ∣ L(A,B)=\frac{|A\bigcup B|}{|A\bigcap B|} L(A,B)=∣A⋂B∣∣A⋃B∣
(4)海明距离
海明距离主要用于simhash算法。
海明距离是用特征各维度不相等的个数来衡量差异性。
(5)最小编辑距离
字符串A不断增删改直至与字符串B相等,所需要的最少修改次数作为距离的度量。一般用动态规划来求解
参考:
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/213554.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...