package main

import ("fmt"

"math"

"strconv"

"strings")

type SimHash struct {

IntSimHash int64

HashBitsint}

func main() {

str := "夜空中最亮的星是否记清那仰望的人 心里的孤独和叹息夜空中最亮的星是否记清那仰望的人 心里的孤独和叹息夜空中最亮的星是否记清那仰望的人 心里的孤独和叹息夜空中最亮的星是否记清那仰望的人 心里的孤独和叹息夜空中最亮的星是否记清那仰望的人 心里的孤独和叹息夜空中最亮的星是否记清那仰望的人 心里的孤独和叹息"str2 := "夜空中最亮的星是否记清那仰望的人 心里的孤独和叹息夜空中最亮的星是否记清那仰望的人 心里的孤独和叹息夜空中最亮的星是否记清那仰望的人 心里的孤独和叹息夜空中最亮的星是否记清那仰望的人 心里的孤独和叹息夜空中最亮的星是否记清那仰望的人 心里的孤独和叹息夜空中最亮的星是否记清那仰望的人 心里的孤独和叹息"

//str3:="nai nai ge xiong cao"s :=params()//str hash 值

hash :=s.Simhash(str)

fmt.Println(hash)//str2 距离

hash2 :=s.Simhash(str2)

fmt.Println(hash2)//计算相似度

sm :=s.Similarity(hash, hash2)

fmt.Println(sm)//距离

ts :=s.HammingDistance(hash, hash2)

fmt.Println(ts)

}/**距离 补偿*/func (s*SimHash) HammingDistance(hash, other int64) int{

x := (hash ^ other) & ((1 << uint64(s.HashBits)) - 1)

tot := 0for x!= 0{

tot+= 1x&= x - 1}

return tot

}/**相似度*/func (s*SimHash) Similarity(hash, other int64) float64 {

a :=float64(hash)

b :=float64(other)if a >b {

return b/a

}

return a/b

}/**海明距离hash*/func (s*SimHash) Simhash(str string) int64 {

m := strings.Split(str, " ")

token_int := make([]int, s.HashBits)

for i := 0; i < len(m); i++{

temp :=m[i]

t :=s.Hash(temp)

for j := 0; j < s.HashBits; j++{

bitMask := int64(1 <

token_int[j]+= 1} else {

token_int[j]-= 1}

}

}

var fingerprint int64= 0for i := 0; i < s.HashBits; i++{if token_int[i] >= 0{

fingerprint+= 1 <

}

}

return fingerprint

}/**初始化*/func params() (s*SimHash) {

s= &SimHash{}

s.HashBits= 64return s

}/**hash 值*/func (s*SimHash) Hash(token string) int64 {if token == ""{

return0} else {

x := int64(int(token[0]) << 7)

m := int64(1000003)

mask := math.Pow(2, float64(s.HashBits-1))

s := strconv.FormatFloat(mask, 'f', -1, 64)

tsk, _ := strconv.ParseInt(s, 10, 64)

for i := 0; i < len(token); i++{

tokens := int64(int(token[0]))

x= ((x * m) ^ tokens) &tsk

}

x^=int64(len(token))if x == -1{

x= -2}

return int64(x)

}

}

