Software vulnerability assessment and classification using machine learning, deep learning and feature selection techniques