在文本分析中,我们需要对其文本进行分词,并对这些分词统计分析,基于 python , jieba 是很受欢迎的一种分词库,而后对分词之间的关系,当然Python Matplotlib 基于networkx画关系网络图也是可以的,但是这里我们将借助 Gephi 来制作,这个软件容易上手,这里我们并对其中个别方法进行解释。
jieba库是Python中一个重要的第三方中文分词函数库,能够将一段中文文本分隔成中文词语序列。
jieba库分词所用的原理就是把分词的内容与分词的中文词库进行对比,通过图结构和动态规划方法找到最大概率的词组。
支持四种分词模式:
四种模式分隔举例:
结果:
由上我们可以发现,我们想要把生态环境、污水处理、有限公司都分开,精确模式和Paddle模式,未分开,全模式和搜索引擎模式虽分开了,但却也含有未分的词组。所以这里我们可以采用自定义词典,使用load_userdict(),不过注意的是需要给自定义词做词频,否则自定义词典不起作用,因为,当自定义词词频低于默认词典的词频时,它还是采用默认分词,所以我们设定词频大于默认词词频时,就会采用自定义词典的词分词。
具体怎么设置自定义词典的词频数,还没有具体的公式,越大当然概率越大,只要超过默认词典即可,但也不宜过大。 默认词典
自定义词典
其中 user_dict 定义如下:
jieba简单介绍及使用介绍到这里,更深层理论及使用可学习这个地址: jieba-github参考
在 图论 中, 集聚系数 (也称 群聚系数 、 集群系数 )是用来描述一个 图 中的 顶点 之间结集成团的程度的系数。具体来说,是一个点的邻接点之间相互连接的程度。例如生活社交网络中,你的朋友之间相互认识的程度 基于复杂网络理论的代谢网络结构研究进展 。有证据表明,在各类反映真实世界的网络结构,特别是 社交网络 结构中,各个结点之间倾向于形成密度相对较高的网群 TRANSITIVITY IN STRUCTURAL MODELS OF SMALL GROUPS 、 Collective dynamics of 'small-world' networks 。也就是说,相对于在两个节点之间随机连接而得到的网络,真实世界网络的集聚系数更高。
假设图中有一部分点是两两相连的,那么可以找出很多个“三角形”,其对应的三点两两相连,称为闭三点组。除此以外还有开三点组,也就是之间连有两条边的三点(缺一条边的三角形)。
Clustering coefficient 的定义有两种; 全局 的和 局部 的。
全局的算法:
局部的算法:
平均系数:
下面即分析其系数求解:
接下来我们就以一个实例来分析聚类系数应用,这里我们用到的工具是 Gephi ,数据也是使用其内置的数据。
在上面分析中,我们提到节点大小,代表自身权重,但是有时由于我们的节点范围导致有些需要辨别的节点不易分析,这时我们可以考虑从颜色入手,即权重从小到大以颜色的变化老判定,当然也可以用同一种颜色通过渐变来判定,这里我是使用了三种颜色变化范围来分析。如下图选择及展示:
由上图,从颜色上我们选择了红黄蓝的依次变化情况,右图我们从节点大小加上颜色更方便判定节点自身的权重了,即自身出现次数越多颜色越靠近蓝色,反之靠近红色。
由上俩个图的变化可察觉出它们的布局分布是一样的,那它是什么原因呢?
如图结构可分析形成聚合的簇团,是相互之间弹簧吸引的强烈的,也就是说关系比较密切些。
在数据中,我们关系图是由节点和边组成,上面都简要分析了节点的处理,那么边怎么分析呢?其实边由图中是可以以线的粗细来判断俩个词之间的关系,即出现的次数。如下图:
由于次数范围太广,我们把它们转化成0--1之间的范围,以最高权重为1,其它数据以此为基准做转化。
即为所转化后的占比值, 为每个权重值, 为最大权重值
jieba-github参考
Clustering coefficient
ForceAtlas2, A Continuous Graph Layout Algorithm for Handy Network Visualization