python机器学习8--自然语言处理(2)

news2024/9/29 3:24:34

1.移除用词

        在很多情况下,有一些文章内的英文字符、标点符号分词的结果不符合自己的预期,会出现一些不想要的分词,此时就能通过以下的函数自己设定用词,并且删除。

jieba.analyse.set_stop_words("stop_words.txt")

2.自定比重分数

        因为jieba对每一个字会给出IDF分数比重,但是在很多时候,会希望把文章中特别的关键字突显出来(或者降低),可以设定IDF分数高一些(或低一些),就能将想要的字突显出来(或者降低)。

 jieba.analyse.set_idf_path("idf.txt")         #读入IDF关键字比重分数

一个demo

import sys
from os import path
import jieba
import jieba.analyse
d=path.dirname(__file__)
jieba.load_userdict(path.join(d,r"C:\Users\nsy\Desktop\userdict.txt.txt"))
text="今天学习好烦躁,还没有效率"
content =text
extracted_tags=jieba.analyse.extract_tags(content,topK=10,withWeight=False)
print(" ,".join(extracted_tags))
jieba.analyse.set_stop_words(path.join(d, r"C:\Users\nsy\Desktop\stop_words.txt.txt"))
weighted_tags=jieba.analyse.extract_tags(content,topK=10,withWeight=True,allowPOS=('ns','n','vn','v'))
for item in weighted_tags:
    keyword,weight=item
    print(f"关键词:{keyword},权重:{weight}")
          

3.排列出最常出现的分词(次数的统计)

import sys
from os import path
import jieba
import jieba.analyse

d = path.dirname(__file__)

# 根据Python版本打开文件
if sys.version_info > (3, 0):
    text = open(path.join(d, r"C:\\Users\\nsy\\Desktop\\test.txt"), 'r', encoding='utf-8').read()
else:
    text = open(path.join(d, r"C:\\Users\\nsy\\Desktop\\test.txt"), 'r').read()

text = text.replace('\n', '')

# 设置停用词文件路径,注意文件名是否正确
jieba.analyse.set_stop_words(r"C:\Users\nsy\Desktop\stop_words.txt.txt")
# 输出分词结果
print(" ".join(jieba.cut(text)))

# 打印分隔线
print("-" * 10)

# 使用自定义词典
jieba.load_userdict(path.join(d, r"C:\Users\nsy\Desktop\userdict.txt.txt"))

# 初始化字典存储词频
dic = {}

for ele in jieba.cut(text):
    if ele not in dic:
        dic[ele] = 1
    else:
        dic[ele] += 1

# 按词频排序并输出
for w in sorted(dic, key=dic.get, reverse=True):
    print("%s %d" % (w, dic[w]))

4.通过jieba来分析和计算网站文章所探讨的主要内容

import sys
import jieba
import jieba.analyse
import urllib.request as httplib

# 网络请求异常处理
try:
    # 网络文章的网址
    url = "https://csdnnews.blog.csdn.net/article/details/140678511?spm=1000.2115.3001.5928"
    # 送出连接的需求
    req = httplib.Request(url)
    # 打开网页
    response = httplib.urlopen(req)
    # 连接网页正常(200)
    if response.status == 200:
        # 如果是 Python 3.0 以上
        if sys.version_info > (3, 0):
            # 取得网页的数据并解码
            contents = response.read().decode(response.headers.get_content_charset())
        else:
            # 考虑到 Python 2 不再使用,这里可以省略对应的处理逻辑
            raise Exception("Python 2 is not supported")
except Exception as e:
    print("Error during HTTP request:", e)
    contents = ""

# 去除不要的文字
jieba.analyse.set_stop_words("C:\\Users\\nsy\\Desktop\\stop_words.txt.txt")

# 仅捕获地名、名词、动名词、动词
keywords = jieba.analyse.extract_tags(contents, topK=5, withWeight=True, allowPOS=('ns', 'n', 'vn'))

# 输出关键词和相应的权重
for item in keywords:
    print("%s=%f" % (item[0], item[1]))

print("*" * 40)

