Making Coreference Resolution your bitch with OpenNLP 1.5.0

First thing’s first–what is coreference resolution?

Co-reference means that multiple expressions in a sentence or document refer to the same thing. OpenNLP contains a “linker” that analyzes the tokens of a sentences to identify which chunks of text refer to the same things (e.g., people, organizations, events).

Take, for example, the sentence “John drove to Judy’s house. He made her dinner.” In this example both John and He refer to the same entity (John); and Judy and her refer to the same, different entity (Judy). Don’t expect OpenNLP to get this 100% correct. Even a simple example like this is a difficult problem.

Picking up where I left off once upon a time (and finally wrapping up this series), here are links to the old material:

  • How to use the OpenNLP 1.5.0 Parser
  • Making Coreference Resolution your bitch with OpenNLP 1.5.0 (you’re reading it!)
  • (more…)

    Setting up Eclipse+CDT with Cygwin

    I found this post from Alex’s Tech Blog incredibly helpful when trying to set up my Windows development environment for C programming/debugging (Eclipse + CDT) with Cygwin.

    Setup Cygwin toolchain in Eclipse CDT

    Be warned that compiling with Cygwin means you are also compiling for Cygwin. If you don’t want to rely on Cygwin libraries (i.e., when deploying compiled files to another Windows computer), you’ll want to look at MinGW or MinGW-w64 instead. MinGW, however, is not fully POSIX compliant.

    Delimited Continuations in Scala

    First, the teaser:

    Swarm is a framework allowing the creation of web applications which can scale transparently through a novel portable continuation-based approach. Like Map-Reduce, Swarm follows the maxim “move the computation, not the data”. However Swarm takes the concept much further, allowing it to be applied to almost any computation, not just those that can be broken down into map and reduce operations.

    This is pretty cool. It is accomplished using Scala delimited continuations, which are confusing.

    Delimited Continuations Explained (in Scala)

    I found that link to be pretty helpful, but wanted to jot down my notes because otherwise I’ll have to start from the beginning when I try to understand it again. So this blog post is essentially just a journal entry. Read on if you dare!