Python繪製樹狀結構小套件
13 February 2020
cs
tree
python
Me
├── Classification
│ ├── TextCNN
│ ├── Bayes Classifier
│ ├── SVM
│ └── BERT classifier
├── NER
│ ├── Bi-LSTM
│ ├── Bi-LSTM + CRF
│ └── BERT + Bi-LSTM + CRF
├── Coherence Resolution
│ └── Pointer Generator Network
├── Sentence Similarity
│ ├── Siamese Netowrk
│ ├── BERT + Siamese Network
│ └── Average Word Vector
├── Information Restoration
│ └── Pick and Combine Model(BERT + PGN)
└── Comprehension
└── BERT
Bash
有很好用的tree
指令可以呈現像這樣的樹狀文件結構,不過,如果是其他情況的樹狀結構,也想用類似的方法呈現,該怎麼辦?於是我用Python
寫了一個小套件treeviz
可以做這件事情
上面的例子是一個簡單的例子,第一層表示我曾接觸過的NLP任務
,第二層表示該任務常用的一些方法,讓我們用程式碼來呈現看看這樣的樹狀結構
from treeviz.treeviz import Node
n1 = Node("Classification")
n11 = Node("TextCNN")
n12 = Node("Bayes Classifier")
n13 = Node("SVM")
n14 = Node("BERT classifier")
n1.add_child(n11)
n1.add_child(n12)
n1.add_child(n13)
n1.add_child(n14)
n1.visualize()
可以對讓任一個點當作根節點來畫樹,也可以設定行距、最大字數限制等,以下是將行距設成一行的效果
Me
├── Classification
│ │
│ ├── TextCNN
│ │
│ ├── Bayes Classifier
│ │
│ ├── SVM
│ │
│ └── BERT classifier
│
├── NER
│ │
│ ├── Bi-LSTM
│ │
│ ├── Bi-LSTM + CRF
│ │
│ └── BERT + Bi-LSTM + CRF
│
├── Coherence Resolution
│ │
│ └── Pointer Generator Network
│
├── Sentence Similarity
│ │
│ ├── Siamese Netowrk
│ │
│ ├── BERT + Siamese Network
│ │
│ └── Average Word Vector
│
├── Information Restoration
│ │
│ └── Pick and Combine Model(BERT + PGN)
│
└── Comprehension
│
└── BERT