1
0
mirror of https://github.com/fumiama/paper-manager.git synced 2026-06-12 04:00:23 +08:00

add cosine similarity & 完善 PaperType

This commit is contained in:
源文雨
2023-03-22 20:54:54 +08:00
parent 5aeca6d5fa
commit 0756b36633
3 changed files with 91 additions and 1 deletions

19
backend/utils/cosimi.go Normal file
View File

@@ -0,0 +1,19 @@
// edit from https://github.com/kabychow/go-cosinesimilarity
package utils
import "math"
// Similarity len(x) must eq len(y)
func Similarity(x, y []uint8) float64 {
var sum, s1, s2 uint64
for i := 0; i < len(x); i++ {
sum += uint64(x[i]) * uint64(y[i])
s1 += uint64(x[i]) * uint64(x[i])
s2 += uint64(y[i]) * uint64(y[i])
}
if s1 == 0 || s2 == 0 {
return 0.0
}
return float64(sum) / (math.Sqrt(float64(s1)) * math.Sqrt(float64(s2)))
}