Skip to content
The Summarizer from the Web IR / NLP Group (WING), hence SWING, is a modular, state-of-the-art automatic extractive text summarization system. It is used as the basis for summarization research at the National University of Singapore. It performs as one of the leading automatic summarization systems in the international TAC competition, getting …
Branch: master
Clone or download
praveenbysani topic xml updates
README file updated with info about TAC resources
sample test topics xml file added to repo
Latest commit 40499bb Nov 10, 2014
Type Name Latest commit message Commit time
Failed to load latest commit information.
data Initial release Mar 26, 2012
lib Initial release Mar 26, 2012
src Initial release Mar 26, 2012
COPYING Initial release Mar 26, 2012
Gemfile Initial release Mar 26, 2012
Gemfile.lock Initial release Mar 26, 2012
README topic xml updates Nov 10, 2014
SWING documentation.doc Initial release Mar 26, 2012
configuration.conf Initial release Mar 26, 2012
sample_topics.xml topic xml updates Nov 10, 2014



0. General Description
1. Contact Information
2. Copyright and Licensing
3. Requirements
4. Configuration and Running
5. Example Usage
6. Evaluation
7. Documentation

0. General Description

SWING (Summarizer from WING) is a multiple-document news summarization system by the Web Information Retrieval/Natural Language Group (WING) at the National University of Singapore.

SWING was our entry to the Summarization Track of the Text Analysis Conference 2011 ( and performed very well with respect to the automatic ROUGE measures.

We hope that releasing this work can help benefit the community. Do let us know if you have any feedback or suggestions for our work! Thank you!

1. Contact Information

For any questions, you can contact:

Praveen Bysani (
Jun-Ping Ng (
Ziheng Lin (
A/P Min-Yen KAN (

We will do our best to answer your queries, and we will be very glad for your feedback. However do understand that we may not be able to get back to everyone of you due to time and manpower constraints. Thank you for your understanding!

2. Copyright and Licensing

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <>.

If you are interested in using SWING commercially or embedding its technology within a product, you should contact the WING.NUS group c/o A/P Min-Yen KAN at the above email for other licensing terms. 

3. Requirements
- Install ruby (version >= 1.8.7)
- Install 'bundle' gem using "gem install bundle"
- Install svm light package, under $SWING_HOME/lib/svm_light directory (available at )
- Install ROUGE package, under $SWING_HOME/lib/ROUGE-1.5.5 directory 

4. Configuration and Running
- Unzip the distributable (e.g. swing.20120326.tgz) to the $SWING_HOME directory
- Run "bundle install" to install the required packages
- Set the necessary parameters in 'configuration.conf' file 
- The default values in the configuration file such as 'documents dir', 'xml file', refer to the resources distributed by NIST as part of TAC shared task.
- Summaries are generated in the $SWING_HOME/data/Summaries directory

5. Example Usage:

Two examples are provided below to illustrate usage of SWING:

1) Case 1: Training a model and generating summaries from the trained model

   i) Use configuration.conf to set the path of training documents, topic description file, model summaries and training model file.
    documents dir=/home/praveen/TAC/data/tac2010/docs/
    xml file=/home/praveen/TAC/data/tac2010/test_topics.xml
    model file=svm.2010.eval.model
    model summaries dir=/home/praveen/TAC/evaluation/tac2010/ROUGE/models/
   ii) Similarly, set the configurations for test environment. Be sure that you are using the same training model file in test environment too.
    documents dir=/home/praveen/TAC/data/tac2011/data/source_documents/
    xml file=/home/praveen/TAC/data/tac2011/docs/GuidedSumm_topics.xml
    model file=svm.2010.eval.model

   iii) Specify the features to be used for sentence scoring
     features = sp, sl, dfs

   iv) Navigate to $SWING_HOME/src. Run model_trainer and then summary_generator modules

2) Case 2: Generating summaries from an existing trained model
    i) Set the configurations in testing environment and take care that the features specified are same as those used in model. 
    ii) run summary_generator

3) Case 2 is useful for evaluating a configuration of features with varying parameters such as redundancy threshold, summary length, scoring granularity etc.

4) Two models are provided in $SWING_HOME/data directory,
    baseline.model = model for TAC 2010 cluster A documents with baseline features ( document frequency, sentence position, sentence length)
    csi.sentence.model = model for TAC 2010 cluster A documents with baseline+CSI features ( document frequency, sentence position, sentence length, categoary relevance score, category KL divergence)

6. Evaluation
- Set the model summary path of test document set 
    model summaries dir=/home/praveen/TAC/evaluation/tac2011/ROUGE/models/

- Run ruby $SWING_HOME/src/eval.rb

7. Documentation

Detailed documentation about the working pipeline and each of the modules is provided in "SWING documentation.doc"
You can’t perform that action at this time.