大数据可视化(六)文本数据可视化

 文本数据可视化

在于利用可视化技术刻画文本和文档,将其中的信息直观的呈现。

 文本数据在大数据中的应用及提取

 文本数据在大数据中的应用

对文本的理解需求分为三级:词汇级、语法级和语义级。
词汇级使用各类分词算法,而语法级使用一些句法分析算法,语义级则使用主题抽取算法。
文本数据类别分为: 单文本, 文档集合, 时序文本。

文本可视化的基本流程:原始文本-->文本信息挖掘(文本预处理、文本特征的抽取和度量)-->视图绘制(图元设计、图元布局)-->人机交互


使用网络爬虫提取文本数据

URL(统一资源定位符)格式: protocol://hostname[pr/]pat/;parametersJ[?query]#fragment
第一部分是协议(protocol),例如,百度使用的就是HTTPS;
第二部分hostamef:port],主机名(还有端口号为可选参数,端口号一般默认为80),例,百度的主机名就是 www.baidu.com, 这个就是服务器的地址;
第三部分path是主机资源的具体地址,如目录和文件名等。

Python爬虫架构主要有调度器、URL管理器、网页下载器、网页解析器、数据库。
(1)调度器:相当于计算机CPU,主要负责URL管理器、网页下载器、网页解析器之间的协调工作。
(2)URL管理器:管理待爬取的URL地址和已爬取的URL地址,防止重复抓取URL和循环抓取URL。
(3)网页下载器:通过传入一个URL地址来下载网页内容,Python支持网页下载的库有urllilb模块和requests模块等。
(4)网页解折器。将一个网页字符串进行解析。网页解析器有正则表达式、html.parser(Python自带的)、beautifulsoup(第三方插件)、lxml(第三方插件,可以解析xml和HTML。
(5)数据库:将从网页中收集的有价值的数据存入数据库。

 文本信息分析

 向量空间模型

  1. 词袋模型
    指在信息检索中,将某一文本仅看作是一个词集合,而不考虑其语法、词序等信息。文本中每个词相互独立,不依赖于其他词的出现与否。
    词袋模型是向量空间模型构造文本向量的常用方法之一,常用来提取词汇级文本信息。
    词袋模型就是忽略词序、语法和语句,过滤掉对文本内容影响较弱的词(停用词),将文本看作一系列关键词汇的集合所形成的向量,每个词汇表示一个维度,维度的值就是该词汇在文档中出现的频率。
  2. TF-IDF
    TF-IDF是一种用于信息检索与数据挖掘的常用加权技术。TF的含义是词频,IDF的含义是逆文本频率指数。
    TF-IDF的主要思想是:字词在某个文本的重要性与它在这个文本中出现的次数正相关,但同时也会随着它在文档集合中出现的频率增加而下降。

主题抽取

主题模型是对文字中隐含主题的一种建模方法,它从语义级别描述文档集中的各个文本信息。
文本主题的抽取算法大致可分为两类:基于贝叶斯的概率模型和基于矩阵分解的非概率模型。

 文本数据可视化

文本数据可视化可以分为文本内容的可视化,文本关系的可视化以及文本多特征信息的可视化。

文本内容可视化

  • 文本内容可视化是对文本内的关键信息分析后的展示

1关键词可视化
(1) 标签云:
标签云是一种最常见的,简单的关键词可视化方法,主要可分为如下两步:

  1. 统计文本中词语的出现频率,提取出现频率较高的关键词。
  2. 按照一定的顺序和规律将这些关键词展示出来。

(2) 文档散:
文档散使用词汇库中的结构关系来布局关键词,同时使用词语关系网中具有上下语义关系的词语来布局关键词,从而揭示文本中的内容。

  1. 将一个单词作为中心点,中心点的词汇可以由用户指定,选择不同的中心点词汇呈现出的可视化结果将大不相同。
  2. 将整个文章内的词语呈现在一个放射式层次圆环中,外层的词内层词的下义词。这样就可以直观的展示文档的中心词在词语关系网中是如何被呈现的。

 

2时序文本可视化
(1) 主题河流:
主题河流主要用于反映文本主题强弱变化的过程。
局限性:只能在每个时间刻度上各主题简单概括成一个数值,不能描绘主题的特性
经典的主题河流模型包括以下两个属性:

  • 颜色:表示主题的类型,一个主题用一个单一颜色的涌流表示。
  • 宽度:表示主题的数量(或强度),涌流的状态随着主题的变化,可能扩展、收缩或者保持不变。

(2) 文本流:
文本流是不仅可以表达主题的变化,还能随着时间的推移展示各个主题之间分裂与合并的状态。
(3) 故事流:
故事流常用来表示电影或者小说里的剧情线或者时间线。

3文本分布可视化
文本弧可视化技术不仅可以展现词频,还可以展示词的分布情况。
文本湖的特性如下:

  1.  用一条螺旋线表示一篇文章,螺旋线的首尾对应着文章的首尾,文章的词语有序的分布在螺旋线上。
  2.  若词语在整篇文章中出现的比较频繁,则靠近画布的中心区域分布。
  3.  若词语只是在局部出现的比较频繁,则靠近螺旋线分布。
  4.  字体的大小和颜色深度代表着词语的出现频率。

 文本关系可视化

  • 文本关系的可视化既可以对单个文本进行内部的关系展示,也可以对多个文本进行文本之间的关系展示
  1. 基于图的文本关系可视化:
    (1) 词语树:
    词语树可以直观地呈现出一个词语和其前后的词语,用户可自定义感兴趣的词语作为中心节点,中心节点向前扩展,就是文本中处于该词与前面的词语,中心节点向后扩展,就是文本中处于该词语后面的词语。字号大小代表了词语在文本中出现的频率。
    (2) 短语网络:
    短语网络包括以下两种属性:
    节点:代表一个词语或短语。
    带箭头的连线:表示节点与节点与节点之间的关系,需要用户定义
  2. 文档间数据可视化
    (1) 星系视图:
    星系视图可用于表征多个文档之间的相似性。
    (2) 文档集抽样投影:
     

文本多特征信息可视化

平行标签云将标签云在水平方向上基于多个不同的特征进行显示,每一个特征对应着一列标签云,列与列之间的特征都不一样。颜色越深,字号越大,说明关键词频率越高

关系图:原地址

#来源pyecharts官方文档
import json

from pyecharts import options as opts
from pyecharts.charts import Graph

with open("weibo.json", "r", encoding="utf-8") as f:
    j = json.load(f)
    nodes, links, categories, cont, mid, userl = j
c = (
    Graph()
    .add(
        "",
        nodes,
        links,
        categories,
        repulsion=50,
        linestyle_opts=opts.LineStyleOpts(curve=0.2),
        label_opts=opts.LabelOpts(is_show=False),
    )
    .set_global_opts(
        legend_opts=opts.LegendOpts(is_show=False),
        title_opts=opts.TitleOpts(title="Graph-微博转发关系图"),
    )
    .render("graph_weibo.html")
)

 

表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
相关推荐
©️2020 CSDN 皮肤主题: 创作都市 设计师:CSDN官方博客 返回首页