文本相似性实验3|学习笔记

简介: 快速学习文本相似性实验3

开发者学堂课程【高校精品课-华东师范大学 - Python 数据科学基础与实践文本相似性实验3】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/1067/detail/15506


文本相似性实验3

 

内容介绍:

一、查询和文档的相似度

二、搜索实验

 

一、查询和文档的相似度

如果查询和文档的相似度,也可以用上一节的方法,当然也可以用bm25的方法,大家有兴趣可以去看博客文章。

image.png

如果要用text2vec的方法,大家需要安装pip3 install text2vec包。

老师建议大家安装包时应该先设一个镜像,目前国内一般是清华大学的一个网站作为镜像网站,这样安装包就很快,去百度搜一下Python怎么设镜像,否则安装包很慢。

image.png

上面就是已经安装好的,加载text2vec,实验里面举个例子:先查一个中文的字‘我’,然后再看它的词向量,就是它的编码encode,把它编成一个词向量放在result,我们可以显示一下词向量的类型,再显示词向量本身的形状;再换行一下,显示一下这个词‘我’以及它的词向量。

image.png再看另外一个词和下面一句话,这句话的向量是每一个词的平均值,执行一下这段代码,因为它要去查一查,需要点时间,下面粉颜色的是警告,不用管。接下来看第一个print,它里面要显示第一个结果的type(类型)以及形状;第二个print就是这个字以及它的词向量,然后是第三个、第四个print。

先看第一个print,它的类型是numpy.ndarray——它的周围数组对象,然后看它的形状是200个元素,可以认为是一个200位的词向量,前面并没有设它的大小,默认是两百位。接下来看‘我’的词向量是两百位,我们并没有训练,是用腾讯人工智能实验室提供的语料训练的,再看‘如何’的词向量,和这一句话的词向量,都是200位的。证明它是用了每一个词的词向量再求平均的,有了这个向量化表示后下面要求它的文本相似性就容易了。

text2vec里面自带了一个模块求相似性,这里做一下实验:有两串文本,一个是‘如何更换花呗绑定银行卡’,另一个是‘花呗更改绑定银行卡’,这两句文本相似,然后要用Similarity,import是一个模块,它里面是一个class,所以把这个class进行实例化,实例化之后用这个实例的对象,它里面有一个函数叫get_score,就是看相似性打出分值;然后把(a,b)两个字符串传进去,text2vec把它们变成词向量和它们里面词的平均值,然后print一下score,看一下结果它们的相似性是0.95。

 

二、搜索实验

接下来再做一个搜索的实验,我们要去查论文、在搜索框里面搜一个文本,它背后有很多文本,然后我们搜的是一个查询文本,要做搜索匹配。现在模拟一下,比如有三篇文章a、b、c,这就是我们的语料,把它们放在列表里面显示一下语料,然后来做一下SearchSimilarity,把语料传进去构造一个向量化的数据;接下来print的时候要注意,比如先插a这句话和这一批语料里面哪些更相似,以及它的排序,主要是这样的实验。

运行一下它就显示结果了,因为这个语料很少,只有三句话。如果我们要做图书馆里面学术论文查询,可以把学术论文的摘要、关键词、标题放在文本里面,可以直接组织几十万篇文本来做文本的搜索、文本相似性比较的实验。它比关键词搜索更有优势,一般的关键词搜索只是按照词来匹配,而现在这样文本表示以后它就有很强的语义能力了。这就是文本相似性,下面有些参考资料,大家可以再去看一看。

在百度里面有自然语言处理的接口,如下图。

image.png

这个技术里面有很多好的功能,等于百度做好了一些功能,我们直接调用可以做文本的一些语义处理;还可以做分词、词性标注、专名识别、词向量、词的相似度,还可以做一些深度训练、依存句法分析、短文本的相似度。

这就是第一个实验——词和文本相似度的认识。

相关文章
|
5月前
|
存储 数据可视化 数据挖掘
单细胞分析: Scanpy 核心绘图 (2)
单细胞分析: Scanpy 核心绘图 (2)
单细胞分析: Scanpy 核心绘图 (2)
|
人工智能 监控 数据可视化
绩效考核管理的动态调整与持续优化
本文探讨了绩效考核管理在现代企业管理中的重要性,从核心原则、流程设计、指标设定、沟通反馈及持续优化五个方面进行了详细阐述,并推荐了板栗看板作为提升绩效管理效率的工具。文章强调了公平公正、客观量化、战略导向、持续反馈和结果应用的原则,以及平衡计分卡、KPI、OKR和360度反馈等多种考核方法的应用。板栗看板以其强大的可视化、动态追踪、高效沟通和数据分析功能,助力企业实现高效的绩效管理。
|
JSON 数据格式 Docker
docker inspect
【9月更文挑战第09天】
383 4
|
机器学习/深度学习 数据采集 自然语言处理
机器学习之sklearn基础教程
机器学习之sklearn基础教程
|
NoSQL 数据处理 调度
【Redis技术专区】「原理分析」探讨Redis6.0为何需要启用多线程
在Redis 6.0版本中,引入了多线程技术,这是为了进一步提高Redis的性能和并发处理能力。通过启用多线程,Redis能够同时处理多个客户端请求,有效地利用多核处理器资源,提高系统的吞吐量和响应速度。
716 1
【Redis技术专区】「原理分析」探讨Redis6.0为何需要启用多线程
|
消息中间件 SQL 存储
基于 Flink 流计算实现的股票交易实时资产应用
第四届实时计算 Flink 挑战赛最佳实践奖-海克斯科技的项目文章。
基于 Flink 流计算实现的股票交易实时资产应用
|
存储 Python
Python案例分析|文本相似度比较分析
本案例通过设计和实现有关文本相似度比较的类Vector和Sketch,帮助大家进一步掌握设计Python类来解决实际问题的能力。
358 0
Python案例分析|文本相似度比较分析
|
弹性计算 固态存储 数据可视化
阿里云服务器租用费用_2023租赁价格表
阿里云服务器租用费用_2023租赁价格表,阿里云轻量应用服务器2核2G3M带宽轻量服务器一年108元,2核4G4M带宽轻量服务器一年297.98元12个月,云服务器ECS包括通用算力型u1、ECS计算型c7、通用型g7和内存型r7均有活动
938 0
|
索引
POI(excel)中Cell应用实践总结
POI(excel)中Cell应用实践总结
488 0
|
SQL 关系型数据库 MySQL
如何判断mysql主从是否同步
如何判断mysql主从是否同步
473 0