title: Do I need to pre-tokenize the text first before using HuggingFace's RobertaTokenizer? (Different undersanding)
body: <p>I feel confused when using the Roberta tokenizer in Huggingface. </p>
  
  <pre><code>&gt;&gt;&gt; tokenizer = RobertaTokenizer.from_pretrained('roberta-base')
  &gt;&gt;&gt; x = tokenizer.tokenize("The tiger is ___ (big) than the dog.")
  ['The', 'Ġtiger', 'Ġis', 'Ġ___', 'Ġ(', 'big', ')', 'Ġthan', 'Ġthe', 'Ġdog', '.']
  &gt;&gt;&gt; x = tokenizer.tokenize("The tiger is ___ ( big ) than the dog.")
  ['The', 'Ġtiger', 'Ġis', 'Ġ___', 'Ġ(', 'Ġbig', 'Ġ)', 'Ġthan', 'Ġthe', 'Ġdog', '.']
  &gt;&gt;&gt; x = tokenizer.encode("The tiger is ___ (big) than the dog.")
  [0, 20, 23921, 16, 2165, 36, 8527, 43, 87, 5, 2335, 4, 2]
  &gt;&gt;&gt; x = tokenizer.encode("The tiger is ___ ( big ) than the dog.")
  [0, 20, 23921, 16, 2165, 36, 380, 4839, 87, 5, 2335, 4, 2]
  &gt;&gt;&gt;
  </code></pre>
  
  <p><strong>Question</strong>: <code>(big)</code> and <code>( big )</code> have different tokenization results, which result in different token id as well. Which one I should use? Does it mean that I should pre-tokenize the input first to make it <code>( big )</code> and go for RobertaTokenization?  Or it doesn't really matter?</p>
  
  <p>Secondly, it seems <code>BertTokenizer</code> has no such confusion:</p>
  
  <pre><code>&gt;&gt;&gt; tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')
  &gt;&gt;&gt; x = tokenizer.tokenize("The tiger is ___ (big) than the dog.")
  ['the', 'tiger', 'is', '_', '_', '_', '(', 'big', ')', 'than', 'the', 'dog', '.']
  &gt;&gt;&gt; x = tokenizer.tokenize("The tiger is ___ ( big ) than the dog.")
  ['the', 'tiger', 'is', '_', '_', '_', '(', 'big', ')', 'than', 'the', 'dog', '.']
  &gt;&gt;&gt;
  </code></pre>
  
  <p><code>BertTokenizer</code> gives me the same results using the wordpieces. </p>
  
  <p>Any thoughts to help me better understand the RobertaTokenizer, which I know is using Byte-Pair Encoding?</p>