Implementation of Self-Governing Neural Networks for speech act classification
Implementation of the SGNN paper for speech act classification.
This repository is inspired by Guillaume Chevalier's implementation, as well as his discussion with Sava Kalbachou. This version implements some things differently from Guillaume's code, in an attempt to resemble the paper more, and extends beyond the projection layer all the way to a fully trainable network.
The network is trained to classify the SwDA corpus utterances according to their speech act. The corpus was was pre-processed using Cristopher Pott's project related to it. To follow Lee & Dernoncourt SwDA data split, as in the SGNN paper, we added adequate functionality in our branch of that repo. The pre-processed data is included in the data
folder for repeateability.
The original SGNN paper reports a SwDA accuracy of 83.1. With this implementation, I have only managed to achieve a maximum accuracy of 71.3; if you achieve a better score, please share your settings in an issue :)
-
Install all dependencies; use
environment.yml
file as reference. -
Open the
00_core.ipynb
notebook and modifyREPO_PATH = "<PATH-TO-SGNN-REPO>"
in the last cell. Modify any parameters you want to tweak from the network, then run the whole notebook. -
Alternatively, you can use
core.py
from the terminal or a Python IDE.