What about training a emoji2vec model similar to word2vec model to get similar emojis to the words? For example, we can use the corpus containing emoji and words to train the model, and when you input 'happy', you will get similar emojis like 😄 😃 😀 , so you don't have to add keyword-emoji pair manually.