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

目录

前言

text2vec开源项目

核心能力

文本向量表示模型

本地试用

安装依赖 

下载模型到本地(如果你的网络能直接从huggingface上拉取文件,可跳过)

​运行试验代码


前言

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

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

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

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上拉取文件,可跳过)

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("如何更换花呗绑定银行卡")

运行效果

  • 18
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
在机器学习中,通常需要将文本文档数据集转换为数值型向量,以便于机器学习算法对其进行处理。常用的文本文档数据集向量化方法包括: 1. 词袋模型(Bag of Words):将每个文档表示为一个固定长度的向量,向量的每个元素表示该文档中对应词汇的出现次数或者权重。可以使用Scikit-learn库中的CountVectorizer或TfidfVectorizer类来进行词袋模型向量化。 2. N-gram模型:将每个文档表示为一个由N个词或字符组成的序列,然后使用词袋模型将序列向量化。可以使用Scikit-learn库中的CountVectorizer或TfidfVectorizer类来进行N-gram模型向量化。 3. Word2Vec模型:将每个文档表示为一个固定长度的向量,向量的每个元素表示该文档中对应词汇的语义特征。可以使用Gensim库来进行Word2Vec模型向量化。 下面是一个使用CountVectorizer类进行词袋模型向量化的示例代码: ```python from sklearn.feature_extraction.text import CountVectorizer # 读取文本数据 with open('data.txt', 'r') as f: data = f.readlines() # 构建词袋模型向量 vectorizer = CountVectorizer(stop_words='english') X = vectorizer.fit_transform(data) # 输出向量维度和词汇表 print(X.shape) print(vectorizer.vocabulary_) ``` 这个例子中,我们首先读取文本数据,然后使用CountVectorizer类将文本数据集向量化为词袋模型。需要注意的是,我们使用了英文停用词列表来去除常见的无意义词汇。最后,我们打印出向量维度和词汇表。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Hugo Lei

赏你了,我的一点心意

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

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

打赏作者

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

抵扣说明:

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

余额充值