inflect.underscore = function (camel_cased_word) {
  var self;
  self = util.string.gsub(camel_cased_word, /\./, '/');
  self = util.string.gsub(self, /([A-Z])([A-Z][a-z])/, '$1_$2');
  self = util.string.gsub(self, /([a-z\d])([A-Z])/, '$1_$2');
  self = util.string.gsub(self, /-/, '_');
  return self.toLowerCase();
};
NVD is only using a subset of CWE for mapping instead of the entire CWE, and the weakness type is not covered by that subset.