Hobby-hacking Eric



A little bit work-related. In a mail that I'm about to send out to the Corpora mailing list:
We're looking for implementations of scoring algorithms for coference resolution. Specifically, the algorithms we are interested in are MUC-6 (Vilain et al., 1995), B-CUBED (Bagga and Baldwin, 1998), and CEAF (Luo, 2005).

Our hope is to compare a few pieces of coference resolution software. Does anybody have preferably standalone software that we could use to calculate these scores?

I am sorely tempted to just sit down for a few moments and create these (scoring) tools myself.

It'd be a small Haskell package called 'lingscore', probably a library and an executable. I'd stick the scorers under the 'NLP.Evaluation' package. The library would be dedicated to NLP evaluation algorithms. No actual NLP, just the scoring algorithms for evaluation campaigns. Should not be difficult, and would very slightly advance the agenda of making Haskell a viable platform for NLP-hacking.

I quite like the idea of using Haskell for the stupid reason that type signatures make it a bit clearer what kind of inputs we're expecting and what kind of outputs we can produce.


wren said...

I say go for it. It'd put me one step closer to convincing my advisors/employers that Haskell is viable for NLP :)

It looks like the next version of Dyna may well be implemented in Haskell (if me and my coimplementor have our way). Being its own language and being more general than NLP, it's an indirect link, but every bit helps.

kowey said...

Well, it looks like PyCoLi pretty much does what we want (you have to dig out the evaluation.py module).

But if anybody wants to do this, or if this sort of thing comes up again, think about implementing a lingscore package and putting it up on hackage. That NLP section needs to grow.

Another thing I'd like to see is somebody releasing a package that uses 2 or more of the modules that are already there.