Skip to content

Chainer implementation of "Yao et al. 2018. Graph Convolutional Networks for Text Classification. ArXiv."

License

Notifications You must be signed in to change notification settings

koreyou/text-gcn-chainer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Text GCN on Chainer

This project implements Yao et al. 2018. Graph Convolutional Networks for Text Classification. ArXiv. in Chainer. The project includes codes to reproduce the text classification experiment on the 20 news groups dataset. This is NOT an official implementation by the authors.

This project adopts hyperparamters specified in the original paper. I have greatly simplified text preprocessing to just splitting words with white spaces.

I referenced @takyamamoto's implementation of GCN to implement this project.

How to Run

Prerequisite

I have only tested the code on Python 3.6.4. Install dependent library by running:

pip install -r requirements.txt

You need to install cupy to enable GPU.

Running training and evaluation

Run:

python train.py

Refer to python train.py -h for the options. Note that you can enable early stopping by --early-stopping flag, but the overhead for saving intermediate models is quite large.

Reproducing the paper

Running this project with the original adjacency matrix normalization method (python train.py -g 0 --normalization gcn) yields 0.8578 accuracy in the 20 News groups dataset. The test accuracy was 0.8634 in the original paper. I was not able to figure out the reason for slightly inferior performance.

Running python train.py -g 0 --normalization pygcn which uses normalization method proposed in GCN authors' PyTorch implementation yields much better result of 0.8660 (comparable with the original paper).

About

Chainer implementation of "Yao et al. 2018. Graph Convolutional Networks for Text Classification. ArXiv."

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages