全面解析 SnowNLP:中文文本处理、情感分析

news2024/11/15 19:27:37

1 前言

SnowNLP 是一个专门用于处理中文文本的 Python库。功能包括:

  • 分词
  • 情感分析
  • 关键词提取
  • 文本分类
  • 拼音转换
  • 繁体转简体
  • 词相似度计算等
snownlp==0.12.3

测试环境:Python3.10.9

2 分词

中文分词(Character-Based Generative Model)

2.1 常规分词

from snownlp import SnowNLP

text = "有勇气的牛排是编程领域的博主"
s = SnowNLP(text)
print(s.words)

snownlp分词

2.2 自定义分词 词典

尚未测出该功能

4 提取 关键词(TextRank算法)

from snownlp import SnowNLP

text = "有勇气的牛排写的文章通俗易懂,爱了爱了"
s = SnowNLP(text)
print(s.keywords(3))

snownlp 关键词提取

5 提取 摘要(TextRank算法)

from snownlp import SnowNLP

text = "有勇气的牛排写的文章通俗易懂,爱了爱了"
s = SnowNLP(text)
print(s.summary(3))

snownlp 摘要提取

6 拼音转换

原创:有勇气的牛排
https://www.couragesteak.com/article/456

from snownlp import SnowNLP

text = "有勇气的牛排"
s = SnowNLP(text)
print(s.pinyin)

image.png

7 文本分类(情感分析)

7.1 定义

文本分类使用的是 SnowNLP 的情感分析模型

7.2 情感分析(常规)

from snownlp import SnowNLP

text = "有勇气的牛排写的文章通俗易懂,爱了爱了"
s = SnowNLP(text)
print(s.sentiments)

snownlp 情感分析

7.3 情感分析(训练模型)

7.3.1 数据文件

pos.txt (正面情绪的文本)

这家餐厅的菜很好吃
我非常喜欢这本书
这个产品质量非常好

neg.txt (负面情绪的句子)

这家餐厅的服务很差
我不喜欢这部电影
这个产品质量很差
7.3.2 训练模型

main.py

from snownlp import sentiment

# 训练模型
sentiment.train('neg.txt', 'pos.txt')

# 保存模型
sentiment.save('sentiment.marshal')

snownlp 训练模型

7.3.3 使用模型进行情感分析
from snownlp import sentiment
from snownlp import SnowNLP

# 加载训练好的模型
sentiment.load('sentiment.marshal')

# 使用训练好的模型
text = "这个产品很糟糕,我很不满意。"
s = SnowNLP(text)
print(s.sentiments)  # 输出情感分析结果

如果不加载前面我们训练的模型,分析结果为 0.669,十分不精确。

snownlp 使用模型进行情感分析

8 繁体转简体

from snownlp import SnowNLP

sentence_fan = "知識改變世界"
jian_ti = SnowNLP(sentence_fan)
print(jian_ti.han)

snownlp 繁体转简体

9 计算词的相似度(BM25)

from snownlp import SnowNLP

text = "有勇气的牛排是编程领域的博主"
s = SnowNLP(text)
print(len(s.words), s.words)
print(len(s.sim("的牛排")), s.sim("的牛排"))

snownlp 计算词的相似度

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

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

相关文章

WEB渗透Web突破篇-前端突破

逻辑漏洞 1.任意用户注册 2.用户名枚举 3.爆破用户名,密码 4.用户名注入 5.万能密码 6.用户名Xss 7.修改返回包信息,登入他人账户 8.修改cookie中的参数,如user,adminid等 9.HTML源码、JS等查看信息搜集那一章 10.后台登录参数修改…

MSPM0G3507学习笔记1:开发环境_引脚认识与点灯

今日速通一款Ti的单片机用于电赛:MSPM0G3507 这里默认已经安装好了Keil5_MDK 首先声明一下: 因为是速成,所以需要一定单片机学习基础,然后我写的也不会详细,这个专栏的笔记也就是自己能看懂就行的目标~~~ 文章提供测试代码解…

Go: IM系统分布式架构方案 (6)

分布式部署可能遇到的问题 常见 nginx 反向代理方案 假设按照上述架构方案来A用户接入后connA(ws客户端) 由节点1来维护B用户接入后connA(ws客户端) 由节点2来维护流程: A->B 发信息: A -> connA -> 分析处理 -> connB -> B实际上,上述流程是没有办法…

C++学习笔记03-对象和类(问题-解答自查版)

前言 以下问题以Q&A形式记录,基本上都是笔者在初学一轮后,掌握不牢或者频繁忘记的点 Q&A的形式有助于学习过程中时刻关注自己的输入与输出关系,也适合做查漏补缺和复盘。 本文对读者可以用作自查,答案在后面&#xff0…

1 深度学习网络DNN

