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

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

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

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


文本相似性实验4

 

下面带大家做一个文本分析的案例

首先下载一个os操作系统的包,后面如果看目录,基本的os操作用得到。

打开‘射雕英雄传’目录下的电子小说,注意编码问题,再把它写到utf8的编码,原来它的默认编码是gb2312。现在就是两个文件打开了,下面再写一段循环把里面的每一行写到文件上,做下转换。

下面第一个分析是做高词频分析,主要是用jieba,大家可以去图示的博客里看详细介绍。我们是用jieba里面的analyse功能,打开前面的utf8小说,打开以后可以把内容读到sentences里面来,sentences里面放的是电子小说的内容。

接下来看analyse下面有一个函数叫extract_tags,用这个函数抽取标签,抽取关键词,然后把刚刚读的sentences作为参数传进去,输入数据,找权重最高的20个特征值,如果同时显示权重才能True,不显示权重就选择False。

注意:它默认用TF-IDF抽取关键词,jieba功能很强大,它里面的函数默认用TFIDF作为权重值,去做关键词抽取。

现在执行一下,做好以后它把20个权重最高的关键词放在tags里面,显示一下tags,里面就是权重最高的关键词,主要是小说里面的主角,但是这里有点小问题:里面有‘黄蓉道’、‘郭靖道’,因为它可能认为这是个词,很像人的名字,所以要处理一下,用手工校正。这是jieba里面的一个功能,它通过suggest_freq函数来设要不要把原来的一个词分开来,现在设一下让它能分开,就是‘黄蓉道’本来是上面分的是一个词,现在要把它分开。

做一下以后就把它分开了,然后找前20个权重最高的词再显示一下,运行一下以后里面就没有‘黄蓉道’、’郭靖道’了。

下面再看一下,我们要前50个权重最高的关键词。

观察一下里面的词更多了,但是里面可能有些词,我们不是很感兴趣,比如‘甚么’,也许是大家没有兴趣的或者不重要的、没有意义的。

那么下面再介绍一个功能,就是jieba里面可以删除那些没有意义的、意义不大的词。它里面有del_word可以删除,现在删除一下刚刚第四个词‘甚么’,然后把放在最后面打开的文件关闭一下,最上面打开的文件,文件内容读完以后也关闭一下,不关闭会占内存。

下面来统计词频,首先给它jieba分词,然后把分词放在一个字典里面,一个是key(词),一个是value(词频)。这里教大家一个技巧:我们用字典里面带着一个函数,word_dict,这是一个字典,它里面有个get函数,get函数括号里面有两个参数,一个是key,当key不存在的时候,默认value是0,因为我们要构造词频,那有可能第一次这个词在字典里是没有的,所以它的词频就是0。如果有就可以把它找到,下面+1就是统计词频。

运行一下,刚刚分好词的小说,现在一个代码就把词频统计好了。这个代码里面最大的技巧就是要知道字典里面一个get函数,它里面就是读key,如果key不存在,value就是0。

image.png接下来就是来显示字典里面的keys,用list把keys转成列表,然后看前20条,现在来执行一下,这是分好的每一个词,但是还没有排过序,我们只看key,希望它按照高词频排序。

要对分好词以及分好词的词频排序用sorted函数,它可以对字典进行排序,可以按照key后面的值来排序。

image.png接下来再用lambda,它后面等于就是函数的参数(函数代码),item后面表示0是key,1是value,key是按照value来排序,排完序以后先print一下,看看有多少个词(key),然后显示词频最高的前20。

小说里面总共有45731个词,现在词频从高到低排序,前20个里面郭靖是词频最高的。

相关文章
|
3月前
|
存储 弹性计算 测试技术
租用阿里云服务器38元、99元和199元配置:使用场景及注意事项全解析
阿里云三款云服务器:38元轻量应用服务器适合个人博客与小型应用;99元ECS经济型实例适用于中小型Web应用与开发测试;199元ECS u1实例提供高性能,适合企业官网及数据处理场景,新老用户均可选购。
404 0
|
8月前
|
容器
【Azure Container App】在消耗性的Container App Environmnet中无法查看当时正在使用多少CPU多少实例数的替代方案
在 Azure Container Apps 中使用 Consumption 消耗型环境时,无法通过门户查看当前核心 (CPU) 和实例使用情况。这是因为消耗型工作负载配置文件的设计所致。若需查看使用状态,可使用 az cli 命令 `az containerapp env list-usages` 获取详细信息,包括 Current Cores 数量。文档还提供了参考资料链接以帮助用户深入了解相关命令用法。
183 17
|
8月前
|
JSON 监控 API
python语言采集淘宝商品详情数据,json数据示例返回
通过淘宝开放平台的API接口,开发者可以轻松获取商品详情数据,并利用这些数据进行商品分析、价格监控、库存管理等操作。本文提供的示例代码和JSON数据解析方法,可以帮助您快速上手淘宝商品数据的采集与处理。
|
机器学习/深度学习 运维 安全
图神经网络在欺诈检测与蛋白质功能预测中的应用概述
金融交易网络与蛋白质结构的共同特点是它们无法通过简单的欧几里得空间模型来准确描述,而是需要复杂的图结构来捕捉实体间的交互模式。传统深度学习方法在处理这类数据时效果不佳,图神经网络(GNNs)因此成为解决此类问题的关键技术。GNNs通过消息传递机制,能有效提取图结构中的深层特征,适用于欺诈检测和蛋白质功能预测等复杂网络建模任务。
466 2
图神经网络在欺诈检测与蛋白质功能预测中的应用概述
|
机器学习/深度学习 编解码 人工智能
技术前沿探索:生成对抗网络(GANs)的革新之路
【10月更文挑战第14天】技术前沿探索:生成对抗网络(GANs)的革新之路
236 2
|
数据采集 数据可视化 数据挖掘
MATLAB进行文件读取
【10月更文挑战第7天】本文介绍了如何使用MATLAB进行文件读取和数据处理,涵盖读取文本、CSV和Excel文件,数据清洗、分析及可视化方法。通过具体代码示例,展示了从数据读取到处理的完整流程,包括数据归一化、特征选择和时间序列数据处理等进阶技术。结合实际案例,帮助读者掌握MATLAB在数据分析中的应用。
|
监控 Java
Java定时扫码一个文件夹下的文件,如何保证文件写入完成后才进行处理?
【10月更文挑战第13天】Java定时扫码一个文件夹下的文件,如何保证文件写入完成后才进行处理?
486 1
|
存储 小程序 API
微搭低代码从入门到精通03用户注册
微搭低代码从入门到精通03用户注册
|
存储 SQL 前端开发
简单且高效的6种防止数据重复提交的方法,学到了真的太香了
有位朋友,某天突然问磊哥:在 Java 中,防止重复提交最简单的方案是什么? 这句话中包含了两个关键信息,第一:防止重复提交;第二:最简单。 于是磊哥问他,是单机环境还是分布式环境? 得到的反馈是单机环境,那就简单了,于是磊哥就开始装*了。 话不多说,我们先来复现这个问题。
简单且高效的6种防止数据重复提交的方法,学到了真的太香了