【问题标题】:Is word embedding + other features possible for classification problem?分类问题是否可以使用词嵌入 + 其他特征?
【发布时间】:2020-04-10 23:30:10
【问题描述】:

我的任务是为评论数据集创建分类器模型。我有 15000 次训练观察、5000 次开发和 5000 次测试。

任务指定需要使用 3 个功能:我使用了TFIDF(那里有 5000 个功能)、BOW(更多功能)和review length(更多功能)。因此,例如,我的 X_train 是一个形状为 (15000,7001) 的数组。

我正在调查,发现词嵌入(尤其是word2vec)可能是 BOW 的一个不错的替代方案。 我的问题是,除了我的其他功能之外,它还可以使用(可以与我的其他功能使用相同的“数组”格式吗?)?

我对此进行了一些研究,但没有完全回答我的问题。

【问题讨论】:

    标签: python machine-learning scikit-learn text-classification sklearn-pandas


    【解决方案1】:

    您绝对可以将嵌入与其他特征连接起来,并将其作为输入提供给模型。

    在语音域中,例如在Personal VAD 中完成了此操作,其中说话者的嵌入与描述语音的其他特征连接在一起,以确定目标说话者是否在给定音频中说话。

    我很确定相同的方法可以并且已经应用​​于语音以外的其他机器学习应用领域(我很确定我在 NLP 中看到过它,但现在无法提出任何论文)。

    在一天结束的时候,你只是给你的模型额外的信息。如果该信息无用,那么理想情况下,您的模型会弄清楚这一点并将相应的权重设置为零。然而,实际上你只是让训练任务变得更复杂,最终可能会得到一个更糟糕的模型(如果特征没有那么有用,或者模型不够复杂,无法捕捉输入和输出之间的关系)。

    无论怎样,机器学习(尤其是深度学习)部分(或大部分)都是反复试验。从理论上讲,并非所有事情都已经确立到有人会告诉您“这将起作用”的程度。您的模型是否能够弄清楚输入和输出之间的关系并学习适当的映射函数取决于您的数据集、模型和您为训练设置所做的选择。自己尝试一下,看看它是否适合你。

    【讨论】:

      【解决方案2】:

      理论上是的

      文本语料库中的每个文档(比如说句子)都可以量化为一个数组。添加所有这些数组,您将得到一个矩阵。假设这个量化是使用 BOW,现在你想应用 word2vec,你只需要确保你的数组(单个句子的量化表示)与 BOW 数组的长度相同。只需逐行添加它们就可以了。 (这是理论上的,有更好的池化方法来组合这个)还有一些整洁的sklearn模块,看看pipeline

      但是有时将 tf-idf 和 BOW 结合起来会有点过头(取决于数据),您可能会得到太多冗余信息。

      【讨论】:

      • 感谢您的回答!是的,我对同时使用 tfidf 和 BOW 也有同样的想法,但我真的想不出或找到与 tf-idf 或 BOW 相关的更好功能......你有什么想法吗?
      • 这里有一些想法(总是取决于文本)kaggle.com/opanichev/handcrafted-features,但老实说使用迁移学习就足够了。 NN 是自动特征提取器,但如果你想玩,有一些想法
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-06
      • 1970-01-01
      • 1970-01-01
      • 2019-08-01
      • 1970-01-01
      • 2020-02-05
      相关资源
      最近更新 更多