查看原文
其他

sentence-transformer库 | 句子语义向量化

刘焕勇 大邓和他的Python
2024-09-09

近期活动

2022年5月16号 Python数据挖掘2022五月直播开始报名啦


内容摘自

刘焕勇博客: https://liuhuanyong.github.io/

原文地址: https://mp.weixin.qq.com/s/fkgk8l_Vd4YDU_K6G54F4Q

公众号: 老刘说NLP

word2vec、glove是两种静态的词向量模型,即每个词语只有一个固定的向量表示。但在不同语境中,词语的语义会发生变化,按道理词向量也应该动态调整。相比word2vec、glove生成的静态词向量, BERT是一种动态的技术,可以根据上下文情景,得到语义变化的词向量。

HuggingFace网站提供了简易可用的数据集、丰富的预训练语言模型, 通过sentence-transformer库,我们可以使用HuggingFace内的预训练模型,得到不同情景的文本的语义向量。

HuggingFace网站  https://huggingface.co/


动态句向量

sentence-transformer框架提供了一种简便的方法来计算句子和段落的向量表示(也称为句子嵌入)


安装

pip3 install -U sentence-transformers

代码

使用huggingface中的distiluse-base-multilingual-cased与训练模型,

from sentence_transformers import SentenceTransformer, util
model = SentenceTransformer('distiluse-base-multilingual-cased')

第一次运行上方的代码,需要运行一定的时间用于下载。下载完成后,我们使用同种语义的中英文句子,分别计算得到emb1和emb2两个句向量

emb1 = model.encode('Natural language processing is a hard task for human')

emb2 = model.encode('自然语言处理对于人类来说是个困难的任务')
emb1

Run

array([ 2.58186590e-02,  4.65703346e-02,  4.25276496e-02, -1.67875513e-02,
        5.56012690e-02, -3.44308838e-02, -6.53978735e-02,  1.77450478e-02,
       -3.47155109e-02,  2.86140274e-02,  2.48657260e-02,  7.94188876e-04,
        5.09755425e-02, -1.76107027e-02, -1.04308855e-02,  7.61642214e-03,
        ...
        4.28482369e-02,  1.76657233e-02, -5.83355911e-02,  1.92921527e-03,
        2.81221420e-02,  5.24400780e-03,  2.10703332e-02,  7.96715263e-03,
       -6.80630878e-02, -2.05304120e-02, -2.43293475e-02, -1.87458862e-02],
      dtype=float32)

在distiluse-base-multilingual-cased这种模型中, 不同语言的同义句应该具有类似的语义,那么cos相似度应该是很大的。越接近于1越相似;越接近于0,越不相似。

cos_sim = util.pytorch_cos_sim(emb1, emb2)
cos_sim

Run

tensor([[0.8960]])


精选文章

从符号到嵌入:计算社会科学的两种文本表示

推荐 | 社科(经管)文本分析快速指南

使用cntext训练Glove词嵌入模型

认知的测量 | 向量距离vs语义投影

视频专栏课 | Python网络爬虫与文本分析

案例实战 | 企业信息数据采集

使用文本相似度可以识别变化的时间点

PNAS | 文本网络分析&文化桥梁Python代码实现

tomotopy | 速度最快的LDA主题模型

在会计研究中使用Python进行文本分析

文本分析方法在《管理世界》(2021.5)中的应用

SciencePlots | 科研样式绘图库

Wow~70G上市公司定期报告数据集

YelpDaset: 酒店管理类数据集10+G  

极简浏览器启动页StartPage分享

doccano|为机器学习建模做数据标注

使用WeasyPrint自动生成pdf报告文件

推荐 | 社科(经管)文本分析快速指南

100min视频 | Python文本分析与会计

Python数据挖掘2022.05.16工作坊开始报名啦



继续滑动看下一个
大邓和他的Python
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存