文件类型分类

Posted

技术标签:

【中文标题】文件类型分类【英文标题】:Genres classification of documents 【发布时间】:2017-08-12 20:22:16 【问题描述】:

我正在寻找图书馆,无论它是机器学习还是其他无关紧要的东西,它可以帮助我对我拥有的内容进行分类。基本上我的内容是写的文章,我想知道其中哪些是政治或体育 bla bla,所以我对它们进行了分类。

我正在尝试 openNLP,但无法让它按我的需要工作,还有什么可以解决我的需求的吗?

我想我需要某种带有自然语言处理 NLP 的机器学习,但目前我找不到能胜任我工作的东西。

【问题讨论】:

您能否提供任何关键字,以便我们可以使这种机器学习成为受监督的机器学习。或者您希望自己按无监督或半监督分类?你的选择是什么。第一个还是第二个? 受监督对我来说很好,所以我可以协助修改和工作人员,但任何更好的工作都会帮助我开始。 训练语料库有多少文档? 【参考方案1】:

这是一个朴素的实现,但您可以进一步即兴发挥。要将段落分类在一个类别下,首先尝试提取特定主题的训练数据的唯一词。

例如:使用 NLTK 从谈论体育的段落集合中提取唯一词并将其存储在一个集合中。然后类似地对其他主题执行此操作并将它们存储在集合中。现在减去集合中的常用词,以便您现在可以找到可能代表特定主题的特定独特词。

所以,现在当您输入一个段落时,它应该为您提供一次性输出。 现在组合列表中所有唯一的单词。

现在当你分析一个段落时,如果你找到了那些词,就把它们写成 1。

就像,在分析了你的第一段之后,你可能会得到这样的结果,

[ 0, 0, 1, 0, 1, .... 1, 0, 0] -> 此处表示找到位置 3 的唯一词等。 em>

因此,您的训练数据将作为输入和输出为 one-hot 编码。 即,如果您有三个类别,并且您的第一段属于第一个主题,那么结果将类似于 [1,0,0]。

收集许多输入和结果进行训练,然后使用新输入对其进行测试。你会在它适合的主题上获得更高的概率。

您可以使用基本神经网络和正常的 softmax 损失函数对其进行训练。这可能只需要一个小时即可完成。

一切顺利。

【讨论】:

【参考方案2】:

我会建议两种方法,这取决于您的数据:

首先,如果您已经知道要在文本数据中包含多少类,例如体育 vs 政治 vs 科学。在这种情况下,您可以使用监督学习算法(SVM、MLP、LR ..)。

在第二种情况下,您不知道您的数据中会遇到多少类,最好使用无监督学习算法 LDA 或 LSI,它将具有相似主题的文档聚集在一起,您只需手动检查一些来自每个集群的文档并为其分配一个标签。

至于您的数据表示,您可以使用 SKlearn 或 SPARK countvectorizer 创建 BoW(词袋)向量以提供给您的学习算法。

我将补充一点,如果您的词汇量很大,最好使用 scipy 稀疏向量(内存效率更高且速度更快)。

【讨论】:

以上是关于文件类型分类的主要内容,如果未能解决你的问题,请参考以下文章

文件类型分类

GDAL/OGR的分类结构

8.6(数据类型分类,python深浅拷贝,异常处理,基本的文件操作,绝对路径和相对路径)

php 用于创建图库postype和分类的插件。以及创建一些模板文件以在主题中显示图库帖子类型页面

如何从 oh-my-zsh 和 Mac 上的“ls”命令输出中删除文件类型分类器?

将文件进行分类整理