  Software Engineering researchers are increasingly using Natural Language
Processing (NLP) techniques to automate Software Vulnerabilities (SVs)
assessment using the descriptions in public repositories. However, the existing
NLP-based approaches suffer from concept drift. This problem is caused by a
lack of proper treatment of new (out-of-vocabulary) terms for the evaluation of
unseen SVs over time. To perform automated SVs assessment with concept drift
using SVs' descriptions, we propose a systematic approach that combines both
character and word features. The proposed approach is used to predict seven
Vulnerability Characteristics (VCs). The optimal model of each VC is selected
using our customized time-based cross-validation method from a list of eight
NLP representations and six well-known Machine Learning models. We have used
the proposed approach to conduct large-scale experiments on more than 100,000
SVs in the National Vulnerability Database (NVD). The results show that our
approach can effectively tackle the concept drift issue of the SVs'
descriptions reported from 2000 to 2018 in NVD even without retraining the
model. In addition, our approach performs competitively compared to the
existing word-only method. We also investigate how to build compact
concept-drift-aware models with much fewer features and give some
recommendations on the choice of classifiers and NLP representations for SVs
assessment.
