code: def clean_entity(self, ent):
          
          dump_list = ['province', 'the', 'area', 'airport', 'district', 'square',
                      'town', 'village', 'prison', "river", "valley", "provincial", "prison",
                      "region", "municipality", "state", "territory", "of", "in",
                      "county", "central"]
                      # maybe have 'city'? Works differently in different countries
                      # also, "District of Columbia". Might need to use cap/no cap
          keep_positions = []
          for word in ent:
              if word.text.lower() not in dump_list:
                  keep_positions.append(word.i)
  
          keep_positions = np.asarray(keep_positions)
          try:
              new_ent = ent.doc[keep_positions.min():keep_positions.max() + 1]
              # can't set directly
              #new_ent.label_.__set__(ent.label_)
          except ValueError:
              new_ent = ent
          return new_ent
docs: Strip out extra words that often get picked up by spaCy's NER.
  
          To do: preserve info about what got stripped out to help with ES/Geonames
              resolution later.
  
          Parameters
          ---------
          ent: a spaCy named entity Span
  
          Returns
          -------
          new_ent: a spaCy Span, with extra words stripped out.