Turn min_count into a optional cmd argument

min_count is the minimum no. of times a word has to appear in the training data
before it's accepted into the vocabulary. Previously this was a constant in the
training script.
Train doc2vec model with more than one epoch

Turns out that you can run model.train() several times.

model = gensim.models.Doc2Vec(...)
for i in range(3):
    model.train(...)
Move argument parser to a utility function

We were have repeated code for parsing command line arguments. We now define a
function that returns a parser that parses the commonly used arguments for
word2vec and doc2vec use.
Assert cmd line arguments before proceeding

Since we now use an external function to parse arguments. We need some
defensive methods to check that the parser is parsing the arguments we need.
Print other performance metrics
Write function to download Biomed XML on the fly

Biomed is a database of biomedical articles. We want to crawl large amounts of
these unlabeled articles to train our doc2vec model and see if performance
improves over just having our Bioscope articles.
Find out how to grab sentences from Biomed papers

Findings:
* Biomed XML papers are encoded in UTF-16
* You need to strip out newline characters from the article text before feeding
it into BeautifulSoup for parsing.
Write functions to download Biomed articles

2 functions written:
* One to download directly as a Python string
* Another is to download and save to disk
Fix: Biomed download returns full article

Previously the function only returned the first chunk that we downloaded. Now
it correctly returns the full Biomed article
Can download lots of unlabeled data from Biomed
Fix: close FTP connection to Biomed properly
Evaluate word2vec model with analogies from Google

Google provided a testset of analogies e.g cat is to milk what dog is to bone.
With this we can quickly evaluate how well our model is performing.
Train word2vec with unlabeled data (Biomedcentral)
Make Word2Vec scorer a class
Pull Word2VecScorer to its own file
Option for scorer to return absolute performance

Previous it returned a percentage of the comparisons that the model made
correctly. Now we have the option to return the absolute number of comparisons
made correctly.
Evaluate performance of word2vec during training
Logistic regression as classifier after word2vec

Previously we used decision trees as the classifier after learning a sentence's
fixed-length feature vector. Now we try logistic regression. Performance is
significantly better.