默认算分逻辑是:AI 直接判断语义相似度
semantic_similarity.pyfrom lib.semantic_similarity import compare_phrases
result = await compare_phrases("深度学习", "神经网络")
# 使用: AI 直接判断(唯一方法)
# 返回: {"说明": "...", "相似度": 0.85}
text_embedding.py 的 compare_phrases()from lib.text_embedding import compare_phrases
result = await compare_phrases("深度学习", "神经网络")
# 使用: AI 直接判断(默认,与 semantic_similarity 相同)
# 返回: {"说明": "...", "相似度": 0.85}
两者默认行为完全一致!
输入: "深度学习" vs "神经网络"
↓
发送给 AI 的 Prompt:
"请计算以下两个文本的语义相似度,输出 0-1 之间的分数"
↓
AI 理解语义
↓
AI 返回:
{
"说明": "两者都是人工智能领域的核心概念,深度学习基于神经网络...",
"相似度": 0.85
}
除了默认的 AI 判断,还支持:
# 方法 1: AI 直接判断(默认)⭐
result = await compare_phrases("A", "B")
# 或明确指定
result = await compare_phrases("A", "B", method="ai_direct")
# 方法 2: 余弦相似度(基于向量)
result = await compare_phrases("A", "B", method="cosine")
# 方法 3: 欧氏距离
result = await compare_phrases("A", "B", method="euclidean")
# 方法 4: 曼哈顿距离
result = await compare_phrases("A", "B", method="manhattan")
# 方法 5: 点积
result = await compare_phrases("A", "B", method="dot_product")
ai_direct (默认) ⭐⭐⭐⭐⭐ 最准确
cosine ⭐⭐⭐⭐
euclidean ⭐⭐⭐
manhattan ⭐⭐⭐
dot_product ⭐⭐⭐
dot_product ⚡⚡⚡⚡⚡ 最快
manhattan ⚡⚡⚡⚡
euclidean ⚡⚡⚡⚡
cosine ⚡⚡⚡
ai_direct ⚡⚡⚡⚡⚡ (缓存命中后极快)
# 不传 method 参数,使用默认值
result = await compare_phrases("深度学习", "神经网络")
原因: 准确度最高,有缓存,第二次极快
# 如果要计算大量相似度
result = await compare_phrases("A", "B", method="cosine", dim=128)
原因: 向量生成后,计算速度快
# 直接替换导入,无需修改代码
from lib.text_embedding import compare_phrases # 改这里
result = await compare_phrases("A", "B") # 其他代码不变
A: 因为准确度最高,且有缓存机制,第二次调用极快。
A:
A:
cosineai_directA:
# 默认(AI 判断)
result = await compare_phrases("A", "B")
# 切换到余弦相似度
result = await compare_phrases("A", "B", method="cosine")
# 查看详细说明
cat examples/scoring_logic_explanation.md
# 运行交互式演示
python examples/demo_scoring_methods.py
# 运行对比示例
python examples/compare_with_semantic_similarity.py
# 最简单的用法(推荐)⭐
from lib.text_embedding import compare_phrases
result = await compare_phrases("深度学习", "神经网络")
print(result['相似度']) # 0.85
print(result['说明']) # AI 给出的详细理由
就这么简单!