                              entity_encodings = xp.asarray([c.entity_vector for c in candidates])
                              if len(entity_encodings) != len(prior_probs):
                                  raise RuntimeError(Errors.E147.format(method="predict", msg="vectors not of equal length"))
  
                              mention_encodings = [list(context_encoding) + list(entity_encodings[i])
                                                   + list(prior_probs[i]) + type_vector
                                                   for i in range(len(entity_encodings))]
                              scores = self.model(self.model.ops.asarray(mention_encodings, dtype="float32"))
  
                          # TODO: thresholding
                          best_index = scores.argmax()
                          best_candidate = candidates[best_index]
                          final_kb_ids.append(best_candidate.entity_)
 
</s> remove                         if self.cfg.get("context_weight", 1) > 0:
 </s> add                         # add in similarity from the context
                        if self.cfg.get("incl_context", True): </s> remove             entity_encodings = self.model.ops.asarray(entity_encodings, dtype="float32")
 </s> add         if losses is not None:
            losses[self.name] += loss
        return loss </s> remove             loss, d_scores = self.get_loss(scores=pred, golds=golds, docs=docs)
            mention_gradient = bp_mention(d_scores, sgd=sgd)
 </s> add         entity_encodings = self.model.ops.asarray(entity_encodings, dtype="float32") </s> remove                         # this will set the prior probabilities to 0 (just like in training) if their weight is 0
                        prior_probs = xp.asarray([[c.prior_prob] for c in candidates])
                        prior_probs *= self.cfg.get("prior_weight", 1)
 </s> add                         # this will set all prior probabilities to 0 if they should be excluded from the model
                        prior_probs = xp.asarray([c.prior_prob for c in candidates])
                        if not self.cfg.get("incl_prior", True):
                            prior_probs = xp.asarray([[0.0] for c in candidates])
                             # cosine similarity
                            sims = xp.dot(entity_encodings, context_enc_t) / (norm_1 * norm_2)
                            scores = prior_probs + sims - (prior_probs*sims)
                              entity_encodings = xp.asarray([c.entity_vector for c in candidates])
                              if len(entity_encodings) != len(prior_probs):
                                  raise RuntimeError(Errors.E147.format(method="predict", msg="vectors not of equal length"))
  
                             # cosine similarity
                            sims = xp.dot(entity_encodings, context_enc_t) / (norm_1 * norm_2)
                            scores = prior_probs + sims - (prior_probs*sims)
                             # cosine similarity
                            sims = xp.dot(entity_encodings, context_enc_t) / (norm_1 * norm_2)
                            scores = prior_probs + sims - (prior_probs*sims)
                             # cosine similarity
                            sims = xp.dot(entity_encodings, context_enc_t) / (norm_1 * norm_2)
                            scores = prior_probs + sims - (prior_probs*sims)
                             # cosine similarity
                            sims = xp.dot(entity_encodings, context_enc_t) / (norm_1 * norm_2)
                            scores = prior_probs + sims - (prior_probs*sims)
  
                          # TODO: thresholding
                          best_index = scores.argmax()
                          best_candidate = candidates[best_index]
                          final_kb_ids.append(best_candidate.entity_)
keep keep keep keep replace replace replace replace keep keep keep keep keep
 CLI scripts for entity linking (wikipedia & generic) (#4091)

* document token ent_kb_id

* document span kb_id

* update pipeline documentation

* prior and context weights as bool's instead

* entitylinker api documentation

* drop for both models

* finish entitylinker documentation

* small fixes

* documentation for KB

* candidate documentation

* links to api pages in code

* small fix

* frequency examples as counts for consistency

* consistent documentation about tensors returned by predict

* add entity linking to usage 101

* add entity linking infobox and KB section to 101

* entity-linking in linguistic features

* small typo corrections

* training example and docs for entity_linker

* predefined nlp and kb

* revert back to similarity encodings for simplicity (for now)

* set prior probabilities to 0 when excluded

* code clean up

* bugfix: deleting kb ID from tokens when entities were removed

* refactor train el example to use either model or vocab

* pretrain_kb example for example kb generation

* add to training docs for KB + EL example scripts

* small fixes

* error numbering

* ensure the language of vocab and nlp stay consistent across serialization

* equality with =

* avoid conflict in errors file

* add error 151

* final adjustements to the train scripts - consistency

* update of goldparse documentation

* small corrections

* push commit

* turn kb_creator into CLI script (wip)

* proper parameters for training entity vectors

* wikidata pipeline split up into two executable scripts

* remove context_width

* move wikidata scripts in bin directory, remove old dummy script

* refine KB script with logs and preprocessing options

* small edits

* small improvements to logging of EL CLI script 
spacy/pipeline/pipes.pyx