文本分类任务的数据结构

时间:2013-10-24 15:09:12

标签: python text sparse-matrix

我正在进行文本分类/标记任务,我想问一下哪种数据结构最适合我。我所拥有的训练数据集大约有4个演出(经过一些清理,但如果我丢弃这些罕见的单词,应该更小),有600万个文件。每个文档都有4个字段:

  1. 文件ID
  2. 标题
  3. 标签(作为字符串,例如“apple sql-server linux”。这表示三个标签,用空格分隔。文件可以有1-5个标签)
  4. 我刚刚完成了清理阶段(阻塞,停止单词等),我即将把它们转换成带有scikit的TF-IDF单词向量,因此输出是一个scipy稀疏矩阵。我想将Title和Body保持为两个向量,并在我决定赋予Title的权重时在稍后阶段将它们组合起来。标题和正文是稀疏向量,但它们使用相同的字典构建,因此具有相同的否。列。

    表示此信息的最佳方式是什么?我来自R所以我只是习惯于在data.tables / data frames中存储东西,但这似乎不适用于文本分类和稀疏矩阵。我想做的一件事是创建我自己的“文档”类,并且只有一个这些对象的列表来表示语料库。我不认为这是非常有效的,因为我可能想要做return all docs with the Tag apple之类的事情。

    我计划运行的ML算法是k-means聚类,kNN,朴素贝叶斯和可能的SVM。可能还有其他我还没想过的事。

    我是Python和文本分类的新手 - 非常感谢任何帮助,我对之前完成它的人非常感兴趣。

    谢谢!

1 个答案:

答案 0 :(得分:0)

最好的选择是listdictionary个对象。保留所有文档的列表,以及保存文档所有信息的字典。