gla*_*313 6 python mongodb cosine-similarity
我正在使用Python。现在我有一个mongoDB数据库集合,其中所有文档都有这样的格式:
{"_id":ObjectId("53590a43dc17421e9db46a31"),
"latlng": {"type" : "Polygon", "coordinates":[[[....],[....],[....],[....],[.....]]]}
"self":{"school":2,"home":3,"hospital":6}
}
Run Code Online (Sandbox Code Playgroud)
其中,“self”字段表示Polygon中的场地类型以及对应的场地类型的数量。不同的文档有不同的 self 字段,例如 {"KFC":1,"building":2,"home":6}, {"shopping mall":1, "gas station":2}
现在我需要计算两个文档的两个“自身”字段之间的余弦相似度。之前,我的所有文档都以字典形式保存在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)
Run Code Online (Sandbox Code Playgroud)
这里,数据和城市地图就像 [{"KFC":1,"building":2,"home":6},{"school":2,"home":3,"hospital":6}, {“购物中心”:1,“加油站”:2}]
但现在我正在使用 mongoDB,我想知道是否有 mongoDB 方法以更直接的方式计算相似度,有什么想法吗?
| 归档时间: |
|
| 查看次数: |
2235 次 |
| 最近记录: |