可视化,字字网络

图片发自简书App

现有方法是用Matlab生成邻接矩阵然后导入到Gephi画图,里面有手工成分,另外节点布局只能依赖Gephi的自带函数。我要做的就是实现完全自定义,和完全自动化。

也就是说,完全不依靠可视化软件,模型自己建,布局自己画......

本来打算今天写具体的实现过程和技术细节,但一直没抽出时间,所以决定在公交上写一下完成的工作还有未完成的想法。

首先是文本处理,编码转换,根据标点断句,字符分割,没什么好说的。

接下来是模型建立,使用Networkx储存字符节点,根据字符的出现频率进行节点排序;节点之间建立加权有向边。

然后是布局函数,这项工作耗时最多。Networkx画图极其简陋,箭头丑,节点和边的颜色大小只能为单一值,图像布局杂乱,所以所有画图过程以及布局函数全部手工写,将Networkx的内部封装方法彻底改造了一番。布局设计是根据节点重要性画n个同心圆,首先将所有节点分组,组长差为6(圆周对半径求导),然后对每组节点根据极坐标转换赋xy值,最后有向边也根据节点xy值来赋值。

接下来画图,节点大小、文字大小和边的宽度、透明度均根据各自的权重赋值,也是要手动去改原来的单一值,改为数组。根据布局画图并保存或显示。统计出入度。

最后是用Django实现web交互,也挺麻烦。

现在算是完成了主要工作,耗时两个下午加一个晚上。还有一些细节需要抠,文本提交接下来改为文档提交,将关联度较大的字列出,应该导出个邻接矩阵方便以后进一步的工作。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1 序 2016年6月25日夜,帝都,天下着大雨,拖着行李箱和同学在校门口照了最后一张合照,搬离寝室打车去了提前租...
    RichardJieChen阅读 5,243评论 0 12
  • 前言 其实读完斯坦福的这本《互联网大规模数据挖掘》,让我感觉到,什么是人工智能?人工智能就是更高层次的数据挖掘。机...
    我偏笑_NSNirvana阅读 12,798评论 1 23
  • 这几天看了吴晓波的《腾讯传》。这个就在我身上发生的历史,忽然使我想起了,我的青春,想起了我曾经的,曾经…… ...
    苍梧笑笑生阅读 215评论 0 1
  • 为了能很好的认识“上下文”是什么东西。我们来看几个例子。 小明告诉小红:“你放心吧,他答应你的条件了。” 在读者的...
    源大帝阅读 258评论 0 0
  • 2016年12月23日 郑州火车站 7℃ 有风 晚上8:00多和老公吃完饭,和小伙伴相约在火车站集合,9:00多出...
    MS半玉阅读 606评论 0 0