jaccard_similarity
描述
计算两个句子之间的Jaccard相似度。 Jaccard相似度是两个集合交集大小除以并集大小,用于衡量两个句子的相似程度。 这里将每个句子视为单词集合,忽略单词出现的顺序和频率。
函数签名
jaccard_similarity(str1, str2) -> None
参数
第一个输入句子
第二个输入句子
返回值
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}")