SwiRL: The Semantic Role Labeler


SwiRL is a Semantic Role Labeling (SRL) system for English constructed on top of full syntactic analysis of text. The syntactic analysis is performed using Eugene Charniak's parser (included in this package). SwiRL trains one classifier for each argument label using a rich set of syntactic and semantic features. The classifiers are learned using one-vs-all AdaBoost classifiers.

Why should you use this software? There are at least 6 reasons:

  1. If you need to perform syntactico-semantico analysis of natural language text, SwiRL provides (almost) everything needed. The only extra component you need is a Named Entity Recognizer (if you do not have one, you can try Bios).

  2. To my knowledge, this is the first free (GPL) SRL system.

  3. It has state-of-the-art performance (as of 2007...): currently its F1 on the WSJ corpus is 77+, and on the Brown corpus it is 66+ points. SwiRL ranks fifth among the systems that participated at the CoNLL shared task evaluation, but all the systems that scored higher were actually combinations of several individual models.

  4. SwiRL is fairly robust, it can work with case-sensitive and case-insensitive text.

  5. You can retrain it, if you want to add domain-specific knowledge.

  6. It has an easy to use API, so you can easily integrate it with your software.

  7. Note: The download link in the header points to the original source I developed. However, this was developed using an older gcc and might not compile on your current machine. Anh Tran has adjusted the original source to make sure it compiles with modern gcc versions. His fork is available here: https://github.com/trananh/SwiRL-NLP