基于 jieba 和 word_cloud 生成《人民的名义》小说词云

python 某江文学城小说标题爬虫+简单数据分析+词云可视化 这里写自定义目录标题1.简介2.爬虫2.1 url解析2.2 页面元素解析2.3 登录2.4 完整代码3. 数据分析与可视化3.1 柱状图3.2 饼图4. 小说标题词云4.1 分词4.2 词频统计4.3 词云可视化 1.简介 目标站点:晋江文学城书库 爬虫工具:BeautifulSoup 数据分析:pandas,matplotlib 词云:wordcloud,re PS. 鉴于江湖上一直流传着jj老板抠门得很,程序员只有3个服务器也只有几台办公还在小区里面,建议爬的时候通过sleep放慢爬取速度,减少给服务 阅读详情
基于 jieba 和 word_cloud 生成《人民的名义》小说词云

       由于词云在反映文本关键信息上的显著优势,在本文中,我选择结合实例为大家介绍一下 Python 中专门用来生成词云的一个库——word_cloud 。
       实例中的分析对象就选择为最近大火的电视剧《人民的名义》小说原著,通过词云来分析一下小说各具魅力的人物中,究竟谁的出场率最高,谁是真正的主角。
       考虑到 Word_Cloud 的默认处理对象是英文,对中文的分词效果不够理想,所以在实例中还用到了一个强大的中文分词组件——jieba ,在文章中也会给大家进行简单介绍。

一、准备工作

1.1 word_cloud 介绍

       首先,为大家介绍一下 word_cloud 库的基本信息。word_cloud 是哥伦比亚大学的Andreas Müller 开发的基于 Python 的词云生成器,同时支持Python2 和 Python3 。 word_cloud 使用的词云生成算法简洁高效,支持任意形状的图片模板,可以自动生成配色。也可以对词云中单词的数量、配色、尺寸、排列方式等一系列参数进行自定义的设定。

       在word_cloud 库里,最重要的一个类是 WordCloud 。这个类中的属性包含了词云生成过程中的各项相关参数,方法中则包含了文本分词、词云的生成、绘制等一系列函数。首先,我们来看一下 WordCLoud 的属性:

