DashText,是向量检索服务DashVector推荐使用的稀疏向量编码器(Sparse Vector Encoder),DashText可通过BM25算法将原始文本转换为稀疏向量(Sparse Vector)表达,通过DashText可大幅度简化使用DashVector 关键词感知检索能力。
说明
1. 需要使用您的api-key替换示例中的YOUR_API_KEY、您的Cluster Endpoint替换示例中的YOUR_CLUSTER_ENDPOINT,代码才能正常运行。
2. 本示例仅对Sparse Vector进行功能演示,请根据实际情况设置您的向量维度(可参考文章 什么是向量)。简化起见,本文示例代码中将向量(Dense Vector)维度设置为4。
Step1. 创建支持Sparse Vector的Collection
Python示例:
重要
仅内积度量(metric='dotproduct'
)支持Sparse Vector功能
Step2. 创建SparseVectorEncoder
使用内置Encoder
Python示例:
说明
内置Encoder使用 中文Wiki语料进行训练,采用 Jieba进行中文分词
基于自有语料创建Encoder
Python示例:
说明
1.内置Encoder可直接使用,无需使用原始语料进行训练,使用起来更加方便,同时泛化能力较强。但面对原始语料中专业术语较多等场景,准确性偏弱
2.基于自有语料创建Encoder,需要预先根据(全部)原始语料进行训练,准确性较高,自有语料创建Encoder具体使用可参考进阶使用
3.用户需根据自身业务场景和需求来选择Encoder,对于特定领域(大量专属词汇)的场景推荐基于自有语料创建Encoder
Step3. 插入带有Sparse Vector的Doc
Python示例:
Step4. 关键词感知的向量检索
Python示例:
Step5. 基于权重的关键词+语义检索
Python示例:
说明
参数alpha是控制稠密向量距离和稀疏向量距离加权的权重因子,alpha=0.0表示只采用稀疏向量进行距离度量,alpha=1.0表示只采用稠密向量进行距离度量。
API参考
更多DashText API详情可参考:
- Python SDK: dashtext · PyPI