/pacaya-nlp

NLP Tools built with Pacaya

Primary LanguageJavaApache License 2.0Apache-2.0

Pacaya NLP Build Status

Summary

Pacaya NLP is a suite of Natural Language Processing (NLP) tools built using Pacaya, a library for hybrid graphical models and neural networks.

Using the Library

The latest version is deployed on Maven Central:

<dependency>
    <groupId>edu.jhu.pacaya-nlp</groupId>
    <artifactId>pacaya-nlp</artifactId>
    <version>3.1.5</version>
</dependency>

Development

Dependencies

This project has several dependencies all of which are available on Maven Central. Among others we make extensive use:

  • Prim: a Java primitives library
  • Optimize: a numerical optimization library
  • Pacaya: modeling library for hybrids of graphical models and neural networks

Installing dependencies locally

  1. Checkout and install Prim locally

    git clone https://github.com/mgormley/prim.git
    cd prim
    mvn install -DskipTests
  2. Checkout and install Optimize locally

    git clone https://github.com/minyans/optimize.git
    cd optimize
    mvn install -DskipTests
  3. Checkout and install Pacaya locally

    git clone https://github.com/mgormley/pacaya.git
    cd pacaya
    mvn install -DskipTests

Build:

  • Compile the code from the command line:

      mvn compile
    
  • To build a single jar with all the dependencies included:

      mvn compile assembly:single
    
  • To set the classpath using maven:

      source setupenv.sh
    

Eclipse setup:

  • Create local versions of the .project and .classpath files for Eclipse:

      mvn eclipse:eclipse
    
  • Add M2_REPO environment variable to Eclipse. http://maven.apache.org/guides/mini/guide-ide-eclipse.html Open the Preferences and navigate to 'Java --> Build Path --> Classpath Variables'. Add a new classpath variable M2_REPO with the path to your local repository (e.g. ~/.m2/repository).

  • To make the project Git aware, right click on the project and select Team -> Git...

Citations

This library includes code for the papers below. Please cite as appropriate.

@inproceedings{yu_embedding_2016,
    author = {Adam Teichert and Adam Poliak and Benjamin Van Durme and Matthew R. Gormley},
    title = {Semantic Proto-Role Labeling},
    booktitle = {Proceedings of {AAAI} Conference on Artificial Intelligence},
    year = {2017},
    url = {http://aaai.org/ocs/index.php/AAAI/AAAI17/paper/view/14997}
}
@article{gormley_approximation-aware_2015,
    author = {Matthew R. Gormley and Mark Dredze and Jason Eisner},
    title = {Approximation-aware Dependency Parsing by Belief Propagation},
    journal = {Transactions of the Association for Computational Linguistics (TACL)},
    year = {2015}
}
@inproceedings{gormley_improved_2015,
    author = {Matthew R. Gormley and Mo Yu and Mark Dredze},
    title = {Improved Relation Extraction with Feature-rich Compositional Embedding Model},
    booktitle = {Proceedings of {EMNLP}},
    year = {2015},
}
@inproceedings{gormley_low-resource_2014,
    author = {Gormley, Matthew R. and Mitchell, Margaret and {Van Durme}, Benjamin and Dredze, Mark},
    title = {Low-Resource Semantic Role Labeling},
    booktitle = {Proceedings of {ACL}},
    year = {2014},
}