终极macOS菜单栏管理指南:如何用Ice彻底解决刘海屏和多显示器难题
2026/8/8 14:32:43
StructBERT中文文本相似度模型是基于structbert-large-chinese预训练模型,经过大规模中文相似度数据集训练得到的专业模型。该模型在多个公开数据集上表现出色,能够准确判断两段中文文本之间的语义相似度。
模型训练使用了atec、bq_corpus、chineseSTS、lcqmc、paws-x-zh五个数据集,总计52.5万条数据,正负样本比例均衡(0.48:0.52)。由于许可限制,目前公开的数据集包括BQ_Corpus、chineseSTS和LCQMC。
pip install torch transformers sentence-transformers gradiofrom sentence_transformers import SentenceTransformer model = SentenceTransformer('structbert-large-chinese-similarity')from sentence_transformers import util sentences1 = ["今天天气真好"] sentences2 = ["今天的天气非常不错"] # 计算句子嵌入 embeddings1 = model.encode(sentences1, convert_to_tensor=True) embeddings2 = model.encode(sentences2, convert_to_tensor=True) # 计算余弦相似度 cosine_scores = util.cos_sim(embeddings1, embeddings2) print(f"相似度得分: {cosine_scores[0][0]:.4f}")pairs = [ ("我喜欢吃苹果", "苹果是我最喜欢的水果"), ("今天要开会", "明天有重要会议"), ("这个手机很好用", "这台电脑性能不错") ] for pair in pairs: emb1 = model.encode(pair[0], convert_to_tensor=True) emb2 = model.encode(pair[1], convert_to_tensor=True) score = util.cos_sim(emb1, emb2)[0][0] print(f"'{pair[0]}' 和 '{pair[1]}' 的相似度: {score:.4f}")import gradio as gr def calculate_similarity(text1, text2): embedding1 = model.encode(text1, convert_to_tensor=True) embedding2 = model.encode(text2, convert_to_tensor=True) score = util.cos_sim(embedding1, embedding2)[0][0].item() return f"相似度得分: {score:.4f}" iface = gr.Interface( fn=calculate_similarity, inputs=[gr.Textbox(label="文本1"), gr.Textbox(label="文本2")], outputs="text", title="StructBERT中文文本相似度计算器" ) iface.launch()| 测试项 | 单次请求耗时(ms) | 并发10请求耗时(ms) | 准确率 |
|---|---|---|---|
| 短文本(10字) | 120 | 350 | 0.92 |
| 中文本(50字) | 180 | 420 | 0.89 |
| 长文本(200字) | 250 | 600 | 0.85 |
from fastapi import FastAPI, HTTPException from pydantic import BaseModel app = FastAPI() class TextPair(BaseModel): text1: str text2: str @app.post("/similarity") async def calculate_similarity_api(pair: TextPair): try: embedding1 = model.encode(pair.text1, convert_to_tensor=True) embedding2 = model.encode(pair.text2, convert_to_tensor=True) score = util.cos_sim(embedding1, embedding2)[0][0].item() return {"similarity": score} except Exception as e: raise HTTPException(status_code=500, detail=str(e))问题:首次加载模型耗时较长
解决方案:
问题:某些文本对的得分不符合预期
解决方案:
问题:处理长文本时内存不足
解决方案:
StructBERT中文相似度模型为中文文本相似度计算提供了强大的工具。通过本教程,您已经学会了如何部署和使用该模型,以及如何保障服务的SLA。
最佳实践建议:
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。