machine-learning - 如何将可变长度字符串转换为向量?

标签 machine-learning classification word2vec

我正在研究分类算法,我得到了具有某种模式的不同字符串代码。

|:-----------|------------:|:------------:|
| Column 1   | Column 2    | Column 3     |
|:-----------|------------:|:------------:|
| MN009      | JIK9PO      | LEFTu        |
| MN010      | JIK9POS     | LEFTu        |
| MN011      | JIK9POKI    | LEFTu        |
| MN012      | KIJU        | LEFTu        |
| MN013      | RANDOM      | LEFTu        |
| MN014      | FT          | LEFTu        |
|:-----------|------------:|:------------:|

对于第 1 列和第 3 列,特征集可以是长度为 5 的向量。

但我不知道如何创建也可以容纳第 2 列的功能集。

注意事项:

  1. 创建一个大小等于最长字符串大小的特征向量 值,对于较小的字符串添加一些填充符。
  2. 将字符串截断为固定长度(例如此处的 5)并忽略多余的长度 字符。

希望我能清楚地回答这个问题。谢谢:)

最佳答案

有两种解决方案:

  1. 你提到的那个;预定义长度、零填充序列 达不到它的要求。该长度可以设置为:

    • 当前存在的最长样本(更大的特征空间⇒时间/内存复杂性后果),
    • 或更短的长度(信息丢失⇒预测能力损失)。信息丢失源于忽略序列 超过该长度或截断它们并使用它们的削减 版本。

      在这两种情况下,您可能应该量化您的选择的影响 (即,我通过丢弃/截断从数据中丢弃了多少信息,或者与使用较小长度相比,我的问题空间大了多少)。

  2. 动态图,本质上是可变形状网络,可以处理不同大小的序列。这些能力由 PyTorch 提供。并且(相对)易于实现(related SO问题)

关于machine-learning - 如何将可变长度字符串转换为向量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49553880/

相关文章:

machine-learning - 词向量上的 CNN 会引发输入维度错误

matlab - 如何检查relu梯度

python - 将自定义标签添加到 pytorch 数据加载器/数据集不适用于自定义数据集

testing - Weka:为什么用我的测试集重新评估没有给出任何结果而不抛出错误消息?

machine-learning - 您将如何使用 Sklearn 的 VotingClassifier 进行 RandomizedSearchCV?

model - 在spacy中,如何使用自己在gensim中创建的word2vec模型?

machine-learning - 使用 LIBSVM 的多类

java - 如何解析 CSV 文件以便 Mahout 对其进行分类

python - python 中 csv 文件的 wordcloud

python - 在整个语料库上训练 W2V 模型是否合适?