在matlab中对单元格数组进行分类

Posted

技术标签:

【中文标题】在matlab中对单元格数组进行分类【英文标题】:classify cell array in matlab 【发布时间】:2012-06-07 18:10:46 【问题描述】:

我想对新闻数据集进行文本分类。我有很多功能,例如subjectkeywordsummary 等...所有这些功能都存储在一个结构单元数组中,每个结构看起来像这样:

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

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

我无法将此元胞数组转换为一个多维数组,因为特征的数量各不相同(例如,一个主题有两个词,另一个主题有三个词)。

我能做什么?

【问题讨论】:

你不必先为每个文档提取一些特征,比如TF-IDF 是的,我做到了。但是你提到的这种方式,我没有单独使用主题,关键字。我认为这样我丢失了一些信息。 【参考方案1】:

先做一些特征提取。例如,对字符串进行标记,然后使用 TF-IDF。

您可以在令牌中包含密钥。这是信息检索中的常见做法。有关示例,请参阅 Xapian 手册。

通常,您会做一些词干提取,例如Examples -> exampl。现在,只需添加一个前缀,使单词根据出现的不同而不同。例如。 Sexampl 当主题包含 exampleKexampl 当它是关键字时。

然后你就有了一个无处不在的“词袋”表示。他们甚至这样做是为了挖掘图像,这被称为“视觉词”。这些也不是英语单词。

【讨论】:

以上是关于在matlab中对单元格数组进行分类的主要内容,如果未能解决你的问题,请参考以下文章

在matlab中连接单元格数组的向量

Matlab保存忽略大单元格数组

MATLAB 中的单元格和数组的连接和索引有何不同?

在Matlab中直接获取数组/单元格的元素[重复]

Matlab:如何将单元格数组转换为字符串数组?

在MATLAB中的一行中从单元格数组中获取所有一个属性