Database: Text数据转化为向量. (高维往低维映射)

问题的提出来自于使用VectorDB: http://t.csdnimg.cn/z1UMG

VectorDB提供一个数据和嵌入向量匹配的数据结构, 如果我们想要这个DB存储自己的数据, 则还需要计算出数据对应的嵌入向量.  

如何准确的构建Text数据嵌入向量(embedding)之间的关系, 是本篇文章解决的目标.

参考了几个模型后, 我从Bert和Word2vec中选择了后者, 因为我的笔记本是个轻薄本, 只能跑些小型模型.

🔗Word2vec链接: https://github.com/dav/word2vec

目标: 将下面的Text转化为128维度.

"Your long input text here"

实现思路: 使用transformer库中的GPT2模型, 把文本转化为768维度的嵌入向量. 

以下为依赖库:

pip install transformers

完整代码如下, 初次运行时比较慢, 因为需要下载GPT2模型: 

from transformers import GPT2Tokenizer, GPT2Modeltokenizer = GPT2Tokenizer.from_pretrained('gpt2')
model = GPT2Model.from_pretrained('gpt2')def text2vec(input):inputs = tokenizer(input, return_tensors="pt")outputs = model(**inputs)embeddings = outputs.last_hidden_state.mean(dim=1).squeeze().detach().numpy()return embeddingif __name__ == "__main__":text = "Your long input text here"embedding=text2vec(text)print(f"text={text}\nembeddings={embedding}\nshape={len(embedding)}")

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/204650.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringSecurity(五)

深入理解HttpSecurity的设计 一、HttpSecurity的应用 在前章节的介绍中我们讲解了基于配置文件的使用方式,也就是如下的使用。 也就是在配置文件中通过 security:http 等标签来定义了认证需要的相关信息,但是在SpringBoot项目中,我们慢慢脱离…

Java零基础——RocketMQ篇

1.RocketMQ简介 官网: http://rocketmq.apache.org/ RocketMQ是阿里巴巴2016年MQ中间件,使用Java语言开发,RocketMQ 是一款开源的分布式消息系统,基于高可用分布式集群技术,提供低延时的、高可靠的消息发布与订阅服…

03_阿里云_配置OSS环境变量

关于aliyunOSS文件上传的系统变量配置 问题引出 在黑马程序员2023新版JavaWeb开发教程教程中,P148Day11-04. 案例-文件上传-阿里云OSS-准备到P150Day11-06. 案例-文件上传-阿里云OSS-集成阿里云给的参考代码已经更新了,需要配置阿里云的用户变量&#…

K8S 删除命令空间时 一直卡住怎么办?

当使用完一个命名空间后,想删除了又删除不掉,这个时候查看命名空间的状态一直是Terminating。使用强制删除,也是还是不行。(找了好多办法都不行) [rootk8s-master kubernetes-yaml]# kubectl delete ns mem-example Er…

各种滤波算法的比较(GF、KF、EKF、UKF、PF)

目录 一、前言 二、滤波算法介绍 1、GF(高斯滤波) 2、KF(卡尔曼滤波) 3、EKF(可扩展卡尔曼滤波) 4、UKF(无迹卡尔曼滤波) 5、PF(粒子滤波) 三、不同滤…

elementui中添加开关控制

<template><!-- 图层管理 --><div class"home-wrapper"><div class"table-list"><div class"list"><el-table :data"tableData" height"100%" style"width: 100%;" border>&…

Effective CPP(五): 设计接口的原则

文章目录 一、设计接口的原则二、使用常量对象引用做参数&#xff0c;而不是使用值传递做参数三、减少能够访问类的私有变量的成员函数的数目四、运算符重载函数有的时候不应该作为类的成员函数五. 自定义 Swap 函数的艺术 一、设计接口的原则 在设计接口的时候&#xff0c;尽…

数字营销影响消费者行为的 6 种方式

如果您正在考虑转向在线市场&#xff0c;那么这个决定就好了&#xff01;没有什么比数字营销更强大的了。但是&#xff0c;在开始之前&#xff0c;请了解数字营销如何影响消费者行为。由于客户是任何企业的基石&#xff0c;因此跟踪消费者行为至关重要。 数据分析在识别潜在客…

3DMAX UV贴图修改插件安装卸载方法

