I need to automatically match product names (cameras, laptops, tv-s etc) that come from different sources to a canonical name in the database.
For example \"
I worked on the exact same thing in the past. What I have done is using an NLP method; TF-IDF Vectorizer to assign weights to each word. For example in your case:
Canon PowerShot a20IS
This will tell your model which words to care and which words to not. I had quite good matches thanks to TF-IDF. But note this: a20IS cannot be recognized as a20 IS, you may consider to use some kind of regex to filter such cases.
After that, you can use a numeric calculation like cosine similarity.