Tokenizer offset_mapping problem
Author: marcostella1
Pull request: no

## Task info
Hi,
I'm trying to use the tokenizer model to create sliding windows for my `ner` task.
I have seen that the tokenizers can do this, setting the `return_overflowing_tokens=True` parameter when i call them to tokenize text. I also need the token spans, that can be taken from `BatchEncoding` tokenizer ouput, setting `return_offsets_mapping=True` parameter in the tokenizer call.

## Environment info
I am running my script on Google Colab

```
- `transformers` version: 4.16.2
- Platform: Linux-5.4.144+-x86_64-with-Ubuntu-18.04-bionic
- Python version: 3.7.12
- PyTorch version (GPU?): 1.10.0+cu111 (False)
- Tensorflow version (GPU?): 2.8.0 (False)
- Flax version (CPU?/GPU?/TPU?): not installed (NA)
- Jax version: not installed
- JaxLib version: not installed
- Using GPU in script?: no
- Using distributed or parallel set-up in script?: no
```

## Information

I am using these three italian tokenizers:

1. `idb-ita/gilberto-uncased-from-camembert`
2. `Musixmatch/umberto-commoncrawl-cased-v1`
3. `Musixmatch/umberto-wikipedia-uncased-v1`

The problem is that for the first two tokenizer, in the token spans `[(start, end),...,(start,end)]` returned, the start index of the first token of a word (except for the first word of text) is the index of the whitespace character. 

## To reproduce

Steps to reproduce the behavior:

1. `idb-ita/gilberto-uncased-from-camembert`
```
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("idb-ita/gilberto-uncased-from-camembert")
text = "L'Italia, ufficialmente Repubblica Italiana, è uno Stato situato nell'Europa centro-meridionale, il cui territorio coincide in gran parte con l'omonima regione geografica." #(source: https://it.wikipedia.org/wiki/Italia)
tokenized_text = tokenizer(text.lower(), stride=10, max_length=20, truncation=True, return_overflowing_tokens=True, return_offsets_mapping=True)
print(tokenized_text["offset_mapping"][0])
print(tokenizer.convert_ids_to_tokens(tokenized_text["input_ids"][0]))
```

Output
```
[(0, 0), (0, 1), (1, 2), (2, 8), (8, 9), (9, 23), (23, 34), (34, 43), (43, 44), (44, 46), (46, 50), (50, 56), (56, 64), (64, 69), (69, 70), (70, 76), (76, 83), (83, 84), (84, 88), (0, 0)]
['
', '▁l', "'", 'italia', ',', '▁ufficialmente', '▁repubblica', '▁italiana', ',', '▁è', '▁uno', '▁stato', '▁situato', '▁nell', "'", 'europa', '▁centro', '-', 'meri', '
']
```

2. `Musixmatch/umberto-commoncrawl-cased-v1`
```
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("Musixmatch/umberto-commoncrawl-cased-v1")
text = "L'Italia, ufficialmente Repubblica Italiana, è uno Stato situato nell'Europa centro-meridionale, il cui territorio coincide in gran parte con l'omonima regione geografica." #(source: https://it.wikipedia.org/wiki/Italia)
tokenized_text = tokenizer(text, stride=10, max_length=20, truncation=True, return_overflowing_tokens=True, return_offsets_mapping=True)
print(tokenized_text["offset_mapping"][0])
print(tokenizer.convert_ids_to_tokens(tokenized_text["input_ids"][0]))
```

Output
```
[(0, 0), (0, 1), (1, 2), (2, 8), (8, 9), (9, 23), (23, 34), (34, 43), (43, 44), (44, 46), (46, 50), (50, 56), (56, 64), (64, 69), (69, 70), (70, 76), (76, 83), (83, 84), (84, 88), (0, 0)]
['
', '▁L', "'", 'Italia', ',', '▁ufficialmente', '▁Repubblica', '▁Italiana', ',', '▁è', '▁uno', '▁Stato', '▁situato', '▁nell', "'", 'Europa', '▁centro', '-', 'meri', '
']
```
If we take the sixth token "_ufficialmente", in both cases, its corresponding span is (9,23) and not (10,23).


## Expected behavior

The start index span of the first token of a word should start from the index of the first character of token and not from index of the whitespace character.
The third tokenizer `Musixmatch/umberto-wikipedia-uncased-v1` do it correctly.

```
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("Musixmatch/umberto-wikipedia-uncased-v1")
text = "L'Italia, ufficialmente Repubblica Italiana, è uno Stato situato nell'Europa centro-meridionale, il cui territorio coincide in gran parte con l'omonima regione geografica." #(source: https://it.wikipedia.org/wiki/Italia)
tokenized_text = tokenizer(text.lower(), stride=10, max_length=20, truncation=True, return_overflowing_tokens=True, return_offsets_mapping=True)
print(tokenized_text["offset_mapping"][0])
print(tokenizer.convert_ids_to_tokens(tokenized_text["input_ids"][0]))
```

Output
```
[(0, 0), (0, 1), (1, 2), (2, 3), (3, 8), (8, 9), (10, 23), (24, 34), (35, 43), (43, 44), (45, 46), (47, 50), (51, 56), (57, 64), (65, 69), (69, 70), (70, 74), (74, 76), (77, 83), (0, 0)]
['
', '▁l', "'", 'i', 'talia', ',', '▁ufficialmente', '▁repubblica', '▁italiana', ',', '▁è', '▁uno', '▁stato', '▁situato', '▁nell', "'", 'euro', 'pa', '▁centro', '
']
```
If we take the sixth token "_ufficialmente", its corresponding span is (10,23).

Comments:
This issue has been automatically marked as stale because it has not had recent activity. If you think this still needs to be addressed please comment on this thread.

Please note that issues that do not follow the [contributing guidelines](https://github.com/huggingface/transformers/blob/master/CONTRIBUTING.md) are likely to be ignored.