文档向量化工具(二):text2vec介绍

news/2024/7/19 11:27:29 标签: transformer, huggingface, text2vec, word2vec, nlp, LLM

目录

前言

text2vec%E5%BC%80%E6%BA%90%E9%A1%B9%E7%9B%AE-toc" style="margin-left:0px;">text2vec开源项目

核心能力

文本向量表示模型

本地试用

安装依赖 

huggingface%E4%B8%8A%E6%8B%89%E5%8F%96%E6%96%87%E4%BB%B6%EF%BC%8C%E5%8F%AF%E8%B7%B3%E8%BF%87%EF%BC%89-toc" style="margin-left:40px;">下载模型到本地(如果你的网络能直接从huggingface上拉取文件,可跳过)

​运行试验代码


前言

 在上一篇文章中介绍了,如何从不同格式的文件里提取文本信息。

本篇文章将介绍,如何将提取出的文本信息转换为vector,以便后续基于vector做相似性检索。

​​​​​​文档向量化工具(一):Apache Tika介绍icon-default.png?t=N7T8https://mp.csdn.net/mp_blog/creation/editor/134488150

text2vec%E5%BC%80%E6%BA%90%E9%A1%B9%E7%9B%AE">text2vec开源项目

text2vec是github上很受欢迎的一个开源项目。

text2vec:Text to Vector。

【GitHub地址】

https://github.com/shibing624/text2vec

【开源协议】

 Apache-2.0 license

核心能力

Text to Vector, Get Sentence Embeddings. 文本向量化,把文本(包括词、句子、段落)表征为向量矩阵。

text2vec实现了:

  1. Word2Vec
  2. RankBM25
  3. BERT
  4. Sentence-BERT
  5. CoSENT

等多种文本表征、文本相似度计算模型,并在文本语义匹配(相似度计算)任务上比较了各模型的效果。

文本向量表示模型

  • Word2Vec:通过腾讯AI Lab开源的大规模高质量中文词向量数据(800万中文词轻量版) (文件名:light_Tencent_AILab_ChineseEmbedding.bin 密码: tawe)实现词向量检索,本项目实现了句子(词向量求平均)的word2vec向量表示
  • SBERT(Sentence-BERT):权衡性能和效率的句向量表示模型,训练时通过有监督训练BERT和softmax分类函数,文本匹配预测时直接取句子向量做余弦,句子表征方法,本项目基于PyTorch复现了Sentence-BERT模型的训练和预测
  • CoSENT(Cosine Sentence):CoSENT模型提出了一种排序的损失函数,使训练过程更贴近预测,模型收敛速度和效果比Sentence-BERT更好,本项目基于PyTorch实现了CoSENT模型的训练和预测
  • BGE(BAAI general embedding):BGE模型按照retromae方法进行预训练,参考论文,再使用对比学习finetune微调训练模型,本项目基于PyTorch实现了BGE模型的微调训练和预测

本地试用

推荐用conda管理python环境

conda create -n py3.9 python=3.9 // 安装一个python3.9的环境

安装依赖 

conda install -c pytorch pytorch

pip install -U text2vec

huggingface%E4%B8%8A%E6%8B%89%E5%8F%96%E6%96%87%E4%BB%B6%EF%BC%8C%E5%8F%AF%E8%B7%B3%E8%BF%87%EF%BC%89"> 下载模型到本地(如果你的网络能直接从huggingface上拉取文件,可跳过)

https://huggingface.co/shibing624/text2vec-base-chinese/tree/main

本地建立一个文件夹,名字是shibing624/text2vec-base-chinese

手动点击,逐个下载文件到此文件夹

 运行试验代码

# 设置huggingface以offline模式运行,从本地加载我们刚才下载的模型数据
HF_DATASETS_OFFLINE=1 TRANSFORMERS_OFFLINE=1
from text2vec import SentenceModel

m = SentenceModel(model_name_or_path='/xxxxxxxx绝对路径xxxxxxx/shibing624/text2vec-base-chinese')

m.encode("如何更换花呗绑定银行卡")

运行效果


http://www.niftyadmin.cn/n/5216934.html

相关文章

城市NOA加速落地,景联文科技高质量数据标注助力感知系统升级

当前,自动驾驶技术的演进正在经历着从基础L2到L3过渡的重要阶段,其中NOA(自动辅助导航驾驶)扮演着至关重要的角色。城市NOA(L2.9)作为城市场景下的NOA,被看作是车企向更高阶自动驾驶迈进的必经之…

【PTA题目】7-13 梅森数 分数 20

7-13 梅森数 分数 20 全屏浏览题目 切换布局 作者 颜晖 单位 浙大城市学院 形如2n−1的素数称为梅森数(Mersenne Number)。例如22−13、23−17都是梅森数。1722年,双目失明的瑞士数学大师欧拉证明了231−12147483647是一个素数&#xff0…

文件的基本操作,打开、写入、读取和关闭文件。

1. 文件的创建和写入&#xff1a; #include <stdio.h> int main() { FILE *fp; fp fopen("data.txt", "w"); if (fp NULL) { printf("文件打开失败\n"); return 1; } fprintf(fp, "…

LabVIEW中如何达到NI SMU最大采样率

LabVIEW中如何达到NI SMU最大采样率 NISMU的数字化仪功能对于捕获SMU详细的瞬态响应特性或表征待测设备&#xff08;DUT&#xff09;响应&#xff08;例如线性调整率和负载调整率&#xff09;至关重要。没有此功能&#xff0c;将需要一个外部示波器。 例如&#xff0c;假设在…

嵌入式行业的职前补脑教程

一般来说&#xff0c;做事情不能一步而就&#xff0c;都得脚踏实地&#xff0c;一步一个脚印&#xff0c;走上去的。下面制定一份比较完善的嵌入式工程师学习晋阶教程&#xff0c;21天带你从0到1&#xff0c;踏进嵌入式行业&#xff0c;跳出舒适区。 一、概述 本教程旨在为嵌入…

2018年10月16日 Go生态洞察:App Engine新Go 1.11运行时发布

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

STM32 外部中断配置与中断函数设计

单片机学习 目录 文章目录 一、外部中断配置步骤 1.1配置RCC 1.2配置GPIO 1.3配置AFIO 1.4配置EXTI 1.5配置NVIC 二、中断函数设计 总结 一、外部中断配置步骤 第一步&#xff1a;配置RCC&#xff0c;把涉及外设的时钟打开。第二步&#xff1a;配置GPIO&#xff0c;选择…

RocketMQ 安装部署及应用场景记录

文章目录 前言一、RocketMQ简介1.1 整体架构 二、RocketMQ安装部署2.1 RocketMQ 下载2.2 修改 JVM 参数2.3 启动 NameServer 和 Broker2.4 验证发送和接受消息2.5 停止 NameServer 和 Broker2.6 配置全局环境 三、RocketMQ应用场景3.1 异步处理3.2 应用解耦3.3 流量削峰 前言 …