I am completely new to NLP and I have been tasked with performing text classification on a dataset containing 193k records. The number of classes is 107.
The class with the highest number of records contains > 16k entries, whereas the less frequent one contains only 5. You can see the frequency distribution below. The class names have been redacted due to confidentiality requirements.
Each entry can contain up to 100 characters. The text is very terse and contains few words in English, with the remaining being codes, locations and names of people.
How would you tackle such a problem? Does it make any sense to do text augmentation, or should I implement some form of weighting at the model evaluation stage? If so, which text augmentation / weighing tools or procedures would you recommend?