  
              loss, d_scores = self.get_loss(scores=pred, golds=golds, docs=docs)
              mention_gradient = bp_mention(d_scores, sgd=sgd)
  
              context_gradients = [list(x[0:self.cfg.get("context_width")]) for x in mention_gradient]
              bp_context(self.model.ops.asarray(context_gradients, dtype="float32"), sgd=self.sgd_context)
  
              if losses is not None:
                  losses[self.name] += loss
              return loss
          return 0
 
</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             if losses is not None:
                losses[self.name] += loss
            return loss
        return 0
 </s> add         loss, gradients = get_cossim_loss(yh=scores, y=entity_encodings)
        loss = loss / len(entity_encodings)
        return loss, gradients </s> remove             context_encodings, bp_context = self.model.tok2vec.begin_update(context_docs, drop=drop)
            mention_encodings = [list(context_encodings[i]) + list(entity_encodings[i]) + priors[i] + type_vectors[i]
                                 for i in range(len(entity_encodings))]
            pred, bp_mention = self.model.begin_update(self.model.ops.asarray(mention_encodings, dtype="float32"), drop=drop)
 </s> add     def get_similarity_loss(self, docs, golds, scores):
        entity_encodings = []
        for gold in golds:
            for entity, kb_dict in gold.links.items():
                for kb_id, value in kb_dict.items():
                    # this loss function assumes we're only using positive examples
                    if value:
                        entity_encoding = self.kb.get_vector(kb_id)
                        entity_encodings.append(entity_encoding) </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         predictions, bp_model = self.model.begin_update(np.asarray(vectors), drop=self.DROP)
 </s> add         predictions, bp_model = self.model.begin_update(
            np.asarray(vectors), drop=self.DROP
        )
        if scores.shape != entity_encodings.shape:
            raise RuntimeError(Errors.E147.format(method="get_loss", msg="gold entities do not match up"))
  
              loss, d_scores = self.get_loss(scores=pred, golds=golds, docs=docs)
              mention_gradient = bp_mention(d_scores, sgd=sgd)
  
        if scores.shape != entity_encodings.shape:
            raise RuntimeError(Errors.E147.format(method="get_loss", msg="gold entities do not match up"))
        if scores.shape != entity_encodings.shape:
            raise RuntimeError(Errors.E147.format(method="get_loss", msg="gold entities do not match up"))
  
              if losses is not None:
                  losses[self.name] += loss
              return loss
          return 0
keep keep keep keep 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