it's a little slow :-( i'd guess the `score` function is the slowest part. can maybe get scipy to do a dot-product for us?