# 数据结构字典 key:value
dic = {}

# 做分词动作
words = jieba.cut(contents)

# 仅处理名词、动名词
for word in words:
    if word not in dic:
        dic[word] = 1  # 记录为1
    else:
        dic[word] += 1  # 累加1

# 由大到小排列并打印
for w in sorted(dic.items(), key=lambda x: x[1], reverse=True):
    print("%s: %d" % w)

# 异常处理应该针对具体的操作,而不是放在代码的最后

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1948819.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

哈默纳科HarmonicDrive谐波减速机的使用寿命计算

在机械传动系统中,减速机的应用无处不在,而HarmonicDrive哈默纳科谐波减速机以其独特的优势,如轻量、小型、传动效率高、减速范围广、精度高等特点,成为了众多领域的选择。然而,任何机械设备都有其使用寿命&#xff0c…

第五周:机器学习笔记

第五周学习周报 摘要Abstract机器学习——神经网络训练不起来怎么办?1. 局部最小点和鞍点1.1 Momentum(动量)1.2 Local minima和saddle point谁出现的情况更多? 2. 批次(Batch)2.1 Small Batch v.s. Large Batch Pytorch学习——T…

python项目通过docker部署到Linux系统并实现远程访问

背景需求:在Windows系统编写了简单的python代码,希望能通过docker打包到Linux Ubuntu系统中,并运行起来,并且希望在本地Windows系统中能通过postman访问。 目录 一、原本的python代码 二、创建一个简单的Flask应用程序 三、创…

SQL核心基础语法—快速入门MySQL

1.MySQL简介 MySQL其实是DBMS软件系统,也就是说MySQL并不是一个数据库,这是很多人的误区。我们经常听到的Oracle,MySQL,微软SQL Server,都是DBMS软件系统,我们只是通过这些系统来管理和维护数据库而已&…

系统架构师(每日一练7)

每日一练 1.关于网络延迟正确的是()。答案与解析 A.在对等网络中,网络的延迟大小与网络中的终端数量无关 B.使用路由器进行数据转发所带来的延迟小于交换机, C.使用internet服务器可最大程度地减小网络延迟 D.服务器延迟的主要影响因素是队列延迟和磁盘10延迟 2.以…

# redis 高级应用--使用 redis 消息队列完成秒杀过期订单处理(2)

redis 高级应用–使用 redis 消息队列完成秒杀过期订单处理(2) 一、springDataRedis 中定义消息的监听器 1、在 JAVA 程序中监听 redis 消息:配置监听 redis 的消息。 如果要在 java 代码中监听 redis 的主题消息,需要自定义处…

Android 列表或网格形式展示大量数据:RecyclerView

目录 RecyclerView是什么如何使用RecyclerView 涉及到的类LayoutManager为Item设置不同的布局样式制作拖动的RecyclerView 一、RecyclerView是什么 RecyclerView是Android支持库中的一个控件,用于在列表或网格形式展示大量数据。它是ListView的升级版&#xff0c…

Mybatis(三) 查询不同数据封装的方式

实体类&#xff1a; 数据库&#xff1a; 1、查询一个实体类对象 /** * 根据用户id查询用户信息* param id * return */User getUserById(Param("id") int id);<select id"getUserById" resultType"User">select * from t_user where id …

乐尚代驾六订单执行一

加载当前订单 需求 无论是司机端&#xff0c;还是乘客端&#xff0c;遇到页面切换&#xff0c;重新登录小程序等&#xff0c;只要回到首页面&#xff0c;查看当前是否有正在执行订单&#xff0c;如果有跳转到当前订单执行页面 之前这个接口已经开发&#xff0c;为了测试&…

MySQL练习(5)

作业要求&#xff1a; 实现过程&#xff1a; 一、触发器 &#xff08;1&#xff09;建立两个表&#xff1a;goods&#xff08;商品表&#xff09;、orders&#xff08;订单表&#xff09; &#xff08;2&#xff09;在商品表中导入商品记录 &#xff08;3&#xff09;建立触发…

Nuxt3:ERROR [nitro] [unhandledRejection] connect ECONNREFUSED ::1:80

