假设我有一堆文章(数千篇),我想贴上标签,分类等等。理想情况下,我想通过人工分类/标注几百篇文章来训练一些东西,然后放了它。
你会推荐哪些资源(书籍、博客、语言)来完成这样的任务?我的一部分人认为这将是一个很好的适合一个贝叶斯分类器,甚至潜在语义分析,但我不太熟悉,除了我从几个红宝石 宝石发现。
这样的事情能用贝叶斯分类器解决吗?我应该更多地关注语义分析/自然语言处理吗?或者,我应该只是寻找关键字的密度和映射从那里?
任何建议都会受到赞赏(如果需要的话,我不介意拿几本书)!
发布于 2011-03-04 08:56:46
哇,这是一个很大的话题,你正在冒险:)肯定有很多书和文章,你可以阅读,但我将尝试提供一个简短的介绍。我不是一个大专家,但我做了一些这方面的工作。
首先,您需要决定是要将文章分类为预定义的主题/类别(分类问题),还是希望算法自行决定不同的组(聚类问题)。从您的描述来看,您似乎对分类感兴趣。
现在,在进行分类时,首先需要创建足够的培训数据。你需要有许多文章被分成不同的小组。例如,5篇物理论文,5篇化学论文,5篇编程论文等等。一般来说,你想要尽可能多的训练数据,但多少就是足够取决于具体的算法。您还需要验证数据,这些数据基本上类似于培训数据,但完全独立。这些数据将用于判断算法的质量(或数学性能)。
最后,算法本身。我熟悉的两个基地是贝斯基地和TF-以色列国防军基地。对于Bayes,我目前正在为自己开发类似的产品,我已经在我的博客中记录了我的经历。如果您感兴趣,只需阅读这个- http://arubyguy.com/2011/03/03/bayes-classification-update/,如果您有任何后续问题,我将尝试回答。
TF-以色列国防军是TermFrequence - InverseDocumentFrequency的缩写.基本上,任何给定的文档都可以在培训集中找到一些与其最相似的文档,然后根据这些文档确定它的类别。例如,如果文档D类似于T1 (物理学),T2 (物理学)和T3 (化学),你猜D最有可能是关于物理和一些化学的。
这样做的方式是,你把最重要的是罕见的词,而不重要的普通词汇。例如,“原子核”是罕见的物理词,而“工作”则是非常常见的无趣词。(这就是为什么它被称为逆项频率)。如果您可以使用Java,那么就会有一个非常好的Lucene库,它可以提供大多数现成的东西。查找用于“类似文档”的API,并查看它是如何实现的。或者,如果你想实现你自己的“TF-国防军”,那就用谷歌吧。
发布于 2011-02-24 16:26:23
我在过去做过一些类似的事情(尽管是针对短新闻的文章),使用了一些向量聚类算法。我现在不记得了,这是谷歌在其幼年时期所使用的。使用他们的论文,我能够在一两天内在PHP中运行一个原型,然后为了加快速度,我将它移植到Java中。
模型
Theory.pdf
https://stackoverflow.com/questions/5107371
复制相似问题