Add community notebook for T5 sentiment span extraction
Author: enzoampil
Pull request: yes

This is an example notebook that aims to increase the coverage of T5 fine-tuning examples to address #4426 .

This notebook presents a high level overview of T5, its significance for the future of NLP in practice, and a thoroughly commented tutorial on how to fine-tune T5 for sentiment span extraction with an extractive Q&A format.

I recently presented this in a webinar published on [youtube](https://www.youtube.com/watch?v=4LYw_UIdd4A).

Comments:
# [Codecov](https://codecov.io/gh/huggingface/transformers/pull/4700?src=pr&el=h1) Report
> Merging [#4700](https://codecov.io/gh/huggingface/transformers/pull/4700?src=pr&el=desc) into [master](https://codecov.io/gh/huggingface/transformers/commit/0866669e751bef636fa693b704a28c1fea9a17f3&el=desc) will **decrease** coverage by `1.41%`.
> The diff coverage is `n/a`.

[![Impacted file tree graph](https://codecov.io/gh/huggingface/transformers/pull/4700/graphs/tree.svg?width=650&height=150&src=pr&token=9qOlN6Hb1c)](https://codecov.io/gh/huggingface/transformers/pull/4700?src=pr&el=tree)

```diff
@@            Coverage Diff             @@
##           master    #4700      +/-   ##
==========================================
- Coverage   77.14%   75.72%   -1.42%     
==========================================
  Files         128      128              
  Lines       21070    21070              
==========================================
- Hits        16255    15956     -299     
- Misses       4815     5114     +299     
```


| [Impacted Files](https://codecov.io/gh/huggingface/transformers/pull/4700?src=pr&el=tree) | Coverage Δ | |
|---|---|---|
| [src/transformers/modeling\_longformer.py](https://codecov.io/gh/huggingface/transformers/pull/4700/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy9tb2RlbGluZ19sb25nZm9ybWVyLnB5) | `18.70% <0.00%> (-74.83%)` | :arrow_down: |
| [src/transformers/configuration\_longformer.py](https://codecov.io/gh/huggingface/transformers/pull/4700/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy9jb25maWd1cmF0aW9uX2xvbmdmb3JtZXIucHk=) | `76.92% <0.00%> (-23.08%)` | :arrow_down: |
| [src/transformers/modeling\_t5.py](https://codecov.io/gh/huggingface/transformers/pull/4700/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy9tb2RlbGluZ190NS5weQ==) | `77.18% <0.00%> (-6.35%)` | :arrow_down: |
| [src/transformers/file\_utils.py](https://codecov.io/gh/huggingface/transformers/pull/4700/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy9maWxlX3V0aWxzLnB5) | `73.44% <0.00%> (-0.42%)` | :arrow_down: |
| [src/transformers/modeling\_bert.py](https://codecov.io/gh/huggingface/transformers/pull/4700/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy9tb2RlbGluZ19iZXJ0LnB5) | `86.77% <0.00%> (-0.19%)` | :arrow_down: |
| [src/transformers/modeling\_utils.py](https://codecov.io/gh/huggingface/transformers/pull/4700/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy9tb2RlbGluZ191dGlscy5weQ==) | `90.17% <0.00%> (+0.23%)` | :arrow_up: |
| [src/transformers/modeling\_openai.py](https://codecov.io/gh/huggingface/transformers/pull/4700/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy9tb2RlbGluZ19vcGVuYWkucHk=) | `81.78% <0.00%> (+1.37%)` | :arrow_up: |
| [src/transformers/modeling\_gpt2.py](https://codecov.io/gh/huggingface/transformers/pull/4700/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy9tb2RlbGluZ19ncHQyLnB5) | `86.21% <0.00%> (+14.10%)` | :arrow_up: |

------

[Continue to review full report at Codecov](https://codecov.io/gh/huggingface/transformers/pull/4700?src=pr&el=continue).
> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)
> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
> Powered by [Codecov](https://codecov.io/gh/huggingface/transformers/pull/4700?src=pr&el=footer). Last update [0866669...34c9a46](https://codecov.io/gh/huggingface/transformers/pull/4700?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).


Nice webinar, and cool notebook :)

@patrickvonplaten, do you want to take a look?

Thanks @LysandreJik ! :smile:

Awesome notebook @enzoampil! 

LGTM for merge!

Which dataset do you use exactly to fine-tune T5 here? 

Thanks @patrickvonplaten ! 😄 

For the dataset, I got it from an ongoing Kaggle competition called [Tweet Sentiment Extraction](https://www.kaggle.com/c/tweet-sentiment-extraction/data).

**The objective is to extract the span from a tweet that indicates its sentiment**

Example input:
```
sentiment: negative
tweet:  How did we just get paid and still be broke as hell?! No shopping spree for me today
```

Example output:
```
broke as hell?!
```


I was thinking about contributing this to the `nlp` library, but I'm not sure if Kaggle has policies regarding uploading their datasets to other public sources ...

I see! Yeah no worries - I don't think we currently handle dataset processing from on-going kaggle competition links.