title: Handling \u200b (Zero width space) character in text preprocessing for NLP task
body: <p>I'm preprocessing some text for a NER model I'm training, and I'm encountering this character quite a lot. This character is not removed with <code>strip()</code>:</p>
  
  <pre><code>&gt;&gt;&gt; 'Hello world!\u200b'.strip()
  'Hello world!\u200b'
  </code></pre>
  
  <p>It is not considered a whitespace for regular expressions:</p>
  
  <pre><code>&gt;&gt;&gt; re.sub('\s+', ' ', "hello\u200bworld!")
  'hello\u200bworld!'
  </code></pre>
  
  <p>and spaCy's tokenizer does not split tokens upon it:</p>
  
  <pre><code>&gt;&gt;&gt; [t.text for t in nlp("hello\u200bworld!")]
  ['hello\u200bworld', '!']
  </code></pre>
  
  <p>So, how should I handle it? I can simply replace it, however I don't want to make a special case for this character, but rather replace all characters with similar characteristics.</p>
  
  <p>Thanks.</p>