Let's say I trained a classifier to assign a shop department to a product, e.g.: ALGIDA Cow milk->Diary. It did it on a domain of official product names.
When I applied pre-trained classifier to names of products in a shopping list, I found it doesn't perform that well as in the source domain because people tend to make spelling errors, abbreviate product names, do not include brand names, etc. in their shopping lists.
Simply speaking, the classifier does not generalize well to another domain.
I tried a few techniques where each alone improved classifier accuracy in a target domain:
- Pre-processed product names in a shopping list by correcting spelling errors and expanding abbreviations
- Pre-processed product names in a source domain before training by removing brand names.
- Stemmed product names before constructing TF/IDF vectors
- Embedded product names using pretrained USE (Universal Sentence Encoder) model.
Each of those techniques makes phrases in one domain more similar to phrases in another domain, or features build on top of those phrases more similar across domains.
Would you call any of those techniques domain adaptation?