Nuxt3对接接口时报错 &#xff1a;ERROR [nitro] [unhandledRejection] connect ECONNREFUSED ::1:80 排查了很久配置&#xff0c;端口等都是没问题的&#xff0c;但是如果直接将访问地址修改完整访问是没有问题但是我们会遇到跨域问题可以参考Nuxt3&#xff1a;跨域-CSDN博客…

Java连接Redis和SpringBoot整合Redis

1. Java连接Redis 思考&#xff1a;我们之前操作redis都是通过命令行的客户端来操作。在开发时都是通过java项目操作redis java提高连接redis的方式为jedis。我们需要遵循jedis协议。 java提供连接mysql的方式为jdbc。 1.1 单机模式 引入依赖 <!--引入java连接redis的驱动…

Linux---01---安装VMware

一. 什么时Linux Linux 是一个开源的类 Unix 操作系统,Linux 是许多计算机硬件的底层操作系统&#xff0c;特别是服务器、嵌入式系统和个人电脑。它支持多种架构&#xff0c;包括 x86、x64、ARM 和 MIPS 等。Linux 因其稳定性、安全性、开源性以及广泛的社区支持而广受欢迎。 …

《人工智能大语言模型技术发展研究报告(2024)》【下载】

《人工智能大语言模型技术发展研究报告&#xff08;2024&#xff09;》下载 自2023年起&#xff0c;大模型技术产品的快速迭代和升级&#xff0c;已经成为全球科技竞争的关键因素。由中国软件评测中心发布的《人工智能大语言模型技术发展研究报告&#xff08;2024&#xff09;》…

安卓开机启动性能优化之-bootchart相关工具使用及查看

背景&#xff1a; 开机启动相关的详细信息&#xff0c;一般都是可以通过logcat中查看boot_progress相关查看&#xff0c;这种方式查看相对不那么方便&#xff0c;毕竟开机过程中涉及的进程较多&#xff0c;要查看也较多&#xff0c;而且还经常需要查看代码才可以对应起来&…

Vue3时间选择器datetimerange在数据库存开始时间和结束时间

♥️作者&#xff1a;小宋1021 &#x1f935;‍♂️个人主页&#xff1a;小宋1021主页 ♥️坚持分析平时学习到的项目以及学习到的软件开发知识&#xff0c;和大家一起努力呀&#xff01;&#xff01;&#xff01; &#x1f388;&#x1f388;加油&#xff01; 加油&#xff01…

C++知识点:类和对象(自用)

类和对象 1. 类和对象的关系2. 对象指针3. 在堆上创建对象4. 成员访问限定符5. 名字编码&#xff08;Name Mangling&#xff09;6.构造函数7.构造函数的重载8.初始化列表8. 成员变量初始化的顺序&#xff08;通过初始化列表&#xff09;9. 初始化 const 成员变量10. 析构函数11…

【Web爬虫逆向】“企业预警通”模糊查询公司信息,逆向案例实战

“企业预警通”模糊查询公司信息&#xff0c;逆向案例实战 功能介绍效果演示思路分析1、先找到模糊查询的接口2、分析headers与params中参数并进行构造3、JS逆向&#xff0c;跟栈&#xff0c;找到js中key和dataCategory的生成方法&#xff0c;并完成js补码构造4、成功还原key后…

嵌入式中什么是三次握手

在开始前刚好我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「嵌入式的资料从专业入门到高级教程」&#xff0c;点个关注在评论区回复“666”之后私信回复“666”&#xff0c;全部无偿共享给大家&#xff01;&#xff01;&#xff01; 在网络数据传输中&#xf…

Mysql的主从复制(重要)和读写分离(理论重要实验不重要)

一、主从复制&#xff1a;架构一般是一主两从。 1.主从复制的模式&#xff1a; mysql默认模式为异步模式&#xff1a;主库在更新完事务之后会立即把结果返回给从服务器&#xff0c;并不关心从库是否接收到以及从库是否处理成功。缺点&#xff1a;网络问题没有同步、防火墙的等…