How does the punkt tokenizer handle the word "gonna" and some hashtags

Why does the punkt tokenizer split the word “gonna” ? And why does it treat #YOLO differently from a madeup hashtag.

I was expecting a single token “gonna” and for tokey2023 to also show up if YOLO showed up.

# Run this with any sentence
tokenize("Gonna go now. Done for today #YOLO #tokey2023")
['gon', 'na', 'go', 'now', '.', 'done', 'for', 'today', 'yolo']

“gonna” isn’t a word in the English language. It’s slang that isn’t widely used in writing.

The correct form is “going to”.

Is the punkt tokenizer (being unsupervised) able to learn contractions ? Any intuition as to whether/how it learns that ?