中文分词词云图

目录

  • 一、分词
    • 1、分词方式方法
    • 2、分词优缺点
  • 二、jieba使用示例
    • 1、引入库
    • 2、切分模式
    • 3、加载自定义字典
  • 三、词的可视化
    • 1、读取数据
    • 2、数据处理
    • 3、统计词频
    • 4、去除停用词
    • 5、词云图
      • 1、pyecharts绘图
      • 2、WordCloud绘图

一、分词

1、分词方式方法

  • 以构词规则为出发点的规则分词
    • 全切分
    • 正向最大匹配(FMM)/逆向最大匹配(BMM)/双向最大匹配
  • 利用语料库归纳出统计数据作为评判标准的统计分词
    • N-Gram概率模型
    • HMM概率模型
  • 上述方法除HMM外都需词典辅助!
    解释:
  • 全切分:指对输入的文本序列进行分词时,不仅考虑一种或几种可能的切分方式,而是尝试获取该序列的所有可能的切分形式
  • 正向最大匹配(Forward Maximum Matching,FMM):是一种基于词典的分词方法,常用于中文分词任务中。该方法的核心思想是按照从前到后的顺序对语句进行切分,尽可能匹配出当前位置上长度最大的词。原理:
    • 贪心策略:FMM使用贪心策略,从待分词句子的开头开始,每次尝试匹配词典中最长词的长度。
    • 词典依赖:FMM是基于词典的分词方法,词典中包含了已知的所有词汇及其长度信息
  • 逆向最大匹配(Backward Maximum Matching,简称BMM)是一种常用的中文分词算法,其工作原理与正向最大匹配(FMM)相反,即从待分词文本的末尾开始向前进行匹配。原理:
    • 从后向前匹配:BMM从待分词文本的最右边开始,逐步向左查找可能的词语;
    • 最长匹配优先:在每一步匹配中,BMM都尝试匹配尽可能长的词语。它首先会尝试匹配词典中最长的词,如果匹配失败,则逐步缩短匹配长度,直到匹配成功或长度为1的单个字。
  • (Bi-directional Maximum Matching,简称Bi-MM或BM)是一种结合了正向最大匹配(FMM)和逆向最大匹配(BMM)的中文分词方法。该方法通过比较正向和逆向分词的结果,以选择最可能的分词方式。原理:
    • 正向最大匹配(FMM):从左至右进行分词,每次尝试匹配词典中最长的词。
    • 逆向最大匹配(BMM):从右至左进行分词,同样每次尝试匹配词典中最长的词。
    • 结果比较:比较FMM和BMM的分词结果,并根据一定的策略选择最终的分词结果
  • N-Gram概率模型是一种基于统计语言模型的算法,广泛应用于自然语言处理领域。其核心思想是将文本序列分解为连续的n个元素(如字母、音节或单词)的序列,即“n-gram”,并计算这些序列出现的概率。原理:N-Gram模型基于一个假设:第n个词的出现与前n-1个词相关,而与其他任何词不相关。整个句子出现的概率就等于各个词出现的概率乘积。
  • HMM概率模型,即隐马尔可夫模型(Hidden Markov Model, HMM),是一种统计模型,用于描述一个含有隐含未知参数的马尔可夫过程。这种模型在序列数据建模中非常有用,特别是在那些数据包含无法直接观测到的隐藏状态的情况下。两个假设:
    • 齐次马尔科夫假设:状态转移的概率只与当前状态有关,与之前的状态无关。
    • 观测独立性假设:观测符号只依赖于生成它的隐藏状态,与其他隐藏状态无关。
      训练和预测:
    • 训练:使用Baum-Welch算法(也称为前向-后向算法)来估计HMM的参数。这是一个迭代的过程,通过最大化观测序列的概率来更新模型的参数。
    • 预测:使用维特比算法来找到给定观测序列下最可能的状态序列。这个算法基于动态规划,通过选择每一步的最优状态来找到全局最优解

2、分词优缺点

  • 规则分词
    • 优点:
      • 程序简单易行,开发周期短
      • 不涉及复杂计算,分词速度快
    • 缺点:
      • 歧义处理太过简单
      • 不能识别新词
      • 分词精度不能满足实际的需要
      • 规范的文本在80%左右
      • 互联网文本在70%左右
  • 统计分词
    • 优点
      • 能够处理大部分常用词带来的歧义问题
    • 缺点
      • 不能处理新词以及新词带来的歧义问题
      • 需要很大的训练语料
      • 分词速度相对较慢

