I have components basically divided into two main categories. AWS and Azure. For eg:
AWS Azure
AWS Sagemaker . Azure ML Service
Amazon Rekognition . Cognitive sevices
Amazon CloudFront . Azure Content Delivery network
EC2 . Azure Virtual Machines
The idea is to train a classifier which takes two parameters
1) type (Azure or AWS) and
2) matching name.
For ex if a user enters CDN with type as Azure we want to return Azure Content Delivery Network and in case of AWS we return Amazon CloudFront. similarly if a user enters instance with Azure we need to return Azure Virtual Machines and EC2 with AWS.
The idea is to train an algorithm which when encounters a phrase will return the closest component in a particular category.
I created a Naive bayes classifier(Not sure if it is right approach) for all such components in Azure and AWS and I have added (instance,EC2) {text,label} format for all the components. My sample data looks like this
Text Type Label
Content Delievery Network . AWS .Amazon Cloudfront
Content Delievery Network . Azure Azure Content Delivery network
Content Network . Azure Azure Content Delivery network
CDN . . Azure Azure Content Delivery network
Content Delievery . AWS .Amazon Cloudfront
Is there a better way to do this? using Topic Modelling or by training Word2Vec on the documents of these components?