项目介绍
简介
Text2vec 是一个强大的文本向量化工具,通过将文本(包括词、句子、段落)转化为向量来表征文本语义。该项目实现了多种文本表征模型,包括 Word2Vec、RankBM25、BERT、Sentence-BERT 和 CoSENT 等,支持文本相似度计算和语义匹配任务。
最新动态
- 2023年9月20日:发布 v1.2.9 版本,支持多卡推理并新增命令行工具(CLI),简化批量文本向量化的操作。
- 2023年9月3日:发布 v1.2.4 版本,支持在中文数据集上使用 CoSENT 方法训练的 FlagEmbedding 模型。
- 2023年7月17日:发布 v1.2.2 版本,支持多种语言的文本匹配模型,通过多语言数据集进行训练,提升了模型性能。
- …(更多版本更新请参见完整版本信息)
项目特色
文本向量表示模型
- Word2Vec:通过腾讯 AI Lab 提供的中文词向量数据实现的词向量检索,适用于句子的简单文字表征。
- SBERT (Sentence-BERT):在 BERT 基础上改进的句向量表示模型,专注于提高文本匹配的效率和准确性。
- CoSENT:针对句子排序问题设计的模型,通过改进的损失函数提高训练效果,适合复杂语义匹配任务。
- BGE:基于对比学习的微调模型,增强了模型在细粒度语义理解中的表现。
详细的方法和使用说明可以在项目 Wiki 中找到。
评估结果
英文数据集评测
文本匹配任务中,各种模型在英文数据集上的 spearman 系数显示了不同的方法各有优势,例如 GloVe 的基础模型得分为 61.77,而使用 CoSENT 的模型最高达到 80.12。
中文数据集评测
类似地,在中文数据集上,CoSENT 模型在多个子数据集上展示了优越的性能,平均评分显著高于其他方法,尤其在 ATEC、BQ 和 LCQMC 数据集上的表现尤为突出。
安装指南
安装 Text2vec 非常简单,可以通过 pip 命令安装:
pip install torch # 或 conda install pytorch
pip install -U text2vec
或者,通过克隆 GitHub 仓库安装:
pip install torch # 或 conda install pytorch
git clone https://github.com/shibing624/text2vec.git
cd text2vec
pip install --no-deps .
使用说明
文本向量表征
使用预训练模型计算文本的向量表示,示例代码如下:
from text2vec import SentenceModel
m = SentenceModel()
embedding = m.encode("如何更换花呗绑定银行卡")
print("Embedding shape:", embedding.shape)
命令行工具
Text2vec 还提供了命令行工具,支持批量获取文本向量,这极大地方便了大规模文本处理需求。
text2vec --input_file input.txt --output_file out.csv --batch_size 128 --multi_gpu True
下游任务
Text2vec 适用于多种下游任务:
- 句子相似度计算:支持细粒度语义相似度分析。
- 文本匹配搜索:可用于文档检索中的相似文本搜索,适合应用于各种语义匹配场景。
提供的示例代码展示了如何快速实现这些功能,帮助用户快速上手。
合作与联系
对于有意贡献或需要进一步技术支持的用户,项目团队热忱欢迎各界人士加入合作与讨论。联系信息和参与说明可在项目页中找到。