19 lines
483 B
Python
19 lines
483 B
Python
import math
|
|
|
|
def cosine_similarity(a, b):
|
|
dot = sum(x * y for x, y in zip(a, b))
|
|
norm_a = math.sqrt(sum(x**2 for x in a))
|
|
norm_b = math.sqrt(sum(x**2 for x in b))
|
|
return dot / (norm_a * norm_b)
|
|
|
|
# 题目4-1,4-2
|
|
A = [1, 2, 3]
|
|
B = [4, 5, 6]
|
|
dot_product = sum(a*b for a,b in zip(A,B))
|
|
print("点积 =", dot_product)
|
|
print("余弦相似度 =", cosine_similarity(A, B))
|
|
|
|
# 题目4-3
|
|
A2 = [1, 0]
|
|
B2 = [0, 1]
|
|
print("特殊向量余弦相似度 =", cosine_similarity(A2, B2)) |