中文预训练文本向量模型大合集(附使用代码)

一、中文文本向量模型简介:

中文文本向量模型是一种用于将中文文本转换为数值向量表示的技术。这种模型的目的是将自然语言处理中的文本数据转换为计算机可以理解和处理的形式,以便进行各种文本相关任务,如文本分类、情感分析、语义相似度计算等。常见的中文文本向量模型包括以下几种:词袋模型(Bag of Words,简称BoW),TF-IDF(Term Frequency-Inverse Document Frequency),Word2Vec等等。这里读者有兴趣可以自行去搜索相关的内容,下面我要介绍的是几款基于预训练的通用文本向量模型。

二、BGE模型:

BGE(BAAI General Embedding)是由北京智源人工智能研究院提出的一种新型文本嵌入模型。BGE模型的技术细节如下:

       1.BGE简介:

(1)BGE直接对先验语义知识单元进行建模,增强了模型的语义表示能力。它通过对词、实体等语义单元的掩码,使得模型学习完整概念的语义表示

(2)由通用文本预训练、通用文本微调和特定任务微调三个阶段组成。

       2.BGE结构:

(1)BGE基本上是Transformer的encoder部分,但不共享权重。具体区别如下:
          BGE Small: 24M参数,512维度。
          BGE Base: 110M参数,768维度。

(2)BGE的encoder由两层构成:self-attention layer和feed-forward神经网络。它充分利用训练数据中的词法结构、语法结构和语义信息进行统一建模

      3.BGE模开源地址以及开源模型

(1)huggingface地址:

BAAI/bge-base-zh · Hugging Face

BAAI/bge-large-zh · Hugging Face

BAAI/bge-small-zh · Hugging Face

(2)github地址:

GitHub - FlagOpen/FlagEmbedding: Dense Retrieval and Retrieval-augmented LLMs

  (3)开源模型截图:

4.BGE模型的使用示例代码

from transformers import AutoTokenizer, AutoModel
import torch
# Sentences we want sentence embeddings for
sentences = ["样例数据-1", "样例数据-2"]

# Load model from HuggingFace Hub
tokenizer = AutoTokenizer.from_pretrained('BAAI/bge-large-zh-v1.5')
model = AutoModel.from_pretrained('BAAI/bge-large-zh-v1.5')
model.eval()

# Tokenize sentences
encoded_inpu
  • 46
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
确定语料和词向量代码: 1. 语料 ```python import nltk # 下载语料 nltk.download('brown') # 加载语料 from nltk.corpus import brown sentences = brown.sents() ``` 2. 词向量 ```python import gensim # 训练词向量 model = gensim.models.Word2Vec(sentences=sentences, size=100, window=5, min_count=5, workers=4) # 保存词向量 model.save('word2vec.model') # 加载词向量 model = gensim.models.Word2Vec.load('word2vec.model') ``` 预训练模型的完整代码: 1. BERT ```python from transformers import BertTokenizer, BertModel import torch # 加载预训练模型和分词器 tokenizer = BertTokenizer.from_pretrained('bert-base-uncased') model = BertModel.from_pretrained('bert-base-uncased') # 输入文本 text = "Hello, my dog is cute" # 分词 inputs = tokenizer(text, return_tensors='pt') # 预测 with torch.no_grad(): outputs = model(**inputs) # 得到向量表示 last_hidden_states = outputs.last_hidden_state ``` 2. GPT ```python from transformers import GPT2Tokenizer, GPT2Model import torch # 加载预训练模型和分词器 tokenizer = GPT2Tokenizer.from_pretrained('gpt2') model = GPT2Model.from_pretrained('gpt2') # 输入文本 text = "Hello, my dog is cute" # 分词 inputs = tokenizer(text, return_tensors='pt') # 预测 with torch.no_grad(): outputs = model(**inputs) # 得到向量表示 last_hidden_states = outputs.last_hidden_state ``` 3. XLNet ```python from transformers import XLNetTokenizer, XLNetModel import torch # 加载预训练模型和分词器 tokenizer = XLNetTokenizer.from_pretrained('xlnet-base-cased') model = XLNetModel.from_pretrained('xlnet-base-cased') # 输入文本 text = "Hello, my dog is cute" # 分词 inputs = tokenizer.encode_plus(text, return_tensors='pt') # 预测 with torch.no_grad(): outputs = model(**inputs) # 得到向量表示 last_hidden_states = outputs.last_hidden_state ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

赵放-AI

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值