  from spacy._ml import SpacyVectors, create_default_optimizer, zero_init
  
  from thinc.api import chain, flatten_add_lengths, with_getitem, clone
  from thinc.v2v import Model, Softmax, Maxout, Affine, ReLu
  from thinc.t2v import Pooling, sum_pool, mean_pool
  from thinc.t2t import ParametricAttention
  from thinc.misc import Residual
  
  from spacy.tokens import Doc
 
</s> remove         return best_entity, lowest_mse
 </s> add         return best_entity, highest_prob </s> remove         lowest_mse = None
 </s> add         highest_prob = None </s> remove         self.entity_encoder = self._simple_encoder(in_width=300, out_width=96)
        self.article_encoder = self._simple_encoder(in_width=300, out_width=96)
 </s> add         self.entity_encoder = self._simple_encoder(in_width=self.INPUT_DIM, out_width=self.OUTPUT_DIM)
        self.article_encoder = self._simple_encoder(in_width=self.INPUT_DIM, out_width=self.OUTPUT_DIM)
from thinc.neural.util import get_array_module
  from spacy._ml import SpacyVectors, create_default_optimizer, zero_init
  
  from thinc.api import chain, flatten_add_lengths, with_getitem, clone
from thinc.neural.util import get_array_module
  from thinc.v2v import Model, Softmax, Maxout, Affine, ReLu
  from thinc.t2v import Pooling, sum_pool, mean_pool
  from thinc.t2t import ParametricAttention
  from thinc.misc import Residual
  
  from spacy.tokens import Doc
keep keep add keep keep keep keep keep keep
 implement loss function using dot product and prob estimate per candidate cluster 
examples/pipeline/wiki_entity_linking/train_el.py