使用深度学习混合文本和数字功能以进行文本分类

时间:2018-09-13 17:18:25

标签: deep-learning text-mining feature-engineering natural-language-processing

我对将文本分为几个类别(主题)有疑问。除了文本之外,我还有一些我认为可能有用的数字功能(这些功能中也缺少值)。但是,最重要的信息当然会显示在文本中。因此,我认为深度学习方法(具有通用管道:嵌入层+具有辍学的CNN或RNN +密集层)将是最佳选择。将当前仅适用于具有数字功能的文本输入的模型混合的最佳实践是什么?在这个领域中是否有任何技巧,最佳的常规做法和最新研究?是否有关于此主题的论文/实验(也许在GitHub上)?

如果总的来说可以想到这个问题,那就太好了,但是为了使我们对可以解决的问题有一个想法,我将举一个具体的例子。假设我们收到了用户的评论,他们在其中描述了他们在接受服务或购买商品时遇到的问题。目标功能是多标签:与用户投诉相关的标签集(类别/主题)(我们应该在数百个可能的主题中选择相关的标签)。

然后,除了用户评论本身(这是最重要的功能)之外,我们可能还需要考虑一些数字功能,例如价格,等待时间,评分(客户满意度得分)等。这可能很有用用于预测某些特定类别。

这个想法是在深度学习模型中以某种方式混合所有这些功能,以产生最终模型。不知道我是否对如何做的最佳方法了解很多。解决此类问题的最佳实践/有用技巧是什么?

1 个答案:

答案 0 :(得分:0)

对于每个数字功能,在统计上都有一个表示形式(您可以使用pandas.DataFrame.describe),并且绘制分布也会从视觉上使您更强大。

在具有平均值,标准差,最大值,最小值等值之后。您应该摆脱会损害您的训练模型的异常值。例如,如果要素的90%的数值从18到72,但也有1.1或1200等值,则应根据侧面将其均等为18或72,以消除这些特征。您可以使用np.clip()

合理分配后,应将这些数字特征转换为分类特征。例如,从18到72的数字分布可以按照间隔分为18、27、36,......,72。您可以提高分辨率或降低分辨率,具体取决于您的理解和算法的性能。您可以使用np.digitize()或通过可以编写的简单函数手动执行。

最后,就像文本一样,您具有分类功能。 CNN或RNN可以很好地与数字值的分类表示形式配合使用,并且您可以获得更好的优势,即可以使用特征叉来提高性能。

但是,如果您要的是更复杂的内容,我可能不理解您的问题,或者我可能不知道。不过,如果您想提出更多或不同的要求,我将很乐意为您提供帮助。