我的图形包含标签X
和UnknownX
,它们通过关系:MAYBE
链接在一起,如果{{1 }}。为此,我认为Jaccard可能是不错的初始方法。
Neo4j的算法插件的Jaccard相似性实现的https://docs.mongodb.com/manual/tutorial/modify-chunk-size-in-sharded-cluster/指出
X
我想使用该实现来计算字符串值列表的相似度。 Neo4j是否可以通过某种方式来计算字符串的相似度?
示例查询:
match (u:UnknownX {name: 'John Doe'})-[r:MAYBE]-() return count(r) > 1
答案 0 :(得分:1)
您可以尝试将每个字符串转换为字符代码数组(基于某种编码,例如UTF-8或UTF-16)。
例如,比较“ hello”和“ hello!”使用UTF-8编码,此查询:
RETURN algo.similarity.jaccard(
apoc.text.bytes('hello'),
apoc.text.bytes('hello!')
)
将返回0.5714285714285714
。
apoc.text.bytes函数根据某些字符编码(默认情况下使用UTF-8)返回字符代码列表。