![388f8f68b1c051aadfd78b10fcffa7a4.png](https://i-blog.csdnimg.cn/blog_migrate/0e514fc31b0603fc4ca677be8f237545.jpeg)
一,项目简介:
利用networkx官方中的CircularTree案例,修改节点的名称,利用唐代诗人姓名与其诗作中的关键字生成的边,形成以诗人关键字为代表的三层环形树状图。
附上原官方的CircularTree图,以及官方代码的链接。
Circular Tree - NetworkX 2.3 documentationnetworkx.github.io![b50eb2901dd444c4ebd05d557e893c8d.png](https://i-blog.csdnimg.cn/blog_migrate/9208e74653d199bc32625f80526c233a.jpeg)
![929406c3a0277435cc8e60c1249fe063.png](https://i-blog.csdnimg.cn/blog_migrate/493eeeddab17e4610c5c2c44776d5e8a.jpeg)
二,实现方法:
1,从全唐诗文本中提取指定诗人的作品,我找到的版本标题含有中文【】,对于处理标题相当有利。
2,逐字解析指定诗人作品中的字,并按出现频率的高低排序,提取出现频率最高的m个字作为关键字(关键字不宜太多);
3,使用关键字搜索指定诗人的作品,将关键字前后的字+关键字组成的词语提取出来,形成列表,并按出现的频率排序,提取m个;
4,将m个关键字与m*m个词语组合成元组,形成networkx中的边;
5,引入networkx画关系图,使用balanced_tree和graphviz_layout组合形成节点名称+位置的字典,替换节点名称为诗人名