常用的是jieba分词工具。

二、jieba使用示例

jieba 是Python中常用的一种中文分词工具,它可以将中文文本数据切分为一个一个的中文词语。

1、引入库

  • 安装方式:
pip install jieba -i https://pypi.tuna.tsinghua.edu.cn/simple
  • 引入库
import jieba

2、切分模式

jieba.cut(sentence, cut_all=False, HMM=True)
  • 参数:
    • sentence: 需要被切分的字符串.
    • cut_all: 切分模式,True 对应全模式 False 对应 精确模式.
    • HMM: 是否使用隐马尔可夫模型.
  • 返回 generator

jieba.lcut用法与 jieba.cut一致,只是返回值为列表。

string="工信处女干事每月经过下属科室都要亲口交代24口交换机等技术性器件的安装工作"
jieba.lcut(string)

在这里插入图片描述

- 全模式,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义- t1 = jieba.cut(string, cut_all=True)- 精确模式,试图将句子最精确地切开(分词后的概率连乘最大),适合文本分析。已被分出的词语将不会再次被其他词语占有。- t2 = jieba.cut(string, cut_all=False)- 搜索引擎模式,在精确模式的基础上,对长词(字数>2)再次切分,提高召回率,适合用于搜索引擎分词。- t3= jieba.cut_for_search(string) 

在这里插入图片描述

3、加载自定义字典

sentence = """风暴降生丹妮莉丝·坦格利安一世、不焚者、弥林女王、安达尔人、洛伊拿人和先民的女王、草海上的卡丽熙、
奴隶解放者和火龙之母、维斯特洛的统治者暨全境守护者、阿斯塔波的解放者、弥莎和龙石岛公主"""
seq_sentence = jieba.lcut(sentence)
print("|".join(seq_sentence))

在这里插入图片描述
向词典中添加 新词"坦格利安",然后再次切分 :

jieba.add_word("坦格利安") 

在这里插入图片描述
jieba.load_userdict() 通过此函数加载公司内或行业内的专用词典,用于丰富默认词典

jieba.load_userdict('../data/NLP/user_dict.txt')sentence = """风暴降生丹妮莉丝·坦格利安一世、不焚者、弥林女王、安达尔人、洛伊拿人和先民的女王、草海上的卡丽熙、奴隶解放者和火龙之母、维斯特洛的统治者暨全境守护者、阿斯塔波的解放者、弥莎和龙石岛公主"""
seq_sentence = jieba.lcut(sentence)
print("|".join(seq_sentence))

在这里插入图片描述
自定义默认字典

jieba.set_dictionary("../data/NLP/user_dict.txt")
jieba.initialize()

在这里插入图片描述

三、词的可视化

1、读取数据

import pandas as pd
data = pd.read_csv("../data/NLP/articles_20240308.csv")
data.head()

2、数据处理

  • 去除前后空格
data["channels"] = data.channels.str.strip()
  • 选择数据进行词切分
data = data.loc[data["channels"]=="港股",["articles"]]
data['cut'] = data.articles.apply(lambda x: jieba.lcut(x))
data_cut = data.cut.to_list()
data_cuts = [word for sent in data_cut for word in sent]
data_cuts[:20]

在这里插入图片描述

3、统计词频

import collections
collections.Counter(data_cuts).most_common(30)

在这里插入图片描述

4、去除停用词

with open("data/my_stop_words.txt",'r',encoding='utf-8') as f:stop_words = f.readlines()stop_words = [word.strip("\n") for word in stop_words]
stop_words.extend(['\n'," ","月","日"]) # 扩展停用词
split_word = [word for word in data_cuts if word not in stop_words] #词过滤# 再次统计词频
import collections
collections.Counter(split_word).most_common(30)

在这里插入图片描述

5、词云图

1、pyecharts绘图

工具包:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyecharts
from pyecharts import options as opts
from pyecharts.charts import WordCloud
# 下面代码对应jupyter lab,notebook是默认的绘图环境,按默认配置即可
from pyecharts.globals import CurrentConfig,NotebookType
CurrentConfig.NOTEBOOK_TYPE = NotebookType.JUPYTER_LABdata = collections.Counter(split_word).items()
wordcloud = (WordCloud().add("", data, word_size_range=[20, 80],textstyle_opts=opts.TextStyleOpts(font_family="Microsoft YaHei",font_weight='bold')).set_global_opts(title_opts=opts.TitleOpts(title="港股热词"))
)wordcloud.render("0620港股热词.html")
wordcloud.load_javascript()