代码来自B站up爆肝杰哥 测试版本 import torch import torchvisiondef print_hi(name):print(fHi, {name}) if __name__ __main__:print_hi(陀思妥耶夫斯基)print("HELLO pytorch {}".format(torch.__version__))print("torchvision.version:", torchvi…

C++(week13): C++基础: 标准模板库 STL

文章目录 零、标准模板库 STL一、容器 (Container)1.序列式容器(1)vector2.五种遍历10.vector的迭代器失效问题 (2)deque(3)list 2.关联式容器(1)set4.set的查找(2)find() 8.set中存储自定义类型:三种方法 (2)multiset7.multiset的特殊操作:bound系列函数…

LeetCode/NowCoder-二叉树OJ练习

励志冰檗:形容在清苦的生活环境中激励自己的意志。💓💓💓 目录 说在前面 题目一:单值二叉树 题目二:相同的树 题目三:对称二叉树 题目四:二叉树的前序遍历 题目五:另…

Python | Leetcode Python题解之第275题H指数II

题目&#xff1a; 题解&#xff1a; class Solution:def hIndex(self, citations: List[int]) -> int:n len(citations)left 0; right n - 1while left < right:mid left (right - left) // 2if citations[mid] > n - mid:right mid - 1else:left mid 1retur…

C语言之2048小游戏理解分析

目录 游戏程序思维导图&#xff1a; ​编辑 功能介绍&#xff1a; 代码管理&#xff1a; 主函数&#xff1a; 头文件&#xff1a; 游戏程序思维导图&#xff1a; 功能介绍&#xff1a; 按键W --------------- 向上 按键A --------------- 向左 按键S --------------- 向…

科技云报道:算网筑基AI注智,中国联通如何讲出AI时代的“新故事”?

科技云报道原创。 AI从未停止进化&#xff0c;也从未停止给人类带来惊喜。 从ChatGPT代表的文生文、Dall-E代表的文生图&#xff0c;到Sora代表的文生视频&#xff0c;Suno为代表的文生音乐&#xff0c;生成式AI的“暴力美学”持续突破内容生产的天花板&#xff0c;大模型技术…

【黑马java基础】特殊文件,日志

目录 特殊文件&#xff1a;Properties属性文件特点、作用使用Properties读取属性文件里的键值对数据使用properties把键值对数据写到属性文件中去案例 特殊文件&#xff1a;XML文件概述读取XML文件中的数据把数据写出到XML文件中去补充知识&#xff1a;约束XML文件的编写[了解]…

打卡第21天------二叉树

我现在每天都是在与时间赛跑&#xff0c;分秒必争&#xff0c;不想浪费一点我自己的时间。 希望通过算法训练营可以把我自己的逻辑思维建立起来&#xff0c;把自己的算法能力给提上去。 一、修剪二叉搜索树 题目链接&#xff1a;669. 修剪二叉搜索树 题目描述&#xff1a; 给…

最优化原理(笔记)

内积是线性代数运算的一个结果&#xff0c;一行*一列。 内积的性质&#xff01; 什么是范数&#xff1f;&#xff1f;&#xff1f; 对称矩阵&#xff1a;关于主对角线对称&#xff01; 正定对称矩阵&#xff1a; 二阶导是正定的&#xff0c;f(x)就是严格的凸函数&#xff01;&a…

element的el-autocomplete带输入建议搜索+搜索匹配文字高亮显示

element的el-autocomplete带输入建议搜索搜索匹配文字高亮显示 直接上代码 // vue代码块 添加插槽<el-autocompleteclearableplaceholder"请输入关键词进行搜索"input"searchInput"v-model"searchInputData":fetch-suggestions"queryS…

Android APP 音视频(02)MediaProjection录屏与MediaCodec编码

说明&#xff1a; 此MediaProjection 录屏和编码实操主要针对Android12.0系统。通过MediaProjection获取屏幕数据&#xff0c;将数据通过mediacodec编码输出H264码流&#xff08;使用ffmpeg播放&#xff09;&#xff0c;存储到sd卡上。 1 MediaProjection录屏与编码简介 这里…

【测开能力提升-Javascript】JavaScript运算符流程结构

1. 递增递减运算符 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title><script>// 前置递增运算符var age10age //类似于ageage1&#xff0c; 先加1后返回值alert(age)// 后置…

【数据结构 | 哈希表】一文了解哈希表(散列表)

&#x1f601;博客主页&#x1f601;&#xff1a;&#x1f680;https://blog.csdn.net/wkd_007&#x1f680; &#x1f911;博客内容&#x1f911;&#xff1a;&#x1f36d;嵌入式开发、Linux、C语言、C、数据结构、音视频&#x1f36d; &#x1f923;本文内容&#x1f923;&a…

【SQL语句大全(MySQL)】

SQL语法 添加删除修改查询基本查询条件查询分组函数/聚合函数分组查询排序分页查询&#xff08;限制查询&#xff09;多表查询连接查询根据年代分类连接查询根据连接方式分类1、内连接2、左外连接3、右外连接 多张表连接的语法格式 嵌套查询 SQL语句书写顺序 添加 INSERT INTO…

什么是STP环路保护

在运行生成树协议的网络中&#xff0c;根端口和其他阻塞端口状态是依靠不断接收来自上游设备的BPDU维持。当由于链路拥塞或者单向链路故障导致这些端口收不到来自上游交换设备的BPDU时&#xff0c;设备会重新选择根端口。原先的根端口会转变为指定端口&#xff0c;而原先的阻塞…

2019年9月全国英语等级考试第三级笔试真题

2019年9月全国英语等级考试第三级笔试真题