Skip to content
gilnoh edited this page Dec 23, 2014 · 8 revisions

An alignment-based EDA in EOP

P1EDA is a new alignment based EDA that has been added on the EXCITEMENT open platform (EOP) in the 3rd year, as a result of common effort to build a new EDA that can work better in multilingual, and multi-knowledge environments. One main goal of the EDA was making future contribution and adding of linguistic knowledge as easy as possible. The EDA is designed to utilize diverse sources of lexical, syntactical and other linguistic levels of information.

For more detailed information about this EDA and its data flow. please consult the following Google Slides.

Currently, the P1EDA supports English, German and Italian. Its decision accuracy tested on RTE3 and industrial datasets are competitive with other EDAs, such as BIUTEE and TIE. Compared to BIUTEE or TIE, P1EDA is much simpler, and much easier to use and extend.

The next two sections describes how you can use P1EDA’s configured instances. One describes how you can use “already configured” instances of P1EDAs that is already provided with EOP. The other describes what to do if you want to extend the EDA with your own code (or resource).

P1EDA usage example

If you want to use EOP just as a library, out-of-the-box entailment decision tool, please follow this examples. The following GitHub repository holds a small Maven project (single file example for each language) that shows how you can use P1EDA. It shows how you can train a new model, how you can ask decision for a new Text-Hypothesis pair, and how you evaluate on a test set.

NOTE: This example (and P1EDA instances in general) requires TreeTagger modules. Check TreeTagger Installation page to install them.

Extending / making a new P1EDA instances

Previous usage example code, only shows how you can use an already existing P1EDA instances. But if you want to add more features, or add new aligners (lexical resources, syntactic resources, etc) — you need to extend and make a new P1EDA instance.

To do so, I would recommend that you take a look at P1EDATemplate code and “sandbox” instances to understand how (new) instances are being written by adding small pieces of codes.

You can find P1EDATemplate (all P1EDA instances are an extension of this) and P1EDA instances in the following locations within EOP.

Pick an instance, try to follow the code, and feel free to change / add sandbox instances. You will see in no time that how the P1EDA works.

Inspector: why entailment / non-entailment for this pair?

Some “inspector” services are provided to check which alignments and which feature values were contributed for the decision given by a P1EDA instance. To see how you can access the inspector service, please consult the following code example.

It explains how you can check all alignments from an Entailment decision of a P1EDA, and also the contributing feature values, too.

Clone this wiki locally