  
  def build_nel_encoder(embed_width, hidden_width, ner_types, **cfg):
      if "entity_width" not in cfg:
          raise ValueError(Errors.E144.format(param="entity_width"))
      if "context_width" not in cfg:
          raise ValueError(Errors.E144.format(param="context_width"))
  
      conv_depth = cfg.get("conv_depth", 2)
      cnn_maxout_pieces = cfg.get("cnn_maxout_pieces", 3)
      pretrained_vectors = cfg.get("pretrained_vectors", None)
      context_width = cfg.get("context_width")
 
</s> remove     context_width = cfg.get("context_width")
    entity_width = cfg.get("entity_width")
 </s> add     context_width = cfg.get("entity_width") </s> remove                 for kb_id, value in kb_dict.items():
                    entity_encoding = self.kb.get_vector(kb_id)
                    prior_prob = self.kb.get_prior_prob(kb_id, mention)

                    gold_ent = ents_by_offset["{}_{}".format(start, end)]
                    if gold_ent is None:
                        raise RuntimeError(Errors.E147.format(method="update", msg="gold entity not found"))
 </s> add  </s> remove                     type_vector = [0 for i in range(len(type_to_int))]
                    if len(type_to_int) > 0:
                        type_vector[type_to_int[gold_ent.label_]] = 1

                    # store data
                    entity_encodings.append(entity_encoding)
                    context_docs.append(doc)
                    type_vectors.append(type_vector)

                    if self.cfg.get("prior_weight", 1) > 0:
                        priors.append([prior_prob])
                    else:
                        priors.append([0])
 </s> add                 for kb_id, value in kb_dict.items():
                    # Currently only training on the positive instances
                    if value:
                        context_docs.append(doc) </s> remove             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)
 </s> add         if scores.shape != entity_encodings.shape:
            raise RuntimeError(Errors.E147.format(method="get_loss", msg="gold entities do not match up"))
  
  def build_nel_encoder(embed_width, hidden_width, ner_types, **cfg):
      if "entity_width" not in cfg:
          raise ValueError(Errors.E144.format(param="entity_width"))


  
      conv_depth = cfg.get("conv_depth", 2)
      cnn_maxout_pieces = cfg.get("cnn_maxout_pieces", 3)
      pretrained_vectors = cfg.get("pretrained_vectors", None)
      context_width = cfg.get("context_width")
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/_ml.py