Fuzzy assign bio tags

allow assign the BIO tags with fuzzy match.  this can be useful when having some of partially labelled dataset.
 
Can it be implemented without reduce? :) Also, I think it can produce invalid sequences of tags, i.e. what will happen with `[B-ORG, I-ORG, I-ORG] + [O, B-ADDR, O]`?