文本相似度

text-similarityPOST
POSThttps://v1.apizero.cn/api/text-similarity

概述

纯本地计算的文本相似度比对,输入两段文本(每段 ≤ 5000 字)输出 4 种相似度指标 + 加权综合评分 + 5 级评级。 • **零延迟零成本**:纯 PHP 本地计算,无外部服务依赖,平均响应 < 100ms • **4 种指标**:余弦相似度(35%)+ Jaccard 系数(25%)+ 编辑距离归一化(20%)+ LCS 比率(20%) • **5 级评级**:几乎相同 / 高度相似 / 中度相似 / 轻度相似 / 差异较大 • **修复源码 bug**:自实现 mb_levenshtein 字符级编辑距离,杜绝 PHP 内置 levenshtein 按字节计算导致的 85 汉字崩溃问题 • **超长保护**:超过 500 字符自动截取并按比例还原,5000×5000 字符比对约 60-80ms • **典型场景**:评论查重、AI 生成内容检测、多语言翻译质量评估、客服话术匹配

调用约定

  • 网关 · https://v1.apizero.cn
  • 鉴权 · Authorization: Bearer <API Key>
  • 回包 · JSON {code, msg, data}。成功看 code === 0,不要只看 HTTP 200。
/aidocs/text-similarity/raw.md
打开 Markdown

鉴权

匿名每日 100 次、QPS 5;登录用户每日 500 次、QPS 10(全部免费)。零服务成本,纯本地计算。

获取 API Key

请求头

Authorizationstring选填

推荐:Bearer <API Key>。兼容请求头 X-API-Key,以及 Query api_key / apikey / key(key 仅当值为 sk_live_/sk_test_/sk_stag_ 形态时生效)。匿名可不传,受每日免费额度限制。

Content-Typestring选填

支持 application/x-www-form-urlencoded 或 application/json

请求参数

POST · APPLICATION/JSON

text1string必填

第一段文本,1-5000 字符(中英文均按 1 字符计)

例今天天气不错,适合出门散步

text2string必填

第二段文本,1-5000 字符

例今天天气真好,适合出门走走

{
  "text1": "今天天气不错,适合出门散步",
  "text2": "今天天气真好,适合出门走走"
}

返回结果

顶层固定为 code / msg / data。下表一般是 data 内字段。 code · msg · data · tips · request_id

text1_lengthnumber

text1 字符长度(mb_strlen)

text2_lengthnumber

text2 字符长度

overall_scorenumber

综合相似度评分 0.0-1.0(保留 4 位小数)

similarity_levelstring

相似度等级英文枚举:nearly_identical / highly_similar / moderately_similar / slightly_similar / different

level_namestring

相似度等级中文:几乎相同 / 高度相似 / 中度相似 / 轻度相似 / 差异较大

metricsobject

详细指标对象

cosinenumber

余弦相似度 0-1(基于 2-gram 词频向量),权重 35%

jaccardnumber

Jaccard 相似系数 0-1(2-gram 集合交并比),权重 25%

edit_similaritynumber

编辑距离归一化相似度 0-1(1 - distance/maxLen),权重 20%

lcs_similaritynumber

LCS 最长公共子序列归一化比率 0-1(2 × lcsLen / (len1+len2)),权重 20%

edit_distancenumber

编辑距离原始值(字符数;超过 500 字符截取后按比例还原)

lcs_lengthnumber

LCS 最长公共子序列长度(截取后的实际值)

truncatedboolean

edit/LCS 是否经过 500 字符截取近似(仅 cosine/jaccard 始终基于全文)

tipsstring

品牌提示(所有接口统一返回):极数本源 · https://apizero.cn

返回示例

{
  "code": 0,
  "msg": "成功",
  "data": {
    "text1_length": 13,
    "text2_length": 13,
    "overall_score": 0.6471,
    "similarity_level": "moderately_similar",
    "level_name": "中度相似",
    "metrics": {
      "cosine": 0.5833,
      "jaccard": 0.4118,
      "edit_similarity": 0.6923,
      "lcs_similarity": 0.9231,
      "edit_distance": 4,
      "lcs_length": 12
    },
    "truncated": false
  },
  "request_id": "abc123def456",
  "tips": "极数本源 · https://apizero.cn"
}

请求示例

示例都是服务端写法。Python / JavaScript 各有常规写法和官方库。

curl -sS -X POST "https://v1.apizero.cn/api/text-similarity" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "text1": "今天天气不错,适合出门散步",
  "text2": "今天天气真好,适合出门走走"
}'

错误码

先看业务 code。HTTP 也可能不是 200。

0200

成功

4000400

参数错误

4011401

API Key 无效

4013403

API Key 已暂停

4014403

当前 IP 不在 Key 白名单

4015401

此接口需要 API Key

4022402

余额不足

4029429

调用过快(QPS)

4030429

今日免费额度已用完

4040503

接口已下线

4041404

接口不存在

5000500

服务器内部错误

5020502

上游暂时不可用

5021502

上游返回格式异常

5030502

暂无可用节点

调用限制

计费模式
完全免费
QPS 限制
QPS 3
登录免费额度
50000 次(已认证)
匿名每日额度
10000 次(无 API Key)
黄金会员
每天 50,000 次 · QPS 10
钻石会员
每天 100,000 次 · QPS 30
企业会员
每天 1,000,000 次 · QPS 120

购买套餐、看评价请走商城详情。 购买 / 调试

更新日志

  • 1.0.02026-05-07

    首次上线,纯本地计算无服务依赖 4 种相似度指标加权融合:余弦 35% + Jaccard 25% + Edit 20% + LCS 20% 修复源码 BUG:自实现 mb_levenshtein 按字符(非字节)计算编辑距离,杜绝中文 85 字以上崩溃问题 修复源码 BUG:源码 levenshtein else 分支用 mb_substr(0,200) 截取后仍可能超 255 字节限制 → 已用纯字符级算法替代 LCS 空间优化为 O(min(m,n)),5000×5000 比对内存 < 200KB 超过 500 字符自动截取并按比例还原 edit_distance(保证 P99 响应 < 100ms) 新增 truncated 字段,告知前端是否启用了截取近似 新增 metrics.lcs_length 字段,便于查重场景直接读取「连续相同片段长度」 5 级评级:nearly_identical(≥0.9) / highly_similar(≥0.7) / moderately_similar(≥0.4) / slightly_similar(≥0.2) / different 支持 application/json 请求体

免责声明

本接口为纯本地计算,所有指标基于经典文本算法(余弦/Jaccard/Levenshtein/LCS),不涉及深度学习语义理解。对于「换词不换意」的同义改写(如「我吃了苹果」vs「我把那个红色水果吞了」),相似度可能偏低。请根据业务场景选择合适的指标——例如查重场景关注 lcs_similarity,AI 检测关注 cosine + jaccard 综合判断。

文本相似度 接入文档|极数本源