精华内容
下载资源
问答
  • 见习报告一份数据来自狗熊会。词云分析、回归分析。内置R语言代码。 版权声明:代码下载只能自己学习使用,切勿用于商业用途,违者必究。
  • 在现实生活中,人想做词云,也有了关键词的数据但自己又不会做词云可怎么办,我给大家推荐几款词云制作工具,让你瞬间呈现美观、酷炫的词云可视化。我们先来看看国外的词云制作工具:1、WordleWordle是一个用于从...

    在现实生活中,人想做词云,也有了关键词的数据但自己又不会做词云可怎么办,我给大家推荐几款词云制作工具,让你瞬间呈现美观、酷炫的词云可视化。我们先来看看国外的词云制作工具:

    1、Wordle

    Wordle是一个用于从文本生成词云图而提供的游戏工具。云图会更加突出话题并频繁地出现在源文本,你可以调整不同的字体,布局和配色方案等样式。做完词云图,你可以打印出来或储存。

    2、WordItOut

    WordItOut的操作简单,进入网站后只需要输入一段文本,然后就可以生成各种样式的“云”文字。用户可以根据自己的需要对WordItOut进行再设计,比如颜色、字符、字体、背景、文字位置等,保存下载后,可以复制。

    但是WordItOut是不识别中文的,如果输入中英混合的文本,保存后只显示英文字体,对于不懂英文的同学是比较痛苦的。

    3、Tagxedo

    Tagxedo有几大优点:强大的导入功能(可导入网页、文字等)、自定义设置词云形状(这个真心好)、可导入想要的字体、颜色主题多(各种选择)等。最重要的是它支持中文哦,你可以根据自己的喜好进行设置字云respin和respin,是一款很不错的词云的制作工具。

    4、Tagul

    Tagul云可以自定义字体、词云的形状(有爱心、BUS、雪人、人像、UFO等),颜色等,做出来的词云图很酷炫,为网站访问者提供良好的用户体验。用户可以在网站做好词云图,然后印在衣服、杯子、鼠标垫等地方,自己设计身边的物件,感觉很有成就感,很实用的网站。

    5、Tocloud

    ToCloud 是一个在线免费标签云生成器,你可以设置词的长度和频率。ToCloud也非常好用,它能提取短语,是一个比较好的标签云工具之一利用词频生成词云,你可以快速了解页面优化了某些单词。

    现在,来两款国内的数据产品,绝对国产,请接收。

    1、图悦

    这款国内的在线词频分析工具,在长文本自动分词并制作词云方面还是很出众的,而且也容易上手,还可以自定义定制图形模板:标准、微信、地图等,切换自如,用起来体验很不错。

    但是图悦在导出excel词频有一些不足的地方,不介意的话可以忽略。

    2、BDP个人版

    这是一款数据可视化分析工具,除了词云图,还有很多其他酷炫的数据图表,如GIS地图、漏斗图、瀑布图、桑基图、矩形树图等,都可以通过拖拽生成。BDP很容易上手,直接把词语这个数据拉到维度栏,再选择词云就瞬间呈现词云,BDP会自动算好词频,不需要你手动计算,快速实现词云可视化,特别简单。做好的词云还能导出~

    不足之处,不是专门制作词云的工具,但是还有几十种图表供你使用,是一款不错的数据可视化分析工具。

    这么多款工具大家自行选择吧,感兴趣的话都可以试试,会有很多有意思的发现,原来词云(词频)可视化是如此简单。

    展开全文
  • 1. 明确任务最近学习过程中看到很多分析报告中都有运用到可视化的词云,也有看到五花八门的工具教程,刚好有一份《都挺好》电视剧的弹幕源数据。... 使用wordcloud 将分词得到的词汇统计绘制词云图涉及难点...

    1. 明确任务

    最近学习过程中看到很多分析报告中都有运用到可视化的词云,也有看到五花八门的工具教程,刚好有一份《都挺好》电视剧的弹幕源数据。便决定用这份数据尝试使用python绘制词云。

    任务内容

    1. 在python中读取excel文件(《都挺好》弹幕源数据.xlsx)提取出弹幕内容

    2. 对弹幕内容文本进行结巴分词,设置并过滤掉停用词

    3. 使用wordcloud 将分词得到的词汇统计绘制词云图

    涉及难点

    1. 读写excel文件

    2. jieba 中文分词

    3. wordcloud 词云展示库

    2. 具体操作

    2.1 安装相应的第三方库

    本次练习需要使用到的库包括读取excel文件的openpyxl(xlwt、xlrd、pandas),进行分词的jieba,以及进行词云图绘制的numpy、matplotlib、wordcloud。

    因为不确定在此前安装过哪些库,因此先使用pip list查看已经安装好的库文件。查询之后发现只有wordcloud和openpyxl没有安装,分别使用pip install openpyxl和pip install wordcloud 即可安装。

    2.2 读写文件

    读写文件在之前了解过 with open 的方法,用于读写txt,csv文件。但是若要读写excel文件则需要使用特定的库。例如 openpyxl、xlwt/wlrd 以及pandas这几种第三方库来读写。本次使用的是openpyxl来进行的文件读写。

    相关部分代码:

    import openpyxl #此处使用的是openpyxl读取文件,此外还有 xlrd,pandas 读取文件的方式(有待补充)

    filename=r'F:\数据分析练手\都挺好-弹幕源数据.xlsx' #打开excel文件

    workbook=openpyxl.load_workbook(filename) #读取excel文件

    sheet = workbook.active

    rows = sheet.max_row #当前表格最大的行数

    columns = sheet.max_column #当前表格最大的列数

    selectrow = sheet['1'] #读取表格第一行的内容

    selectcol = sheet['E'] #读取表格指定'E'列(即弹幕内容列)的内容

    2.3 使用结巴分词模块对内容分词

    结巴分词支持三种分词模式:全模式,精确模式和搜索引擎模式,普遍使用的是精准模式,此次亦是使用的精准模式。其分词结果是一个可迭代的 generator,可使用for循环得到分词后的每一个词汇。这里定义一个函数来进行结巴分词。

    相关部分代码:

    import jieba #引入jieba

    stopwords={}.fromkeys(['的','得','地','吗','哈哈哈哈','啦','呢','吧','了','啊','这','是','我',':','?','!',' ','。','😊','\xa0', '😂']) #定义停用词字典

    selectcol=sheet['E']

    def jieba_fc(column): #定义一个分词函数进行结巴分词

    words=[] #创建一个空列表存放分词结果

    for col in column:

    word = str(col.value) #因为弹幕中有数字,为避免识别问题,将所有的内容格式都转换为字符串

    words_fc = jieba.cut (word,cut_all=False) #使用jieba精准模式进行分词

    for j in words_fc: #对分词结果进行停用词筛选

    if j not in stopwords: #如果不在停用词字典中

    words.append(j) #将它存放到words列表中

    return ' '.join(words) #将结果返回成一个以空格为间隔的字符串

    text=jieba_fc(selectcol) #调用此函数,并将结果字符串存入text中

    2.4 用wordcloud绘制词云

    相关部分代码:

    from wordcloud import WordCloud #词云展示模块

    from wordcloud import ImageColorGenerator #

    import PIL.Image as image #图像处理模块

    import matplotlib.pyplot as plt #图像展示模块

    import matplotlib.font_manager as fm #中文处理模块

    import numpy as np

    mask=np.array(image.open('148.jpg')) #图片背景参考形状

    wc=WordCloud(

    background_color="white", #背景颜色

    max_words=150, #最多显示的词数

    mask=mask, #设置图片的背景

    max_font_size=60, #最大的字符

    random_state=42, #

    font_path='C:/Windows/Fonts/simkai.ttf' #中文处理,用系统自带的字体

    ).generate(text) #generate 只能处理str文本不能处理list文本

    #对词云图各项参数进行调整,使词云图更美观

    my_font=fm.FontProperties(fname='C:/Windows/Fonts/simkai.ttf') #词云字体设置

    image_colors=ImageColorGenerator(mask) #基于彩色图像的颜色生成器 提取背景图片颜色

    wc.recolor(color_func=image_colors) # 将词云颜色设置为背景图的颜色

    plt.axis("off") #为云图去掉坐标轴

    plt.show() #画云图,显示

    plt.imshow(wc,interpolation="bilinear") #开始画图

    wc.to_file("dth.png") #输出一个png文件保存云图

    2.5效果图

    参数调整之前的词云图

    027c493ab779

    初始词云图

    背景图片

    027c493ab779

    背景图

    设置了背景图,字体颜色等参数的词云图

    027c493ab779

    都挺好弹幕词云图

    3. 遇到的问题

    在进行结巴分词的时候,运行代码导致格式错误

    “AttributeError: 'int' object has no attribute 'decode'”

    经过检查发现是因为弹幕中有包含'666'等数字的内容,在结巴分词之后被计算机定义为'int'类型,导致在进行后续的计算时无法被识别而报错。

    初次尝试wordcloud词云绘制时,在wc=WordCloud(...).generate(str(words)) 代码中,因generate 只能处理str文本不能处理list文本,将words列表直接使用str转换成字符串,导致词云图出现以下情况:

    027c493ab779

    出现问题的词云图.jpg

    在使用wordcloud时,其内置分词程序会对传入的字符串进行再次分词,而直接使用str的方式转换的字符串中词与词之间包含了大量的" ' ' ",使得wordcloud再次分词时产生混乱。因此列表转字符串时可以使用 '空格'.join(列表)的方式去转换,减少词汇之间的符号,使wordcloud能够正确分词。

    4. 优化改进

    读取文件方面

    本次使用的是openpyxl库进行文件读取,此外还有xlrd模块和pandas库均可进行excel文件的读取。可以对几种方式进行尝试比较,比较三者之间的优劣差异。

    结巴分词方面

    结巴分词可以进行自定义词典,本次分词之后可以看出有一些有特定含义的词汇并没有被jieba识别,因此可以进一步添加新词使其达到更高的正确率。此外,结巴分词还可以进行词频,词性分析标注,可以去深入学习使用。

    词云绘制方面

    本次词云绘制只是简单的使用了wordcloud进行绘制,该模块还有很多其他的参数设置未进行尝试,比如统计词频进行词云绘制,根据词频高低调节字体大小,在wordcloud中设置屏蔽词汇,给现有词云重新上色等等。

    展开全文
  • 关于舆情分析的实例分析,希望给...如果在舆情分析而言,我们在营销分析分析产品、活动优劣,或者希望维护品牌PR,我们就需要针对消费者网络发声去分析情感,来帮助我们维护品牌,改善活动产品,来达到监测舆情...

    关于舆情分析的实例分析,希望给你带来一些帮助。

    前言

    距离上次文本挖掘小文章时间已经过了3个月了,北京已经入冬,有人说北京的冬天很冷,但是吃上火锅很暖;也有人说北京的冬天雾霾严重,太干。这两句表达的是对北京冬天的情感,即有正面也有负面。

    如果在舆情分析而言,我们在做营销分析,分析产品、活动优劣,或者希望维护品牌PR,我们就需要针对消费者网络发声去分析情感,来帮助我们维护品牌,改善活动产品,来达到监测舆情分析效果。换句话说也就是我们今天分享的主题—sentiment

    舆情分析思路

    笔者5年前做舆情分析时候一般来说就是人工舆情,并没有加入高级点的分析工具减少人工投入。随着R,python等的流行,同时,随着各种开源包tm,LDA,Rwordseg开发,以及高等概率数学的应用,例如分词算法根据隐性马尔科夫链算法编写而成(有兴趣的同学自己研究),让我们之前的工作量大大减少。因此人工舆情转换成人工纠正舆情大势所趋,即我们使用工具减少读帖子的时间,并且让机器学习,人工后期纠错。

    一般而言,舆情分析报告分为以下几个步骤:

    前两个可以作为统计分析-统计时间趋势音量,音量份额,后两个可以作为建模分析-主题分析,情感判别。

    这里有个小插曲:上次分享的是主题分析,笔者最近又重新梳理了下LDA,发现tm包中文分词形成词频矩阵很不理想,这会导致LDA无法应用,因此,后续笔者会自己写个脚本将词频矩阵实现,这样会方便LDA,会方便聚类分析,以及预测分析。

    言回正传,情感分析就是表达发言人对一个主题的看法,有好有坏,或者中立。情感分析应用分类两类,第一是给定正负面词,算分值,高于或者低于baseline则表示正面、负面情绪。第二,根据深度学习,利用神经网络来区分正负情感。本文先实现第一类情感分析。

    第一类情感分析:正负面词典(简版)

    读入文本,数据清理

    本次还是以上次文本为输入项,将content_Full 内容做文本处理

    清理原则:

    去除特殊字符,空值等,例如☆移动平台☆iOS☆

    去除转发的内容,留原作者观点。例如 保留红框内的文本,去除后面转发文本

    删除文本过长的内容,内容偏向日记和广告,减少文本噪声

    去除stopwords

    比如中文常规字符,‘的’‘地’‘得’‘我’等

    添加词汇

    由于本文是医用词汇,需要添加的词汇偏重医用或者品牌,不让分词拆成单个字符

    例如:妈富隆,调经

    分词&词云图

    文本处理后,根据词频出现频次,且过滤掉分词为单个词的中文,绘制词云图,鼠标所过的词可以显示文本出现次数,例如避孕药:767次

    载入正负词典

    正面词记1;负面词为-1,便于之后算分值划定情感

    计算情感得分

    将文本中的分词按照中英文词典的正负面词打分,计算分值,若中性词(不出现字典)则记为0。

    分值计算原理

    公式 (自己编的,有疑问请留言一起讨论)

    情感分值=∑i=1(正面+中性)*(-1)t

    i 表示第i句话;t表示出现负面词的次数

    公式表示一句话中若出现偶数负面词,表示肯定,例如:我其实觉得他没有那么不通情达理。 两次否定:不,没有,t=2

    结果

    正面发声分类结果:

    负面发声结果

    后续改进:

    将词频矩阵脚本改写,重现LDA 或者 聚类

    对文本先人工预判,将此打分进行 confusion matrix,评估分类器

    目测而言负面分类基本正确,正面分类中包含很多中性发声,需要进一步剔除研究

    深度学习重现下情感分析

    相关阅读

    作者:冯大福,微信公众号:说说数据分析那些事儿

    本文由 @shangyuan 原创发布于人人都是产品经理。未经许可,禁止转载。

    题图来自unsplash,基于CC0协议

    给作者打赏,鼓励TA抓紧创作!赞赏

    展开全文
  • 前一段时间,有个诉求,想了解下后台,大量反馈数据...本文就如何基于 python 对文本做分词、快速生成词云图下探讨性分享。为何选择 pythonPython是一种易于学习又功能强大的编程语言。它优雅的语法和动态类型,...

    前一段时间,有个诉求,想了解下后台,大量反馈数据,其中重点集中在哪些内容。鉴于手边并无现成工具,可以想到快捷的办法是,对数据进行统一汇总,然后分词,将占比较高的关键词汇

    ,生成词云图,从而形成对内容有大致解,为后面分析分析奠定方向。本文就如何基于 python 对文本做分词、快速生成词云图,做下探讨性分享。

    为何选择 python

    Python

    是一种易于学习又功能强大的编程语言。它优雅的语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本,以及快速开发应用的理想语言。此外,Python

    具有丰富强大的功能库,可以直接加以引用,省却很多工作量。

    大致思路

    假如已经获得文本,只需进行以下步骤即可:

    jieba

    具体实现

    # gen-wordcloud-img.py

    import jieba

    import wordcloud

    import PIL.Image as image

    import numpy as np

    relative_path = './wordcloud/'

    target_path = 'target.txt'

    def get_jieba_words():

    content_str = open(relative_path + target_path, 'r', encoding='utf-8').read()

    return jieba.lcut(content_str)

    def get_high_frequency_word(param_list):

    exclude_words_list = ['我们', '你们', '可以']

    counts_dict = {}

    for word in param_list:

    if len(word) == 1:

    continue

    else:

    is_word_exist = False

    for ex_word in exclude_words_list:

    if ex_word in word:

    is_word_exist = True

    if not is_word_exist:

    if not word.isdigit():

    count = counts_dict.get(word, 0) + 1

    counts_dict[word] = count

    return sorted(counts_dict.items(), key=lambda x: x[1], reverse=True)

    def get_cloud_words(param_list):

    result_str = ''

    for item in param_list[0:100]:

    occur_count = item[1]

    for _ in range(occur_count):

    result_str = result_str + ' ' + item[0]

    return result_str

    def gen_and_save_wordcloud_img(param_str):

    mask = np.array(image.open(relative_path + "style.jpg"))

    wc = wordcloud.WordCloud(width=1430, height=646, background_color="rgba(255, 255, 255, 0)",

    mode="RGBA", font_path=relative_path + 'MSYH.TTC', collocations=False, max_words=100, mask=mask)

    # 调用词云对象的 generate 方法,将文本传入

    wc.generate(param_str)

    # 将生成的词云以图片文件格式,保存在当前目录

    wc.to_file(relative_path + 'output-result.png')

    jieba_words_list = get_jieba_words()

    print('所获得 jieba 分词个数为:', len(jieba_words_list))

    high_frequency_word_list = get_high_frequency_word(jieba_words_list)

    print('所得高频分词前 100 分别是:', high_frequency_word_list[0:100])

    cloud_words_str = get_cloud_words(high_frequency_word_list)

    gen_and_save_wordcloud_img(cloud_words_str)

    print('已成功生成「词云图」并保存在当前目录.')

    以上,便是全部代码实现;倘若真正使用,请参考play-with-python @wordcloud

    。这是因为在生成词云图,支持自定义背景图片、以及宽高、字体、背景色等;由此用到了指定的图片和字体。

    如何使用

    此代码片段基于 python3 运行,如果本机器 python 环境默认为 python3,则可以直接基于 pip、python 来运行命令。笔者本机,一些 Web 开发工具仍依赖于 python2.6 ,也就未将 python3 修改默认环境。

    安装依赖

    pip3 install wordcloud jieba numpy

    一键调用

    python3 gen-wordcloud-img.py

    # OR

    python gen-wordcloud-img.py

    展开全文
  • 前一段时间,有个诉求,想了解下后台,大量反馈数据,其中重点...本文就如何基于 python 对文本做分词、快速生成词云图下探讨性分享。倾城之链:倾心缔造,痴心为你。为何选 pythonPython 是一种易于学习又功能...
  • 本节,我们将对电影短评做文本分析,并利用stylecloud制作词云图。详细步骤如下: 1、调入需要用到的库文件 # import pandas as pd import matplotlib.pyplot as plt import os import jieba from sklearn.feature_...
  • 词云图,也叫文字云,是对文本中出现频率较高的“关键词”予以视觉化的展现,词云可以过滤掉大量的低频的文字信息,这样可以使得用户一眼就能抓住文本的核心。喜欢数据分析的小伙伴对词云图应该更是熟悉,那有...
  • Python生成词云图

    千次阅读 2021-03-01 09:29:15
    词云图,也叫文字云,是对文本中出现频率较高的“关键词”予以视觉化的展现,词云图过滤掉大量的低频低质的文本信息,使得浏览者只要一眼扫过文本就可领略文本的主旨。 基于Python的词云生成类库,很好用,而且功能...
  • 比格专栏这些年比较火的一款词云软件,Wordle是一个用于从文本生成词云图而提供的游戏工具,词云图会更加突出话题并频繁地出现在源文本,它的优点是可以快速的分析文本或网站的词频,并以多种多种风格展示,且支持...
  • 转载自:公主号“数据管道”摘要:词云图,也叫文字云,是对文本中出现频率较高的“关键词”予以视觉化的展现,词云可以过滤掉大量的低频的文字信息,这样可以使得用户一眼就能抓住文本的核心。喜欢数据分析的小...
  • ​经常数据分析的人肯定不会对词云图感到陌生,尤其是近几年来非常流行,不管是发布会、行业报告还是新闻,都喜欢使用词云这种形式,将信息的关键词组成酷炫亮眼的图案,一下子就能抓住众人眼球。 但是词语云图的...
  • 看了嵩天老师的《python编程新思维及实战》的课程后,看词云分析挺有意思的,自己也想试试词云分析,所以就爬取了西游记,聊斋志异,红楼梦,三国演义四部图书,存放为txt文件格式,以供分析。 代码如下: # 导入...
  • 在生成词云图之前,首先要一些准备工作 1.安装结巴分词库 pip install jieba Python中的分词模块有很多,他们的功能也都是大同小异,我们安装的结巴分词 是当前使用的最多的类型。 下面我来简单介绍一下结巴...
  • Python玩转词云图

    千次阅读 2021-03-03 15:03:32
    精确模式:试图将语句最精确的切分,不存在冗余数据,适合做文本分析 全模式:将语句中所有可能是词的词语都切分出来,速度很快,但是存在冗余数据 搜索引擎模式:在精确模式的基础上,对长词再次进行切分 ...
  • 在数据分析领域,词云图已经成为在文本分析中装逼的首选图表,大家热烈地讨论如何在Python上做数据分析、做词云图。 数据分析从来都是Excel的主战场,能够让普通用户使用上的技术才是最有价值的技术,一个人闷骚地...
  • 前言对于文本分析而言,大家都绕不开词云图,而python中制作词云图,又绕不开wordcloud,但我想说的是,你真的会用吗?你可能已经按照网上的教程,出来了一张好看的词云图,但是我想今...
  • 如果你不知道词云是啥的?看下面这个图就知道了。在很多的大型峰会的PPT上,我们都能看到它的身影。...其次从颜值上说,一张漂亮的词云图,能让你的PPT增色不少,也让看的人一目了然。大家都知道现在企业生存不...

空空如也

空空如也

1 2 3 4
收藏数 69
精华内容 27
关键字:

文本分析做词云图