在这里插入图片描述

2、WordCloud绘图

工具包:

pip install wordcloud -i https://pypi.tuna.tsinghua.edu.cn/simple 
import wordcloud
import matplotlib.pyplot as plttxt = " ".join(split_word)
w = wordcloud.WordCloud(width=1000,height=800,font_path=r"C:\Windows\Fonts\simhei.ttf",background_color = 'white')
wc = w.generate(txt)
plt.imshow(wc)
plt.axis('off');

在这里插入图片描述
修改词云图样式

import wordcloud
import matplotlib.pyplot as pltbackgroud_img = plt.imread("data/mask.jpg")
w = wordcloud.WordCloud(width=1000,height=800,font_path=r"C:\Windows\Fonts\simhei.ttf",background_color = 'white',mask=backgroud_img)
wc = w.generate(txt)
plt.imshow(wc)
plt.axis('off');

在这里插入图片描述

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

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

相关文章

# 消息中间件 RocketMQ 高级功能和源码分析(七)

消息中间件 RocketMQ 高级功能和源码分析(七) 一、 消息中间件 RocketMQ 源码分析:消息存储核心类介绍 1、消息存储在 store 模块中。消息存储核心类 DefaultMessageStore.java 2、消息存储核心类介绍 private final MessageStoreConfig me…

数据库 | 期末复习专题(HBUT 韩洪木)

总结: 考研数据库系统概论题目整理_若视图的属性来自聚集函数、表达式,则该视图是可以更新的。-CSDN博客 数据库系统概论 ---知识点大全(期末复习版)_数据库系统概论期末复习-CSDN博客 03数据库关系代数习题_关系代数例题-CSDN博客 【数据库…

select的奇葩操作总结

摘要&#xff1a; 世界奇葩事千千万&#xff0c;select操作占一半&#xff01;最近原生开发中遇到一些问题&#xff0c;特别是select&#xff01; select原生实现二级树&#xff1a; php的twig下实现占位符号错位实现 <select name"category_id" id"input-c…

珈和科技和比昂科技达成战略合作,共创智慧农业领域新篇章

6月14日&#xff0c;四川省水稻、茶叶病虫害监测预警与绿色防控培训班在成都蒲江举办。本次培训班由四川省农业农村厅植物保护站主办&#xff0c;蒲江县农业农村局、成都比昂科技筹办。四川省农业农村厅植物保护站及四川省14个市州36个县植保站负责人进行了观摩学习。 武汉珈…

R3CTF NinjaClub复现

R3CTF NinjaClub jinjia2沙箱 题目源码 from jinja2.sandbox import SandboxedEnvironment, is_internal_attribute from jinja2.exceptions import UndefinedError from fastapi import FastAPI, Form from fastapi.responses import HTMLResponse from pydantic import Bas…

商超便利店收银系统源码推荐

细节决定成败&#xff0c;无论是做什么事情都要注重细节&#xff0c;让我们来看看关于商超便利店陈列的“细节”有哪些需要注意的地方。 首先要注意商品不要摆太高&#xff0c;放在适当位置即可&#xff01; 商超便利店内&#xff0c;销量最佳的物品摆放位置依次为与顾客视线…

卡巴斯基安全卡片

卡巴斯基委托我们制作展示各种安全场景的插图卡片&#xff0c;这些卡片用于在欧洲委员会支持下开发的互动在线培训课程。我们的设计师为这个项目创造了一种独特的风格&#xff0c;既美观又实用。卡片展示了可能出现的潜在危险情况&#xff0c;例如在购物中心、公交车站或办公室…

2004年上半年软件设计师【下午题】试题及答案

文章目录 2004年上半年软件设计师下午题--试题2004年上半年软件设计师下午题--答案2004年上半年软件设计师下午题–试题

若依 Excel导入 字段值转换 字典自动匹配转换等

Excel表格数据截图&#xff1a; 数据库结构&#xff1a;需要将数据转换为数值或char类型存储 转换结果&#xff1a; 未使用Excel注解参数的效果&#xff1a; 断点数据 使用Excel注解参数的效果&#xff1a; 断点数据 最终入库&#xff1a; 参考&#xff1a; http://doc.ru…

