在MATLAB中对单元数组进行分类

我想对一组新闻数据集进行文本分类。我有很多特征,比如subject(主题)、keyword(关键词)、summary(摘要)等…所有这些特征都被存储在一个结构体的单元数组中,每个结构体看起来像这样:

       label: 'misc.forsale'        subj: ' Motorcycle wanted.'     keyword: [1x190 char]   reference: []organization: ' Worcester Polytechnic Institute'        from: ' [email protected] (John Kedziora)'     summary: []       lines: ' 11'       vocab: [4x2 double]

我想使用class = classify(test, train, target, 'diaglinear');来对它们进行分类,
但是这些函数只能接收数组作为输入,不接受单元或结构体。

我无法将这个单元数组转换为一个多维数组,因为特征的数量是变化的(例如,一个主题有两个词,另一个有三个词)。

我该怎么办?


回答:

首先进行一些特征提取。例如,对字符串进行分词,然后使用TF-IDF方法。

你可以将关键词与分词结合在一起。这在信息检索中是一种常见的做法。请参阅Xapian手册中的示例。

通常,你会进行一些词干提取,例如Examples -> exampl。现在,只需添加前缀以区分单词的出现位置。例如,当主题包含example时使用Sexampl,当它是关键词时使用Kexampl

然后你就得到了一个“词袋”表示法,这种表示法在各个地方都很常用。他们甚至将这种方法用于图像挖掘,称为“视觉词”。这些也不是英语单词。

Related Posts

Keras Dense层输入未被展平

这是我的测试代码: from keras import…

无法将分类变量输入随机森林

我有10个分类变量和3个数值变量。我在分割后直接将它们…

如何在Keras中对每个输出应用Sigmoid函数?

这是我代码的一部分。 model = Sequenti…

如何选择类概率的最佳阈值?

我的神经网络输出是一个用于多标签分类的预测类概率表: …

在Keras中使用深度学习得到不同的结果

我按照一个教程使用Keras中的深度神经网络进行文本分…

‘MatMul’操作的输入’b’类型为float32,与参数’a’的类型float64不匹配

我写了一个简单的TensorFlow代码,但不断遇到T…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注