stangelid / oposum

Apache License 2.0
100 stars 20 forks source link

OpoSum: Opinion Summarization from User Reviews

This repo holds all code and data from the following papers:

Multiple Instance Learning Networks for Fine-Grained Sentiment Analysis,
Stefanos Angelidis, Mirella Lapata. 2018.
In Transactions of the Association for Computational Linguistics (TACL).
[ pdf ]

Summarizing Opinions: Aspect Extraction Meets Sentiment Prediction and They Are Both Weakly Supervised,
Stefanos Angelidis, Mirella Lapata. 2018.
In EMNLP 2018.
[ pdf ]


_Please find our data in the this google drive url._


To train the neural models (MILNET, MATE), we first need to preprocess the raw text files into easy-to-manipulate .hdf5 binaries.

First, install dependencies for the preprocessing scripts:

pip install numpy --user
pip install nltk --user 
pip install h5py --user

python -c "import nltk; nltk.download('wordnet'); nltk.download('stopwords')"

Preprocessing for MILNET:

# this script will also download the pre-trained GoogleNews
# word2vec embeddings. If you already have these, place the
# file GoogleNews-vectors-negative300.bin in ./w2v

# replace bags_and_cases with any of the domains in ./data/train
./scripts/prep_milnet.sh bags_and_cases

Preprocessing for MATE:

# replace bags_and_cases with any of the domains in ./data/train
./scripts/prep_mate.sh bags_and_cases