提高文章分类器的准确性

时间:2017-02-07 22:50:20

标签: machine-learning neural-network

我根据我获取的维基百科数据构建了一个文章分类器,它来自5个总分类。

他们是:

Finance (15 articles) [1,0,0,0,0]
Sports (15 articles) [0,1,0,0,0]
Politics (15 articles) [0,0,1,0,0]
Science (15 articles) [0,0,0,1,0]
None (15 random articles not pertaining to the others) [0,0,0,0,1]

我去维基百科并从这些类别中抓取了大约15篇相当冗长的文章,以构建我可以用来训练我的网络的语料库。

在构建了从所有文章中收集的大约1000个单词的词典后,我将每篇文章转换为word vector以及正确的classifier标签。

单词vector是hot array,而标签是one hot array

例如,以下是一篇文章的表示:

[
 [0,0,0,1,0,0,0,1,0,0,... > 1000], [1,0,0,0] # this maps to Finance
]

所以,从本质上讲,我将word vectors这个随机列表映射到正确的classifiers

我的网络是一个3层深度神经网络,每层包含500个节点。我通过网络超过30个时代,然后只显示我的模型到底有多准确。

现在,我的准确率达到了53%到55%。我的问题是,我能做些什么才能将其纳入90年代?它是否可能,或者我是否会疯狂地试图训练这件事?

也许另外,可以说我的主要瓶颈是什么?

根据以下评论进行编辑

神经网络并非真正设计为在单台计算机上运行最佳,如果您拥有集群或至少是生产级计算机,它们的工作效果会更好。消除语料库的“长尾”是很常见的 - 如果一个术语只出现在一个文档中一次,那么你可能想要消除它。您可能还想应用一些词干,以便不捕获同一个词的倍数。我强烈建议您在修剪之前尝试将TFIDF转换应用于您的语料库。

网络规模优化本身就是一个领域。基本上,您尝试添加更多/更少的节点,并查看它的位置。有关技术讨论,请参阅以下内容。 https://stats.stackexchange.com/questions/181/how-to-choose-the-number-of-hidden-layers-and-nodes-in-a-feedforward-neural-netw

1 个答案:

答案 0 :(得分:0)

没有看到数据就不可能知道。

要尝试的事情:

将您的单词向量转换为TFIDF。你在删除停用词吗?您可以在单词向量中添加bi-gram / tri-gram。

添加更多文章 - 在如此小的语料库中将它们分开可能很困难。特定文档的长度不一定有帮助,您希望有更多文章。

30个时代对我来说感觉很低。