As someone learning Scala, I wanted to learn the basics of doing builds with SBT, and when I was asked to do a small Java project it seemed a good opportunity to do so. However, as I quickly found, SBT is naturally focused on Scala and so needs a few extra build settings to get a java project…
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:
- Getting started with OpenNLP – Sentence Detection and Tokenizing
- Part-of-Speech (POS) Tagging with OpenNLP 1.5.0
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.
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.
Miško Hevery thinks so: Singletons are Pathological Liars
It actually discusses how Singletons allow APIs to be the liars (they depend on objects that aren’t explicitly advertised as dependencies).
The response is apparently answered in the post Dependency Injection Myth: Reference Passing
What do you think?
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.
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!