I have to train a classification model with 15 classes based on data which contains both textual and numeric data. For instance: product description(textual), product length'(numeric). I have experience with Text mining but only with textual data. My approach would be to separate the textual and numeric data, create dfm and then merge it with numeric data. But I am open to other better approaches.
You have two main options here:
As you said, create some numeric features out of the text description and merge it with the rest of the numeric data. The features created out of the text description can be either the document-term matrix (with tf-idf or not), can be SVD components or even averaged word-vectors (look for word2vec etc).
You can build two separate classifiers (one using text data only and one using numeric only) and then combine their output using some meta-modelling.
I think there is a more satisfying solution than what has been suggested already, one that creates a single model that properly deals with the two kinds of input data and their relationship to the output class. Use a sequence model like an RNN to convert text into a kind of embedding. That embedding output is used directly as input to a dense layer that also takes the non-text data as input.
The benefit of putting this into one model is you can merely rely on backpropagation to learn the right level of dependency of the output class on the two kinds of inputs, as well as let it train the RNN jointly with the final classifier. No need to add the complexity of an ensemble.
For details, here is a good tutorial: