Pacaya - A Library for Hybrid Graphical Models and Neural Networks
Java
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
src
.gitignore
.travis.yml
LICENSE
README.md
pom.xml
setupenv.sh

README.md

Pacaya Build Status

Summary

Pacaya is a library for joint modeling with graphical models, structured factors, neural networks, and hypergraphs. Structured factors allow us to encode structural constraints such as for dependency parsing, constituency parsing, etc. Neural factors are just factors where the scores are computed by a neural network.

This library has been used extensively for NLP. Check out Pacaya NLP for applications of this library to dependency parsing, relation extraction, semantic role labeling, and more.

A software tutorial is in the works. Check back soon for an update!

Contributions to this library come from Matt Gormley, Meg Mitchell, and Travis Wolfe.

Using the Library

The latest version is deployed on Maven Central:

<dependency>
    <groupId>edu.jhu.pacaya</groupId>
    <artifactId>pacaya</artifactId>
    <version>3.1.3</version>
</dependency>

Setup

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

Build:

  • Compile the code from the command line:

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

    mvn compile assembly:single
    

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...