Evaluate word2vec model with similarity metric

For every run-running-spin-spinning relationship in our set of relationships,
we measure the similarity between (x_run - x_running) and (x_spin - x_spinning)
where x is the word vector of the subscript. We take the mean of all these
similarities as a one number metric for how our relationship is performing.
Merge branch 'master' into doc2vec
Move similarity scorer to Word2VecScorer

The scoring function was prototyped in a script. Now we move it to its rightful
place in the Word2VecScorer class.
Tokenize Biomed p-tag contents into sentences

Previously we just assumed that the content of each p-tag was a single sentence
and fed that into the word2vec trainer, but in fact each p-tag can contain
several sentences, hence requires further tokenizing. We fix that here.
Move sentenizing functionality to utils

This functionality takes a textblock (of possiblity multiple sentences) and
returns a list of sentences.
Option to use local disk's Biomed articles

Previously we downloaded articles each time we ran the script. If you have
the articles in your computer, might as well use them, right?
Seed RNG to make shuffle same for every run
Write decorator to make generator func re-useable
Train Biomed word2vec model using generators

Generators yield sentences one-by-one as opposed to lists which store all the
sentences in memory. As such generators are more suitable when training with
large amounts of data. This commit is in the step towards using more generators
but at the final step, sentences are still stored all in memory. More work is
required.
Train word2vec without pre-loading sentences

Managed to write generators such that we don't pre-load anything before
training. The loading occurs during training, i.e. load a sentence, train a
sentence, etc.
Print more performance metrics after testing
Print performance during classifier training
Merge branch 'master' of https://github.com/boonjiashen/speculative-language-recognizer