华为Pocket 2,夏日达人的时尚新宠!

夏天炎炎&#xff0c;适合撒欢~但时尚与便利从不缺席&#xff01;我的时尚新宠华为Pocket 2跟我一起。 高颜值的外观一定是出行拍照和搭配单品的选项&#xff0c;这款小巧精致的手机&#xff0c;外屏设计超级时尚,轻松搭配出夏日潮流风。它的外屏还支持个性化设置&#xff0c;…

0613,基本数据类型,表达式

目录 第三章&#xff08;基本数据类型&#xff09;思维导图 题目1&#xff0c;选做&#xff1a;0xCAFE的各种位运算 答案代码/补&#xff1a; 参考答案&#xff1a; 题目二&#xff0c;必做&#xff1a;判断闰年&#xff0c;下一天&#xff0c;两天时差&#xff0c;星期几…

红队实战宝典之内网渗透测试

本文源自《红队实战宝典之内网渗透测试》一书前言。 近年来&#xff0c;随着计算机网络技术的发展和应用范围的扩大&#xff0c;不同结构、不同规模的局域网和广域网迅速遍及全球。 以互联网为代表的计算机网络技术在短短几十年内经历了从0到1、从简单到复杂的飞速发展&#…

STM32单片机-PWR电源控制和WDG看门狗

STM32单片机-PWR电源控制和WDG看门狗 一、PWR简介二、低功耗模式三、修改主频&睡眠模式&停机模式&待机模式3.1 修改主频3.2 睡眠模式3.3 停机模式3.4 待机模式 四、WDG简介4.1 独立看门狗原理4.2 窗口看门狗原理4.3 IWDG和WWDG对比 五、独立看门狗&窗口看门狗5…

DrissionPage框架应用

DrissionPage框架应用 Scrapy框架可以自定义请求&#xff0c;我们经常使用的selenium,pypuppteer&#xff0c;playwight等模拟浏览器的环境执行网络的请求&#xff1b;但是以上都有被检测的风险&#xff0c;新晋浏览器防检测工具&#xff0c;不仅不需要繁琐的安装浏览器的内核&…

『大模型笔记』斯坦福大学教授李飞飞在2024年数据与人工智能峰会上的人工智能历史与未来

MAC 文章目录 一. 斯坦福大学教授李飞飞在2024年数据与人工智能峰会上的人工智能历史与未来引言过去与现在现代 AI 的进步未来的发展空间智能近期进展与未来展望文字输入制作视频机器人学习AI 与人类互动医疗健康应用结语二. 参考文献一. 斯坦福大学教授李飞飞在2024年数据与人…

全球AI视频技术竞赛加速:Runway即将推出更优更快的第三代AI视频模型|TodayAI

Runway即将在未来几天推出其更优更快的第三代AI视频模型&#xff0c;这是新一代模型中最小的一个。据公司透露&#xff0c;这款名为Gen-3的模型将带来“在真实度、一致性和动态效果上的重大提升”&#xff0c;同时在速度上也有显著的加快。 去年六月&#xff0c;Runway首次推出…

Mathtype与word字号对照+Mathtype与word字号对照

字体大小对照表如下 初号44pt 小初36pt 一号26pt 小一24pt 二号22pt 小二18pt 三号16pt 小三15pt 四号14pt 小四12pt 五号10.5pt 小五9pt 六号7.5pt 小六6.5pt 七号5.5pt 八号5pt 1 保存12pt文件 首选选择第一个公式&#xff0c;将其大小改为12pt 然后依次选择 “预置”—…

ClipArt ETC - 典雅的剪贴画网站

文章目录 ClipArt ETCClippix佛罗里达教学技术中心课堂数字内容 ClipArt ETC 网站地址&#xff1a; https://etc.usf.edu/clipart/ ClipArt ETC为学生和教师提供了超过71,500件高质量的教育剪贴画。 每个插图都有图像大小的选择以及学校项目中正确引用的完整源信息。 所有图像…

【Java】已解决java.sql.SQLRecoverableException异常

文章目录 一、分析问题背景二、可能出错的原因三、错误代码示例四、正确代码示例五、注意事项 已解决java.sql.SQLRecoverableException异常 在Java的数据库编程中&#xff0c;java.sql.SQLRecoverableException是一个重要的异常&#xff0c;它通常表示一个可以恢复的SQL异常。…