Database: Text数据转化为向量. (高维往低维映射)
2023-12-13 06:08:52
问题的提出来自于使用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, GPT2Model
tokenizer = 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 embedding
if __name__ == "__main__":
text = "Your long input text here"
embedding=text2vec(text)
print(f"text={text}\nembeddings={embedding}\nshape={len(embedding)}")
文章来源:https://blog.csdn.net/qq_41754202/article/details/134842768
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!