我正在使用python。现在我有一个mongoDB数据库集合,其中所有文档都有这样的格式:
{"_id":ObjectId("53590a43dc17421e9db46a31"),
"latlng": {"type" : "Polygon", "coordinates":[[[....],[....],[....],[....],[.....]]]}
"self":{"school":2,"home":3,"hospital":6}
}
其中的领域" self"表示Polygon中的场地类型以及相应场地类型的数量。不同的文件有不同的自我领域,例如{"肯德基":1,"建筑":2,"家庭":6},{"购物mall":1,"加油站":2}
现在我需要计算两个" self"之间的余弦相似度。两个文件的字段。之前,我的所有文档都作为字典保存在pickle文件中,我使用以下代码来计算相似度:
vec = DictVectorizer()
total_arrays = vec.fit_transform(data + citymap).A
vector_matrix = total_arrays[:len(data)]
citymap_base_matrix = total_arrays[len(data):]
def cos_cdist(matrix, vector):
v = vector.reshape(1, -1)
return scipy.spatial.distance.cdist(matrix, v, 'cosine').reshape(-1)
for vector in vector_matrix:
distance_result = cos_cdist(citymap_base_matrix,vector)
在这里,数据和城市地图就像[{" KFC":1," building":2," home":6},{& #34;学校":2,"家庭":3,"医院":6},{"购物中心":1,"加油站":2}]
但是现在我正在使用mongoDB,我想知道是否有mongoDB方法以更简单的方式计算相似性,任何想法?