good progress on sqlite_example, updates to blocking and dedupe based on sqlite needs
changed names of saved settings files to match example name
sqlite_example runs.... slowly
refactored recordDistances and removed recordDistancesII
cleanup and refactoring of addTrainingData and recordDistances
profiling and improving performance of calculateDistance and buildRecordDistances
fixed scorePairs to handle field order
more optimizing of record distance calculations
optimized buildRecordDistances and removed calculateDistance to reduce overhead
commented out interaction-terms from canonical example
optimized blocking
+ sampling using multiple small buckets
+ passing record_distances back from active learning to save an expensive call
+ changed predicateCoverage so empty predicates don't match
working on blocking
fast semi-supervised distinct duplicates, closes #55
semi-supervised duplicates now samples without replacement
speed optimizations
started on TF-IDF blocking predicate
some minor performance tweaks for blocking
implemented TF-IDF predicate
+ added cosineSimilarity, createCanopies and coverage functions
+ added basic test cases (not in testing framework)
+ wired up TF-IDF to trainBlocking in blocking.py
+ BUG: TF-IDF not covering blocked data the way we expect
+ TODO: investigate TF-IDF blocking logic
got learn blocking working with tfidf
cleaned up coverage function