jaccard_similarity

描述

计算两个句子之间的Jaccard相似度。 Jaccard相似度是两个集合交集大小除以并集大小,用于衡量两个句子的相似程度。 这里将每个句子视为单词集合,忽略单词出现的顺序和频率。

函数签名

jaccard_similarity(str1, str2) -> None

参数

sentence1 (str)

第一个输入句子

sentence2 (str)

第二个输入句子

返回值


float 返回两个句子的Jaccard相似度,范围在[0, 1]之间: - 1表示两个句子完全相同(包含相同的单词集合) - 0表示两个句子完全不同(没有共同单词) - 中间值表示部分相似

Python调用示例: ```python from rust_pyfunc import jaccard_similarity

测试完全相同的句子

s1 = "The quick brown fox" s2 = "The quick brown fox" sim1 = jaccard_similarity(s1, s2) print(f"完全相同的句子相似度: {sim1}") # 输出: 1.0

测试部分相同的句子

s3 = "The lazy brown dog" sim2 = jaccard_similarity(s1, s3) print(f"部分相同的句子相似度: {sim2}") # 输出: 0.4 (2个共同词 / 5个不同词)

测试完全不同的句子

s4 = "Hello world example" sim3 = jaccard_similarity(s1, s4) print(f"完全不同的句子相似度: {sim3}") # 输出: 0.0

注意:结果会忽略大小写和标点符号

s5 = "THE QUICK BROWN FOX!" sim4 = jaccard_similarity(s1, s5) print(f"大小写不同的相似度: {sim4}") # 输出: 1.0 ```

示例

输入:

jaccard_similarity( "机器学习算法", "深度学习算法" )

输出:

0.0

输入:

jaccard_similarity( "Python编程", "Python编程语言" )

输出:

0.0

输入:

jaccard_similarity( "完全不同的句子", "毫无共同点的文本" )

输出:

0.0

Python使用示例

import numpy as np
from rust_pyfunc import jaccard_similarity

# 使用示例


result = jaccard_similarity("机器学习算法", "深度学习算法")
print(f"结果: {result}")