Extracting words belonging to a key from the text
You have two options:


Use regular expressions to extract features of interest based on your dictionary. You may have mixed results, since, for example, dual sim cards will be micro or nano, so you will get two types from single description. However, that just says, that the dictionary isn't well structured.
Train your own NER (named entity recognition) system. For that, first, you will need a data set which will consist of your descriptions and marked entities. This would require manual labour, either yours or paid one one some crowd sourcing platform. When you will have a marked-up dataset, you could use NLTK to train a NER. Markup may be done in any way familiar to you, but, generally speaking, xml-like markup is the best choice since there are many ways to train a NER, and most of frameworks know how to parse xml-like tags:


Example markup:

&lt;screen_size>5.5"&lt;/screen_size> (13.97cm) full hd &lt;resolution>1920 x 1080&lt;/resolution> pixels ips screen gorilla glass display etc.