Python中的CountVectorizer

时间:2018-03-30 07:13:22

标签: python tf-idf text-classification countvectorizer tfidfvectorizer

我正在研究一个问题,我必须预测公司发送的电子邮件是否被打开,如果它被打开,我必须预测收件人是否点击了给定的链接。

我有一个具有以下功能的数据集:

  • 电子邮件内的总链接
  • 内部的总内部链接 电子邮件
  • 电子邮件中的图片数量
  • 部分数量 在电子邮件中
  • Email_body
  • 电子邮件主题

对于电子邮件正文和主题,我可以使用 CountVectorizer 但是如何将我的其他功能包含在由所述CountVectorizer创建的稀疏矩阵中。

2 个答案:

答案 0 :(得分:0)

您可以轻松地连接这些矩阵和其他要素列,以构建一个非常大的矩阵。

但是,请注意,连接电子邮件正文和电子邮件主题的矩阵可能会创建一个令人难以置信的稀疏矩阵。当您添加其他功能时,您可能会冒“降低”其他功能的风险。这主要取决于您选择用于预测的算法。

在所有情况下,您都可以从减少电子邮件主题和正文的两个矩阵的维度中受益,或直接使用与CountVectorizer不同的方法 - 例如TFIDF。

答案 1 :(得分:0)

您的问题是您有两个大的稀疏特征向量(电子邮件正文和主题)以及小密集特征向量。这是我的简单建议:

  1. (杰罗姆的想法)减少电子邮件正文和主题的维度(通过PCA,AutoEncoder,CBOW,Doc2Vec,PLSA或LDA),以便最终得到密集的特征向量。然后,将其与其他元信息连接起来。
  2. 我认为将矩阵与其他功能连接起来是可以的。如果您使用简单的线性模型,您可以对元信息加权,并缩小从电子邮件的主题和正文中学习的所有权重。
  3. 真正的问题是,当您使用词袋表示(术语频率或TFIDF)时,您的特征向量对于非常短的电子邮件来说将非常稀疏。该模型可能表现不佳。

    顺便说一句,我认为作者信息可以很好地指示电子邮件是否会被打开。