基于 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 jiebaseg_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 的安装
  • 快速安装(使用pip指令):

    pip install wordcloud

  • 使用anaconda安装:

    conda install -c https://conda.anaconda.org/amueller wordcloud

  • 手动安装-软件包获取:

    wget https://github.com/amueller/word_cloud/archive/master.zip
    unzip master.zip
    rm master.zip
    cd word_cloud-master

  • 软件包安装:

    python setup.py install

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_textwordList = 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)                          #将关键词通过空格连接为字符串stagsf2=open(u"stags.txt","w+")f2.write(stags)f2.write("\n")f2.close()                      #将获得的关键词存储到stags.txt文件中(供调试查看)outstr = ''                                         for word in wordList:                             #遍历全文分词结果wordlistif 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个,最大字体尺寸60word_cloud = cloud.generate(outstr)                  # 产生词云数据 word_cloudprint ("词云完成...")word_cloud.to_file("w_cloud.jpg")                    #词云保存为图片w_cloud.jpgprint ("词云保存成功...")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=utf8import 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 pathdef seg_sentence(file_name):  with codecs.open(file_name,encoding='utf-8') as f:     #打开文件original_text = f.read()                   #读取文件内容为字符串original_textwordList = 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)                         #将关键词通过空格连接为字符串stagsf2=open(u"stags.txt","w+")f2.write(stags)f2.write("\n")f2.close()                      #将获得的关键词存储到stags.txt文件中(供调试查看)outstr = ''                                         for word in wordList:                               #遍历全文分词结果wordlistif 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个,最大字体尺寸60word_cloud = cloud.generate(outstr)                # 产生词云数据 word_cloudprint ("词云完成...")word_cloud.to_file("w_cloud.jpg")                                           #词云保存为图片w_cloud.jpgprint ("词云保存成功...")return word_cloudfile_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模块是为了显示词云图

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

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

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

  1. BeautifulSoup爬取国家政策网目标话题的10篇文章,以及基于jieba的关键字生成

    BeautifulSoup爬取国家政策网目标话题的10篇文章,以及基于jieba的关键字生成 引用链接1 引用链接2 一:基本步骤 1.首先,写出需要访问的url,涉及到将中文转化为utf8编码,再转 ...

  2. NLP之WordCloud:基于jieba+matplotlib库对一段文本生成词云图~~情人节最好的礼物(给你一张过去的词云图,看看那时我们的爱情)

    NLP之WordCloud:基于jieba+matplotlib库对一段文本生成词云图~~情人节最好的礼物(给你一张过去的词云图,看看那时我们的爱情) 目录 输出词云图结果 输出文本统计 设计思路 实 ...

  3. 基于python-django的neo4j人民的名义关系图谱查询系统

    简介 这个系统主要是基于neo4j的关系图谱联系使用 里面的关系是在网上找的数据文件,主要是人民的名义对应关系 首先是吧数据对应的节点和关系写入的neo4j里面 然后使用django编写了一个web服 ...

  4. 人民的名义》小说文本分析

    你只要不干坏事,就没人能坏你的事. --<人民的名义>经典语录 <人民的名义>,听说很好看.一向不喜欢看电视的我还是想了解一下这部剧,可是又不想花时间去看剧,怎么办呢?我就考虑 ...

  5. 《人民的名义》---简单的文本分析

    我们都知道进行自然语言处理的第一步就是分词,下面使用jieba模块对最近比较热的电视剧<人民的名义>进行分词,并对它进行一些简单的文本分析. 一.jieba模块中常用的方法说明(githu ...

  6. 【机器学习PAI实践五】机器学习眼中的《人民的名义》

    一.背景 最近热播的反腐神剧"人民的名义"掀起来一波社会舆论的高潮,这部电视剧之所能得到广泛的关注,除了老戏骨们精湛的演技,整部剧出色的剧本也起到了关键的作用.笔者在平日追剧之余, ...

  7. 【视频课】生成对抗网络经典任务,详解基于GAN的图像生成算法!

    前言 欢迎大家关注有三AI的视频课程系列,我们的视频课程系列共分为5层境界,内容和学习路线图如下: 第1层:掌握学习算法必要的预备知识,包括Python编程,深度学习基础,数据使用,框架使用. 第2层 ...

  8. python jieba 文本相似度_文本相似度分析(基于jieba和gensim)

    ##基础概念 本文在进行文本相似度分析过程分为以下几个部分进行, 文本分词 语料库制作 算法训练 结果预测 分析过程主要用两个包来实现jieba,gensim jieba:主要实现分词过程 gensi ...

  9. python jieba库分词_Python基于jieba库进行简单分词及词云功能实现方法

    本文实例讲述了Python基于jieba库进行简单分词及词云功能实现方法.分享给大家供大家参考,具体如下: 目标: 1.导入一个文本文件 2.使用jieba对文本进行分词 3.使用wordcloud包 ...

最新文章

  1. 你真的理解“吃亏是福”么?
  2. JavaScript使用localStorage缓存Js和css文件
  3. 【Node核心模块HTTP】
  4. 设计模式C++实现(12)——备忘录模式
  5. 西数加密linux,Symantec PGP Desktop pgpwded.sys内核驱动任意代码执行漏洞
  6. 1到30图片大全顺序_终于解决了!自媒体作者,如何给 Word 中的图片批量编号?...
  7. 找准切入点,调试看源码,事半功倍
  8. 华为服务器清除系统日志,清空服务器日志
  9. Android开发杂谈更新中
  10. 零售业有效利用物联网的几种方法
  11. java可以看懂php代码吗_可以自己给自己理发吗?看懂这六点细节就能给自己理发了...
  12. iOS中的所有字体和UILabel
  13. 将url编码数据转换为简单字符串
  14. uni-app web-view跳转自定义html
  15. 一篇关于编程的文章,启发你的编程知识
  16. 《三国演义》之二 十常侍乱政
  17. SLMi334兼容TLP5214 一款兼容光耦带保护功能单通道隔离IGBT栅极驱动器
  18. Typora+MarkDown
  19. html标签360doc,360doc个人图书馆
  20. Echart图表在项目中如何使用?(前后端详细技术讲解)

热门文章

  1. 直连路由、静态路由、动态路由
  2. 使用Vue3自定义指令,让你的应用更具交互性
  3. 抖音小游戏推广爆火,背后有什么特点?想进圈应注意哪些方面?
  4. can总线rollingcounter_请问什么是汽车CAN通信中报文中信号checksum和rolling counter,具体有什么用?为什么要加在报文中。...
  5. sql 2005 用户 sa 登录失败一系列问题
  6. py常用模块ossys
  7. 【马云警醒你】 35岁你还穷,活该你穷!读完,就被骂醒了!
  8. 解决Python安装第三方库太慢的问题
  9. 【2019CVPR学习】翻译-Graph Attention Convolution for Point Cloud Semantic Segmentation
  10. ActiveMQ 消息中间件