NLP:文本相似度计算

前面我们已经实现了把长段的句子,利用HanLP拆分成足够精炼的分词,后面我们要实现"联想"功能,我这里初步只能想到通过文本相似度计算来实现。下面介绍一下文本相似度计算

(当然HanLP也有文本相似度计算的方法,这里我应该上一节也说过,但是使用之后效果并不理想,因此,我们要换其他的方法)

这里我们采取的是text2vec,事实上网上通用的是word2vec,但是他要求自己训练模型,而且github上的流程我没看得懂,所以我就在github上找了别人现成的模型来使用

  • 下载
bash 复制代码
pip install torch # conda install pytorch
pip install -U text2vec

这里下载第二个的时候建议用上镜像,并且请在网络较好的地方下载

  • 测试
bash 复制代码
import sys


sys.path.append('..')
from text2vec import Similarity

# Two lists of sentences
sentences1 = ['c++开发十年经验',
              '善于沟通,领导他人',
              '全栈开发',
              '你好']

sentences2 = ['擅长编程',
              '体贴',
              'web 开发',
              '有领导能力']

sim_model = Similarity()
for i in range(len(sentences1)):
    for j in range(len(sentences2)):
        score = sim_model.get_score(sentences1[i], sentences2[j])
        print("{} \t\t {} \t\t Score: {:.4f}".format(sentences1[i], sentences2[j], score))

放上运行结果

可以发现,联想的效果还是有的,至少在我当前的需求下,它是完全够用的。

这是一个很关键的报错,具体可以参考这位老哥的博客:解决办法

(不过确实,因为围墙的存在,在一定程度上是阻碍了国内科研和学习的发展)

亲测可行的方法则是在代码前面补充上下面两行代码(即利用镜像)

bash 复制代码
import os
os.environ['HF_ENDPOINT']='https://hf-mirror.com'

之后如果有闲工夫的话,我还是想利用word2vec来训练一个自己的模型,毕竟数据摆在这里,不用而去调别人现成的模型,多少是不会满足特定场景的需求。

参考文献:

python实现文本相似度的计算

python利用word2vec计算文本相似度

wiki. model下载

相关推荐
Starriers1 分钟前
AI - Java AI - LangChain4J 实战
人工智能·后端
lucky_syq5 分钟前
解锁特征工程:机器学习的秘密武器
人工智能·机器学习
铮铭17 分钟前
【论文阅读】具身竞技场:面向具身智能的全面、统一、演进式评估平台
论文阅读·人工智能·机器人·世界模型
rengang6627 分钟前
10-支持向量机(SVM):讲解基于最大间隔原则的分类算法
人工智能·算法·机器学习·支持向量机
用户51914958484541 分钟前
如何通过内核版本检查判断FreeBSD是否需要重启
人工智能·aigc
聚客AI43 分钟前
🥺单智能体总是翻车?可能是你缺了这份LangGraph多Agent架构指南
人工智能·llm·agent
喜欢吃豆1 小时前
从潜在空间到实际应用:Embedding模型架构与训练范式的综合解析
python·自然语言处理·架构·大模型·微调·embedding
szxinmai主板定制专家2 小时前
RK3588+AI算力卡替代英伟达jetson方案,大算力,支持FPGA自定义扩展
arm开发·人工智能·分布式·fpga开发
ccut 第一混2 小时前
c# 使用yolov5模型
人工智能·深度学习
PHOSKEY2 小时前
应用案例丨3D工业相机如何实现「焊接全工序守护」
人工智能