mysql 海明距离,golang 实现海明距离 demo相关推荐

  1. Java实现世代距离_IGD反转世代距离-多目标优化评价指标概念及实现

    IGD反转世代距离-多目标优化评价指标概念及实现 觉得有用的话,欢迎一起讨论相互学习~ 参考资料 多目标进化优化[1]-郑金华老师,邹娟老师著 实验室人手一本人人必看的宝藏图书! IGD(Invert ...

  2. 机器学习两种距离——欧式距离和马氏距离

    我们熟悉的欧氏距离虽然很有用,但也有明显的缺点.它将样品的不同属性(即各指标或各变量)之间的差别等同看待,这一点有时不能满足实际要求.例如,在教育研究中,经常遇到对人的分析和判别,个体的不同属性对于区 ...

  3. MySql Socket 完成数据库的增查Demo

    需求: 利用MySql数据库结合前端技术完成用户的注册(要求不使用Web服务技术),所以 Demo采用Socket技术实现Web通信. 第一部分:数据库创建 数据库采用mysql 5.7.18, 数据 ...

  4. [机器学习-概念] 什么是欧式距离、标准化欧式距离、马氏距离、余弦距离

    1.欧式距离(Euclidean Distance) 欧式距离源自N维欧氏空间中两点x1,x2x_1,x_2x1​,x2​间的距离公式: 2.标准化欧式距离(Standardized Euclidea ...

  5. ML:图像数据、字符串数据等计算相似度常用的十种方法(余弦相似性、皮尔逊、闵可夫斯基距离/曼哈顿距离/欧氏距离/切比雪夫距离、马氏距离、汉明距离、编辑距离、杰卡德相似系数、相对熵/KL散度、Helli

    ML:图像数据.字符串数据等计算相似度常用的十种方法(余弦相似性.皮尔逊.闵可夫斯基距离/曼哈顿距离/欧氏距离/切比雪夫距离.马氏距离.汉明距离.编辑距离.杰卡德相似系数.相对熵/KL散度.Helli ...

  6. (《机器学习》完整版系列)附录 ——7、有趣的距离与范数(距离是两点之间的,如果将一个点固定在原点,则为向量的范数)

    聚类的相似度通常用距离来刻划,距离又分为"(度量)距离"和"非度量距离","度量距离"由四条基本性质而"非度量距离"少满 ...

  7. 简单粗暴理解与实现机器学习之K-近邻算法(三):距离度量、欧氏距离、曼哈顿距离、切比雪夫距离、闵可夫斯基距离、标准化距离、余弦距离、汉明距离、杰卡德距离、马氏距离

    K-近邻算法 文章目录 K-近邻算法 学习目标 1.3 距离度量 1 欧式距离**(Euclidean Distance):** 2 **曼哈顿距离(Manhattan Distance):** 3 ...

  8. 什么是范数,及其对应的 “曼哈顿距离“、“欧式距离“、“闵氏距离“、“切比雪夫距离“

    什么是范数,及其对应的 "曼哈顿距离"."欧式距离"."闵氏距离"."切比雪夫距离" 一.什么是范数 二.欧式距离(对应 ...

  9. 常见的几种距离量度(欧式距离、曼哈顿距离、切比雪夫距离等)

    在机器学习和数据挖掘中,我们经常需要计算样本之间的相似度,通常的做法是计算样本之间的距离.本文介绍几种常用的距离量度方法. 一.欧氏距离(Euclidean Distance) 我们从最常见的欧式距离 ...

最新文章

  1. WAIC 2021 | 思谋科技刘枢:赋能制造业需要什么样的算法平台?
  2. java内部类和匿名类
  3. 征战蓝桥 —— 2014年第五届 —— C/C++A组第9题——斐波那契
  4. android PreferenceActivity详解
  5. cocos2dx标准容器_cocos2dx[3.2](24)——内存管理机制
  6. wifi 信道_说了这么久的信道和频宽,这回总算能弄明白啦
  7. appsettings 连接oracle数据库,ABP .net core集成访问Oracle数据库
  8. tecplot对数坐标轴怎么画_一次更换双速风机接线经历,想通了改变磁极对数原理...
  9. dao层如何调用对象_以k8s集群管理为例,大牛教你如何设计优秀项目架构
  10. 无人车系统(四):轨迹跟踪PID控制
  11. 雄迈摄像头ffmpeg转码推送至websocket
  12. java bitset javadoc,BitSet的源码研究
  13. 亚楠魔域单机V6一键端分享
  14. Ireport 子报表分页
  15. c语言第二版第三章答案,C语言程序设计(第2版) 刘克威,张凌晓著 习题答案-第三章...
  16. systemverilog : constraint slove... before 详解
  17. 2018年物联网趋势
  18. 用c语言程序判断谁是小偷
  19. 京东小程序开放平台,他来了
  20. L1和L2 复习问题

热门文章

  1. 2022年第31届中国国际信息通信展览会
  2. HDU神、上帝以及老天爷(错排公式)
  3. Web网站架构演变历程
  4. SLAM前端知识汇总
  5. python发送文件_Python发送邮件(最全)
  6. 【学习笔记】数字图像基础02
  7. error: cannot use promoted field in struct literal of type [duplicate]
  8. 【聚水潭SDK使用说明】
  9. 骨牌问题(DP+矩阵快速幂)
  10. python语言编程函数_Python编程语言的函数功能