[Marian] Key-Error for some languages
Author: sshleifer
Pull request: no
Labels: name: marian

model -> symbol that caused `KeyError`.

```python

{'ha-en': '|',
 'ber-es': '▁Be',
 'pis-fi': '▁|',
 'es-mt': '|',
 'fr-he': '₫',
 'niu-sv': 'OGI',
 'fi-fse': '▁rentou',
 'fi-mh': '|',
 'hr-es': '|',
 'fr-ber': '▁devr',
 'ase-en': 'olos'}
```

Reproduce
```python
pair = 'ber-es'
mname = f'Helsinki-NLP/opus-mt-{pair}'
tok = MarianTokenizer.from_pretrained(mname)
tok.prepare_translation_batch(['Bessif kan ay aɣ-d-iṣaḥ wakud akken ad necc imensi.'])
```

Traceback:
```python
---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
<ipython-input-55-5da2d9c189be> in <module>
      2 mname = f'Helsinki-NLP/opus-mt-{pair}'
      3 tok = MarianTokenizer.from_pretrained(mname)
----> 4 tok.prepare_translation_batch(['Bessif kan ay aɣ-d-iṣaḥ wakud akken ad necc imensi.'])

~/transformers_fork/src/transformers/tokenization_marian.py in prepare_translation_batch(self, src_texts, tgt_texts, max_length, pad_to_max_length, return_tensors)
    145             max_length=max_length,
    146             pad_to_max_length=pad_to_max_length,
--> 147             src=True,
    148         )
    149         if tgt_texts is None:

~/transformers_fork/src/transformers/tokenization_utils.py in batch_encode_plus(self, batch_text_or_text_pairs, add_special_tokens, max_length, stride, truncation_strategy, pad_to_max_length, is_pretokenized, return_tensors, return_token_type_ids, return_attention_masks, return_overflowing_tokens, return_special_tokens_masks, return_offsets_mapping, return_lengths, **kwargs)
   1729                 ids, pair_ids = ids_or_pair_ids, None
   1730 
-> 1731             first_ids = get_input_ids(ids)
   1732             second_ids = get_input_ids(pair_ids) if pair_ids is not None else None
   1733             input_ids.append((first_ids, second_ids))

~/transformers_fork/src/transformers/tokenization_utils.py in get_input_ids(text)
   1697             if isinstance(text, str):
   1698                 tokens = self.tokenize(text, add_special_tokens=add_special_tokens, **kwargs)
-> 1699                 return self.convert_tokens_to_ids(tokens)
   1700             elif isinstance(text, (list, tuple)) and len(text) > 0 and isinstance(text[0], str):
   1701                 return self.convert_tokens_to_ids(text)

~/transformers_fork/src/transformers/tokenization_utils.py in convert_tokens_to_ids(self, tokens)
   1340         ids = []
   1341         for token in tokens:
-> 1342             ids.append(self._convert_token_to_id_with_added_voc(token))
   1343         return ids
   1344 

~/transformers_fork/src/transformers/tokenization_utils.py in _convert_token_to_id_with_added_voc(self, token)
   1349         if token in self.added_tokens_encoder:
   1350             return self.added_tokens_encoder[token]
-> 1351         return self._convert_token_to_id(token)
   1352 
   1353     def _convert_token_to_id(self, token):

~/transformers_fork/src/transformers/tokenization_marian.py in _convert_token_to_id(self, token)
     90 
     91     def _convert_token_to_id(self, token):
---> 92         return self.encoder[token]
     93 
     94     def _tokenize(self, text: str, src=True) -> List[str]:

KeyError: '▁Be'

```

Comments:
marian C++ code uses `<unk>` in this case