class wordcloud.WordCloud(font_path=None, width=400, height=200, margin=2, ranks_only=None, prefer_horizontal=0.9, mask=None, scale=1, color_func=None, max_words=200, min_font_size=4, stopwords=None, random_state=None, background_color='black', max_font_size=None, font_step=1, mode='RGB', relative_scaling=0.5, regexp=None, collocations=True, colormap=None, normalize_plurals=True)

       可以看到,WordCloud这个函数有22个参数,能够设置词云生成过程中各个方面的参数,我们可以通过设定这些参数的取值来实现我们想要的效果。当然,这么多参数,我们只需要设置我们最关心的几个参数,其余参数取默认值就可以了。这里,简单介绍一下我们将要用到的几个重要参数:

  • 第一个参数是 font_path,字体路径。这个参数用来选择生成词云中文字使用的字体。在Linux环境中,字体默认的是DroidSansMono,如果没有这个字体或者使用的是其他操作系统,都需要下载字体文件,对这个参数赋予字体所在路径。需要注意的是,由于默认字体是英文字体,我们在处理中文文本时,建议使用自己选择的汉字字体。在选择字体的过程中,最好选择字库比较完整的经典字体,如黑体、宋体等字体。若使用一些字库不够完整的特殊字体,容易出现词云中一些汉字无法显示的情况,影响效果。

  • 第二个参数是 mask ,模板图片。这个参数用来选择词云生成形状的模板。默认不设置情况下,生成词云会是一个矩形。选作模板的图片需要是一副二值图像。模板图像矩阵中,白色(#FF 或 #FFFFFF) 的元素位置会被排除,其余的元素位置会被单词填满。也就是说,使用一副黑白图像作为模板时,生成的词云是黑色部分的形状。输入的模板图片的格式支持常用格式如png、jpeg等。

  • 第三个参数是 max_words,最大单词数。顾名思义,这个参数决定了词云中显示的单词的总数上限,我们可以根据具体应用需求来设置这个参数的大小。类似的还有max_font_size(最大字体尺寸)、min_font_size(最小字体尺寸)、backgroud_color(背景颜色)等一系列功能明确的参数,可以根据需要自由设置,没有特殊的限制。

       关于 WordCloud 类的属性,以上的介绍已经可以满足我们的基本使用需要,接下来我们来了解一下 WordCloud 类中的主要方法。WordCloud 类中包含的方法如下所示:

方法简介
fit_words(frequencies)Create a word_cloud from words and frequencies
generate(text)Generate wordcloud from text
generate_from_frequencies(frequencies[, …])Create a word_cloud from words and frequencies
generate_from_text(text)Generate wordcloud from text
process_text(text)Splits a long text into words, eliminates the stopwords
recolor([random_state, color_func, colormap])Recolor existing layout
to_array()Convert to numpy array
to_file(filename)Export to image file
to_html()Export to html file
to_image()Export to image

       在这些方法函数中,本篇将会用到的函数主要是从文本中生成词云的函数 generate(text) 。函数的输入是txt格式的文本文件,输出最终的词云数据。这里需要注意的是,函数输入的文本文件对内容格式是有要求的。文本必须由一个个独立分隔开的词语构成,这样函数才可以对每个词语的出现频率进行统计,生成词云。

       在本篇的实例中,我们处理的对象是《人民的名义》小说文本,文本全部由句子构成,不能直接作为 generate 函数的输入值。因此,我们需要对由句子构成的文本进行”分词“的预处理。顾名思义,分词就是将句子分解成若干个独立的词汇。在上表中可以看到,WordCloud 类中提供了实现分词功能的函数 process_text(text)。但是这个函数的设计是主要面向英文文本的分词的,所以对中文的分词效果不能令人满意。

       为了解决分词的问题,本篇选择了中文分词工具库 jieba,下面就介绍一下jieba 相关的基本知识。

1.2 Jieba 介绍

       Jieba,也就是“结巴”中文分词,是一个非常强大且完善的中文分词组件。Jieba 库有很多语言的实现版本, Python 版本同时支持 Python2 和 Python3。

       Jieba的主要功能特性有以下几点:

  • 支持三种分词模式:

    • 精确模式,试图将句子最精确地切开,适合文本分析;
    • 全模式,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义;
    • 搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。
  • 支持繁体分词

  • 支持自定义词典
  • MIT 授权协议

       Jieba能够实现分词、添加自定义词典、关键词提取、词性标注、并行分词、Tokenize返回词语在原文的起止位置、ChineseAnalyzer for Whoosh 搜索引擎、命令行分词等一系列非常丰富功能。在本篇当中,我们主要会用到分词、添加自定义词典和关键词提取的功能,下面分别介绍一下这三个功能的基本实现。

1.2.1 分词功能
  • jieba.cut 方法接受三个输入参数: 需要分词的字符串;cut_all 参数用来控制是否采用全模式;HMM 参数用来控制是否使用 HMM 模型
  • jieba.cut_for_search 方法接受两个参数:需要分词的字符串;是否使用 HMM 模型。该方法适合用于搜索引擎构建倒排索引的分词,粒度比较细
  • 待分词的字符串可以是 unicode 或 UTF-8 字符串、GBK 字符串。注意:不建议直接输入 GBK 字符串,可能无法预料地错误解码成 UTF-8
  • jieba.cut 以及 jieba.cut_for_search 返回的结构都是一个可迭代的 generator,可以使用 for 循环来获得分词后得到的每一个词语(unicode),或者用jieba.lcut 以及 jieba.lcut_for_search 直接返回 list
  • jieba.Tokenizer(dictionary=DEFAULT_DICT) 新建自定义分词器,可用于同时使用不同词典。jieba.dt 为默认分词器,所有全局分词相关函数都是该分词器的映射。

代码示例

# encoding=utf-8
import jieba

seg_list = jieba.cut("我来到北京清华大学", cut_all=True)
print("Full Mode: " + "/ ".join(seg_list))  # 全模式

seg_list = jieba.cut("我来到北京清华大学", cut_all=False)
print("Default Mode: " + "/ ".join(seg_list))  # 精确模式

seg_list = jieba.cut("他来到了网易杭研大厦")  # 默认是精确模式
print(", ".join(seg_list))

seg_list = jieba.cut_for_search("小明硕士毕业于中国科学院计算所,后在日本京都大学深造")  # 搜索引擎模式
print(", ".join(seg_list))
Building prefix dict from the default dictionary ...
Loading model from cache /tmp/jieba.cache
Loading model cost 1.059 seconds.
Prefix dict has been built succesfully.


Full Mode: 我/ 来到/ 北京/ 清华/ 清华大学/ 华大/ 大学
Default Mode: 我/ 来到/ 北京/ 清华大学
他, 来到, 了, 网易, 杭研, 大厦
小明, 硕士, 毕业, 于, 中国, 科学, 学院, 科学院, 中国科学院, 计算, 计算所, ,, 后, 在, 日本, 京都, 大学, 日本京都大学, 深造
1.2.2 添加自定义词典功能
  • 开发者可以指定自己自定义的词典,以便包含 jieba 词库里没有的词。虽然 jieba 有新词识别能力,但是自行添加新词可以保证更高的正确率
  • 用法: jieba.load_userdict(file_name) # file_name 为文件类对象或自定义词典的路径
  • 词典格式和 dict.txt 一样,一个词占一行;每一行分三部分:词语、词频(可省略)、词性(可省略),用空格隔开,顺序不可颠倒。file_name 若为路径或二进制方式打开的文件,则文件必须为 UTF-8 编码。
  • 词频省略时使用自动计算的能保证分出该词的词频。
1.3.3 关键词提取功能

基于 TF-IDF 算法的关键词抽取

import jieba.analyse

  • jieba.analyse.extract_tags(sentence, topK=20, withWeight=False, allowPOS=())
  • sentence 为待提取的文本
  • topK 为返回几个 TF/IDF 权重最大的关键词,默认值为 20
  • withWeight 为是否一并返回关键词权重值,默认值为 False
  • allowPOS 仅包括指定词性的词,默认值为空,即不筛选
  • jieba.analyse.TFIDF(idf_path=None) 新建 TFIDF 实例,idf_path 为 IDF 频率文件

基于 TextRank 算法的关键词抽取

  • jieba.analyse.textrank(sentence, topK=20, withWeight=False, allowPOS=(‘ns’, ‘n’, ‘vn’, ‘v’)) 直接使用,接口相同,注意默认过滤词性。
  • jieba.analyse.TextRank() 新建自定义 TextRank 实例
1.3 环境搭建

       在对 word_cloud 和 jieba 两个库有了基本的了解之后,我们来学习一下两个库的安装和相关环境的搭建。

1.3.1 word_cloud 的安装
1.3.2 jieba 的安装
  • 全自动安装:easy_install jieba 或者 pip install jieba / pip3 install jieba
    • 半自动安装:先下载 http://pypi.python.org/pypi/jieba/ ,解压后运行 python setup.py install
    • 手动安装:将 jieba 目录放置于当前目录或者 site-packages 目录
    • 通过 import jieba 来引用
1.3.3 Anaconda 的使用

       个人在这里推荐使用 Anaconda 来配置 Python 开发环境。
Anaconda是专注于数据分析的Python发行版本,包含了conda、Python等190多个科学包及其依赖项。而conda 是开源包(packages)和虚拟环境(environment)的管理系统。

  • packages 管理: 可以使用 conda 来安装、更新 、卸载工具包 ,并且它更关注于数据科学相关的工具包。在安装 anaconda 时就预先集成了像 Numpy、Scipy、 pandas、Scikit-learn 这些在数据分析中常用的包。另外值得一提的是,conda 并不仅仅管理Python的工具包,它也能安装非python的包。比如在新版的 Anaconda 中就可以安装R语言的集成开发环境 Rstudio。
  • 虚拟环境管理: 在conda中可以建立多个虚拟环境,用于隔离不同项目所需的不同版本的工具包,以防止版本上的冲突。对纠结于 Python 版本的同学们,我们也可以建立 Python2 和 Python3 两个环境,来分别运行不同版本的 Python 代码。

       Anaconda通过管理工具包、开发环境、Python版本,大大简化了工作流程。不仅可以方便地安装、更新、卸载工具包,而且安装时能自动安装相应的依赖包,同时还能使用不同的虚拟环境隔离不同要求的项目。

       如果想要安装Anaconda的话,可以通过官网下载页面下载 Anaconda 的安装程序以及查看安装说明,在这里就不再赘述了。

1.4 实现思路

       在完成基础知识了解和环境配置后,我们可以来思考一下具体的实现过程了。


       我们的目标是生成《人民的名义》小说词云,我们希望词云中的词汇只有角色的名字,没有其他无关词汇,这样才能更好地反映出角色的比重。


       我们的处理对象是从网络获得的《人民的名义》小说 txt 文件,编码格式为 utf-8 ,字符数为268375。


       根据之前的基础知识,我们不难获得整个程序的实现思路:

  1. 分词
    • 小说文本整体分词
    • 构建自定义人名词典
    • 筛选关键词
  2. 生成词云,绘制图片

       因此,我们只需要设计两个函数。第一个函数是分词函数,用来实现小说的整体分词和人名筛选等功能,获得只包含人名的分词结果。第二个函数就是词云生成函数,使用分词函数的分词结果作为输入,对词云的模板、词量等参数进行设置,输出最终的词云结果,并保存为图片文件。

二、程序设计

2.1 库的导入

       首先,程序的开始我们要声明编码方式,并导入需要用到的库文件,代码如下:

#-*- coding:utf-8 -*-
#encoding=utf8
import codecs
import jieba
jieba.load_userdict("namedict.txt")
import jieba.analyse as analyse
from wordcloud import WordCloud
from scipy.misc import imread
from os import path

       可以看到,我们引入了 codecs,是为了使用 codecs.open() 函数打开文本文件,引用了jieba.analyse 是为了调用其中的 extract_tags 函数来实现关键词的筛选。值得注意的是,在这里,我加载了自定义字典文件 “namedict.txt”。在这个字典文件中,依照温暖的文档要求的格式,记录了21个小说中人物角色的姓名,并标注词性为”nr“,代表名字。下面是部分示例。

侯亮平 nr

沙瑞金 nr

祁同伟 nr

李达康 nr

高育良 nr

       通过这个自定义词典的加载,我们可以保证分词过程中,角色名字可以正确完整地被分割出来,并且可以根据词性”nr“,将所有名字筛选出来。

2.2 分词函数的实现

代码如下,代码的原理在注释中有详细介绍:

def seg_sentence(file_name):  
    with codecs.open(file_name,encoding='utf-8') as f:     #打开文件
       original_text = f.read()                   #读取文件内容为字符original_text
    wordList = jieba.cut(original_text)          #全文分词,结果存储在wordlist中
    print('全文分词完成...')
    allow_pos = ('nr',)                           #设置筛选参数为”nr“,名字
    tags = jieba.analyse.extract_tags(original_text, topK=30, withWeight=False, allowPOS=allow_pos)
                       #从原文文本original_text中,筛选词性为”nr“的前30个词汇作为关键词
    print('关键词筛选完成...')
    stags=" ".join(tags)                          #将关键词通过空格连接为字符串stags

    f2=open(u"stags.txt","w+")
    f2.write(stags)
    f2.write("\n")
    f2.close()                      #将获得的关键词存储到stags.txt文件中(供调试查看)

    outstr = ''                                         
    for word in wordList:                             #遍历全文分词结果wordlist
        if word  in stags:                          #与关键词字符串比较,只保留关键词
            if len(word) > 1:                       # 去掉长度小于1的词  
                if word != '\t':  
                    outstr += word  
                    outstr += " "                
                                  #将保留下的词输出到字符串outstr中,通过空格连接为字符串
    return outstr  
    print ("生产词云文本...")
2.3 词云生成函数的实现

代码如下,代码的原理在注释中有详细介绍:

# 绘制词云
def draw_wordcloud(file_name):

   outstr=seg_sentence(file_name)                                   
                               #调用分词函数,生成只包含关键词的分词文本outstr,字符串格式

   f2=open(u"分词后.txt","w+")
   f2.write(outstr)
   f2.write("\n")
   f2.close()                          #将outstr保存到 分词后.txt文件中 (供调试查看)

   font='/home/xplanet/下载/black.ttf'                       
                                                       #选择字体路径,这里使用了黑体
   color_mask = imread("/home/xplanet/下载/star.jpeg")  
                                               #读取模板图片,这里使用了一张五角星图片
   cloud = WordCloud(font_path=font,background_color='white',mask=color_mask,max_words=100,max_font_size=60)
                        #设置词云参数,字体,模板,背景白色,最大词量100个,最大字体尺寸60
   word_cloud = cloud.generate(outstr)                  # 产生词云数据 word_cloud


   print ("词云完成...")
   word_cloud.to_file("w_cloud.jpg")                    #词云保存为图片w_cloud.jpg
   print ("词云保存成功...")
   return word_cloud
2.4 函数的调用

       两个主要函数定义完成后,就可以设置小说文本路径,直接调用词云生成函数生成词云了。

       这里需要的代码也很简单,如下所示:

file_name = '/home/xplanet/下载/人民的名义2.txt'         #设置小说所在路径
word_cloud=draw_wordcloud(file_name)                   
                                  #调用词云生成函数,生成词云word_cloud,并保存成为图片

import matplotlib.pyplot as plt
plt.imshow(word_cloud)
plt.axis("off")
plt.show()                                      #引入matplotlib模块是为了显示词云图

三、实践结果

将上述代码编写到一个Python文件txtwc.py中,如下所示:

# -*- coding:utf-8 -*-
#encoding=utf8

import codecs
import jieba
jieba.load_userdict("namedict.txt")
import jieba.analyse as analyse
from wordcloud import WordCloud
from scipy.misc import imread
from os import path

def seg_sentence(file_name):  
    with codecs.open(file_name,encoding='utf-8') as f:     #打开文件
       original_text = f.read()                   #读取文件内容为字符串original_text
    wordList = jieba.cut(original_text)             #全文分词,结果存储在wordlist中
    print('全文分词完成...')
    allow_pos = ('nr',)                                  #设置筛选参数为”nr“,名字
    tags = jieba.analyse.extract_tags(original_text, topK=30, withWeight=False, allowPOS=allow_pos)
                        #从原文文本original_text中,筛选词性为”nr“的前30个词汇作为关键词
    print('关键词筛选完成...')
    stags=" ".join(tags)                         #将关键词通过空格连接为字符串stags

    f2=open(u"stags.txt","w+")
    f2.write(stags)
    f2.write("\n")
    f2.close()                      #将获得的关键词存储到stags.txt文件中(供调试查看)

    outstr = ''                                         
    for word in wordList:                               #遍历全文分词结果wordlist
        if word  in stags:                          #与关键词字符串比较,只保留关键词
            if len(word) > 1:                               # 去掉长度小于1的词  
                if word != '\t':  
                    outstr += word  
                    outstr += " "                
                                  #将保留下的词输出到字符串outstr中,通过空格连接为字符串
    return outstr  
    print ("生产词云文本...")

# 绘制词云
def draw_wordcloud(file_name):

   outstr=seg_sentence(file_name)    
                               #调用分词函数,生成只包含关键词的分词文本outstr,字符串格式

   f2=open(u"分词后.txt","w+")
   f2.write(outstr)
   f2.write("\n")
   f2.close()                    #将outstr保存到 分词后.txt文件中 (供调试查看)

   font='/home/xplanet/下载/black.ttf'                  #选择字体路径,这里使用了黑体
   color_mask = imread("/home/xplanet/下载/star.jpeg")  
                                               #读取模板图片,这里使用了一张五角星图片
   cloud = WordCloud(font_path=font,background_color='white',mask=color_mask,max_words=100,max_font_size=60)
                      #设置词云参数,字体,模板,背景白色,最大词量100个,最大字体尺寸60
   word_cloud = cloud.generate(outstr)                # 产生词云数据 word_cloud


   print ("词云完成...")
   word_cloud.to_file("w_cloud.jpg")                                           #词云保存为图片w_cloud.jpg
   print ("词云保存成功...")
   return word_cloud

file_name = '/home/xplanet/下载/人民的名义2.txt'         #设置小说所在路径
word_cloud=draw_wordcloud(file_name)                   
                                   #调用词云生成函数,生成词云word_cloud,并保存成为图片

import matplotlib.pyplot as plt
plt.imshow(word_cloud)
plt.axis("off")
plt.show()                                       #引入matplotlib模块是为了显示词云图

运行文件,得到结果如下图所示:


       从结果图可以看出,在众多魅力各异的角色中,侯亮平和李达康是《人民的名义》中登场率最高的人物,祁同伟、高育良等人的存在感也不相上下。看来,达康书记在网络上的超高人气不是空穴来风啊!

python为自己龟蜗速更新的小说生成词云 python生成词云 jieba分词 wordcloud 词云中文显示方框 jieba安装失败 阅读详情

相关推荐

NLP - 结巴分词 & 词云

jieba 关于 jieba 特点 安装 使用 分词工具 添加自定义词典 关键词抽取 词性标注 词云 关于词云 一些工具、资料 使用 一个简单的英文词云 生成中文词云 词云展示 自定义显示 分析 `WordCloud()` 方法 带 mask 词云

AI工程化、开源分享、文档翻译、代码笔记 1765

中文小说文章词频词云分析

引言:本人从小白自学python,为了测试基础学习效果,增加一定的促进,想通过参加全国计算机等级考试二级python来检验基础学习情况。在学习过程中,会将该过程编写的python小程序题目在此发表,希望找到共同学习的人一起讨论,可能发表的有许多不是很完善的地方,请大家指正。后期学习路线,还会继续通过参加一些社会类的考试来检验学习成果。高阶段学习的话,可能会参加一些python的比赛,或者自己接一些项目,然后会根据自己的情况将一些项目的Python程序在此分享。 码字不易,求赞,求关注,求赏 一、本项目来

weixin_54428008的博客 2007

明星拜喜--明星姓名列表词云生成

正逢喜事,闲暇时间做的爬取明星姓名列表制作的图形词云,有兴趣可以下载瞧瞧

Python爬虫之wordcloud+jieba爬取小说并生成词云(八)

原创不易,转载前请注明博主的链接地址:Blessy_Zhu https://blog.youkuaiyun.com/weixin_42555080 本次代码的环境: 运行平台: Windows Python版本: Python3.x IDE: PyCharm 一、 前言 今天这篇文章写的内容是爬取《全书网》http://www.quanshuwang.com/book/9/9055 的《盗墓笔记小说》,然后用...

Blessy_Zhu的博客 7011

Python基于jieba, wordcloud库生成中文词云

主要介绍了Python基于jieba, wordcloud库生成中文词云,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

深度学习二分类实战:用Python+Keras搞定基因表达数据预测(附完整代码)

本文详细介绍了如何使用Python和Keras构建深度学习模型进行基因表达数据的二分类预测。通过数据预处理、特征选择、神经网络构建及优化策略,特别针对小样本场景提供了调参技巧和模型解释方法。文章还包含完整的代码示例,帮助读者快速掌握深度学习在生物信息学中的应用。

weixin_30642561的博客 245

生成开端原著小说词云

生成开端原著小说词云 今天刚好看了开端,然后又学了一点Python,于是灵光一闪,想到用新学的wordcloud生成一下小说的词云会怎么样。 代码如下 import jieba import wordcloud f = open("开端.txt", "r", encoding="utf-8") t = f.read()#一次性读入 f.close() ls = jieba.lcut(t)#返回分词结果,一个列表 newls=[]#建一个新列表 for word in ls: if len(word

weixin_61539900的博客 742

5分钟搞定Google Custom Search API申请:从注册到获取CX Key全流程

本文详细介绍了如何快速申请和配置Google Custom Search API,从Google Cloud项目创建、启用计费、获取API Key,到在Programmable Search Engine控制台创建自定义搜索引擎并获取关键的CX Key,提供了全流程实战指南。文章还包含安全配置建议、API调用测试方法及前端与后端的集成代码示例,帮助开发者高效实现网站或应用的智能搜索功能。

weixin_29227585的博客 1673

基于共现网络原理将剧本《人民的名义》人物关系社交网络可视化

本文以《人民的名义》剧本为分析材料。基于共现网络原理。将剧本人物之间的共现关系重新整理发布。该剧本非常适合文本处理,语言简洁,大致每一段对应一个关键情节。由于《人民的名义》人物少、关系简单,所以我们可以通过词典指定人物名称的方式做实体识别。也可以不建立字典并尝试使用某种分词算法或包装好的分词库(如使用jieba),但离开特定词典的针对特定文本的分词效果可能会有很大程度削弱。因此对简单网络而言,建......

调皮李小怪博客 5155

故障诊断知识库建设指南

从数据融合到知识图谱构建,从智能推理引擎开发到动态进化机制落地,故障诊断知识库的建设路径已形成 “数据 - 知识 - 智能” 的闭环体系。随着大模型技术的深度融入,知识库将实现从 “规则驱动” 到 “认知推理” 的跨越 —— 通过自然语言理解解析复杂故障描述、多模态分析融合图像与信号数据、预测性算法推演故障发展趋势,持续提升诊断的精准度与前瞻性。

极昆仑智慧 1232

【技术纵览】行为识别前沿模型演进:从CNN到多模态大模型

本文全面解析了行为识别技术从CNN到多模态大模型的演进历程,重点介绍了SlowFast、TimeSformer、VideoMAE和InternVideo等SOTA模型的核心创新与应用实践。通过对比分析各代模型在Kinetics-400等数据集上的表现,揭示了自监督学习和多模态融合如何推动行为识别准确率突破85%,并探讨了工业部署中的技术选型策略与优化方向。

weixin_29169505的博客 154

基于30多万条招聘信息的热门城市、地域 、薪资、人才要求的数据可视化分析...

又是一年毕业季,什么工作好找、工资高、哪些地域有优势等就是很多人关注的话题了。这里用一份2017年初,含有32万条数据(行)、19个详细招聘信息(列)的数据进行招聘信息的...

大数据技术派 1274

在WSL2中配置代理(Windows)

通过按照上述步骤在WSL2中配置代理,我们可以轻松地在Windows子系统Linux中使用代理服务器访问互联网。请确保提供正确的代理服务器地址和端口号,并根据实际情况进行修改。在WSL2中使用代理是一个常见的需求,它允许我们在Windows子系统Linux中通过代理服务器访问互联网。本文将详细介绍如何在WSL2中配置代理,并提供相应的源代码示例。如果返回的IP地址与代理服务器所在地不同,说明代理正常工作。希望本文能对你有所帮助!如有其他问题,请随时向我提问。替换为实际的代理服务器地址和端口号。

FcUnity的博客 4356

python 小说 云_Python给小说做词云

闲暇时间喜欢看小说,就想着给小说做词云,展示小说的主要内容。开发语言是Python,主要用到的库有wordcloud、jieba、scipy。代码很简单,首先用jieba.cut()函数做分词,生成以空格分割的字符串,然后新建WordCloud类,保存为图片。1 #coding:utf-82 importsys3 importjieba4 importmatplotlib.pyplot as pl...

weixin_39633455的博客 460

Ego Planner规划算法(下)——Ego Planner程序框架

本系列文章用于学习记录Ego-Planner规划算法的相关内容,本系列文章是在在Fast Planner规划算法系列文章的基础上,展开对Ego Planner的相关介绍,主要包括Ego Planner算法流程和程序框架两部分,主要学习资料是深蓝学院的移动机器人运动规划课程

慕羽★的博客 7260

Android应用发布到Google Play的步骤和注意事项

发布Android应用到Google Play是将您的应用分享给全球用户的重要步骤。Google Play是Android平台上最大的应用分发渠道之一,使得开发者可以轻松将他们的应用推广到数百万的用户。在本篇博客中,我们将逐步介绍如何将您的Android应用发布到Google Play,同时提供详细的步骤和注意事项,以及相关的代码示例。

2201_76125261的博客 850

NLP 之 jieba (结巴)制作词云

词云

woaixuexi6666的博客 1419

基于Python的彩票数据爬虫:数据抓取与趋势分析

爬虫是一种用于从互联网上自动抓取信息的程序。在抓取彩票数据时,我们首先需要确定目标网站并获取其网页内容,接着提取彩票的开奖结果信息并保存。彩票数据通常是以HTML表格或列表的形式展示,爬虫可以利用Python的requests和来抓取静态网页,或使用Selenium来抓取动态页面。在本篇博客中,我们深入探讨了如何使用Python编写彩票数据爬虫,抓取并分析彩票开奖结果。通过Python爬虫技术,结合数据分析与可视化工具,我们能够全面分析历史开奖数据,揭示彩票号码的频率分布、趋势变化以及未来的可能走势。

2201_76125261的博客 1940

词云制作(以欧也妮葛朗台小说为例)

词云制作

littlely_ll的博客 603

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

利用小说制作词云

利用来wordcloud制作小说的词云 背景图 效果图 代码 1. 停用词太多,需要过滤掉。 2.设置词数,避免太多 # coding: utf-8 from wordcloud import WordCloud from PIL import Image import jieba import numpy as np with open('tmp.txt','r',encoding='utf8') as f: text = f.read() cut_..

u012067933的专栏 816

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

【自然语言处理】中文文本预处理及词云_以小说《白夜行》为例

参考:https://www.cnblogs.com/pinard/p/6744056.html import pandas as pd import numpy as np import jieba from wordcloud import WordCloud, STOPWORDS import matplotlib.pyplot as plt from sklearn.feature_ext...

bqw的博客 2326

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

我用jieba numpy worldcloud 做了几个小说的词云 大家看看都是谁的什么小说

代码import io import codecs import jieba import matplotlib.pyplot as plt import numpy as np import PIL.Image as Image from wordcloud import WordCloud,ImageColorGenerator f = codecs.open("小说名.txt","r","ut

事实证明的博客 837

python词云 小说《庆余年》

一、概述 使用jieba分词和wordcloud生产 小说的词云库 源码地址:https://github.com/jw-star/pythonDemo/tree/master/%E5%BA%86%E4%BD%99%E5%B9%B4wordcloud 二、效果图 三、流程 #coding=utf-8 import jieba from wordcloud import WordCloud im...

Java 906

python结巴分词,词云制作

需求 现有爬虫获取的sql文件,要求根据指定药品在文件中的出现次数制作词云,分析出未来的热门药物 基本思路 从文件中读取出所有药物的名称,将其作为字典的key值存入字典ciyun,按行读入,初始所有value为0,这里需要去除其中的每行的换行符 通过结巴分词库进行分词,这里需要引入药物的名称文件作为分词关键字,通过循环按行进行分词,判断该词是否在字典ciyun的key中,如果存在,value+1,通过wordcloud库制作词云即可 from wordcloud import WordCloud impor

weixin_51235620的博客 647
下一篇: 深度学习中的数学—Lecture 1(1)
Codename-NC
博客等级 码龄12年 38粉丝 30原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值