一,项目简介:
利用networkx官方中的CircularTree案例,修改节点的名称,利用唐代诗人姓名与其诗作中的关键字生成的边,形成以诗人关键字为代表的三层环形树状图。
附上原官方的CircularTree图,以及官方代码的链接。
https://networkx.github.io/documentation/stable/auto_examples/drawing/plot_circular_tree.html#sphx-glr-auto-examples-drawing-plot-circular-tree-py
二,实现方法:
1,从全唐诗文本中提取指定诗人的作品,我找到的版本标题含有中文【】,对于处理标题相当有利。
2,逐字解析指定诗人作品中的字,并按出现频率的高低排序,提取出现频率最高的m个字作为关键字(关键字不宜太多);
3,使用关键字搜索指定诗人的作品,将关键字前后的字+关键字组成的词语提取出来,形成列表,并按出现的频率排序,提取m个;
4,将m个关键字与m*m个词语组合成元组,形成networkx中的边;
5,引入networkx画关系图,使用balanced_tree和graphviz_layout组合形成节点名称+位置的字典,替换节点名称为诗人名称+关键字+词语的节点列表;
6,生成圆形树状图。
三,使用到的内置库和第三方库
1,collections中的Counter,用来统计列表中字和词语的个数,生成一个由字词语为键,出现的频率为值的字典;
2,re库,统计关键字在文本
python生成环形树状图-networkx
最新推荐文章于 2024-09-20 18:10:16 发布