3DMAX UV贴图修改插件安装卸载方法 3dMax贴图修改插件PolyUnwrapper是为纹理艺术家设计的一整套专业工具&#xff0c;尤其适用于建筑和游戏行业。 它包含许多功能&#xff0c;将大大帮助您改进UV展开的工作流程。 【主要功能特点】 -多重缝合。一次缝合多个壳 -自定义打包算…

在Ubuntu上搭建RiscV交叉编译环境

参考文档 安装 RISC-V 交叉编译工具链 - USTC CECS 2023 安装依赖库 sudo apt updatesudo apt -y install autoconf automake autotools-dev curl python3 python3-pip sudo apt -y install libmpc-dev libmpfr-dev libgmp-dev gawk sudo apt -y install build-essential bi…

基于LangChain+LLM的本地知识库问答:从企业单文档问答到批量文档问答

前言 过去半年&#xff0c;随着ChatGPT的火爆&#xff0c;直接带火了整个LLM这个方向&#xff0c;然LLM毕竟更多是基于过去的经验数据预训练而来&#xff0c;没法获取最新的知识&#xff0c;以及各企业私有的知识 为了获取最新的知识&#xff0c;ChatGPT plus版集成了bing搜索…

我也不想说啊,可这东西行政用能保命啊!

行政人姐妹在哪里啊&#xff01;在处理工作报告&#xff0c;行政报告等文章的时候&#xff0c;毫无头绪&#xff0c;速度还慢&#xff0c;容易被领导批评。 最近挖到了个抄好用的AI智能写作工具 用它写报告&#xff0c;写总结、写会议记录&#xff0c;写方案等等......写啥都…

深入React Flow Renderer(二):构建拖动操作栏

在上一篇博客中&#xff0c;我们介绍了如何启动React Flow Renderer并创建一个基本的工作流界面。本文将进一步深入&#xff0c;着重讨论如何构建一个可拖动的操作栏&#xff0c;它是用户与工作流交互的入口之一。 引言 操作栏是工作流界面的一部分&#xff0c;通常位于界面的…

Comparator Comparators Comparable Collections排序源码解析

问题引出 起初&#xff0c;写了一行排序代码&#xff0c;空指针异常。有判空思想但对nullsLast理解是错误的&#xff0c;于是阅读了一下相关源码。 result.sort(Comparator.nullsLast(Comparator.comparing(StationPointDataZoneVO::getDv)));以下写法是正确的&#xff1a; …

再见了 shiro

前言 作为一名后台开发人员&#xff0c;权限这个名词应该算是特别熟悉的了。就算是java里的类也有 public、private 等“权限”之分。之前项目里一直使用shiro作为权限管理的框架。说实话&#xff0c;shiro的确挺强大的&#xff0c;但是它也有很多不好的地方。shiro默认的登录…

Python优雅重启谷歌游览器并过cf

python如何优雅的重启谷歌游览器&#xff1f; 代码很简单&#xff1a; import subprocesshomepage "about:blank" # 结束已经启动的谷歌游览器 subprocess.run("taskkill /f /im chrome.exe", shellTrue) # debug启动谷歌游览器 subprocess.run(["…

docker批量删除退出状态的容器

sudo docker rm $(docker ps -a -q -f statusexited)

移动云“遇见大咖”|玻色量子副总裁巨江伟:超越摩尔定律的新型计算革命

移动云MVP&#xff0c;作为产品共建专家、关键意见领袖及技术布道者&#xff0c;帮助开发者更好地了解和使用移动云。开发者社区希望携手移动云MVP&#xff0c;与开发者共生、共赢、共成长。 8月31日&#xff0c;移动云开发者社区“遇见大咖”系列活动第2期——“[量子计算]超越…

了解c++11新特性-智能指针

c智能指针概念 1 智能指针的思想--CRAII机制 RAII是Resource Acquisition Is Initialization&#xff08;wiki上面翻译成 “资源获取就是初始化”&#xff09;的简称&#xff0c;是C语言的一种管理资源、避免泄漏的惯用法&#xff0c;利用的就是C构造的对象最终会被析构销毁的…

如何在Go中编写包

包由位于同一目录中的Go文件组成,这些文件在开头具有相同的package语句。你可以从包中包含额外的功能,使程序更复杂。有些包可以通过Go标准库获得,因此与Go安装一起安装。其他可以使用Go的go get命令安装。您还可以通过使用必要的package语句在要共享代码的相同目录中创建Go…