假设我有一堆文章(成千上万)我想要标记,分类等.理想情况下,我想通过手动分类/标记几百个来训练某些东西,然后让它松散.
你会推荐哪些资源(书籍,博客,语言)来完成这样的任务?我的一部分认为这适合贝叶斯分类器甚至潜在语义分析,但除了我从一些红宝石 宝石中发现的东西之外,我并不熟悉.
可以通过贝叶斯分类器解决这样的问题吗?我应该更多地关注语义分析/自然语言处理吗?或者,我应该只是从那里寻找关键字密度和映射?
任何建议都表示赞赏(我不介意拿几本书,如果这是需要的话)!
哇,这是一个非常大的话题,你正在冒险:)绝对有很多书籍和文章,你可以阅读它,但我会尝试提供一个简短的介绍.我不是一个大专家,但我研究过这些东西.
首先,您需要确定是否要将论文分类为预定义的主题/类别(分类问题),或者您希望算法自己决定不同的组(聚类问题).根据您的描述,您似乎对分类感兴趣.
现在,在进行分类时,首先需要创建足够的训练数据.您需要将一些文章分成不同的组.例如5篇物理论文,5篇化学论文,5篇编程论文等.通常,您需要尽可能多的训练数据,但多少就取决于具体的算法.您还需要验证数据,这与训练数据基本相似,但完全分开.此数据将用于判断算法的质量(或数学说话的性能).
最后,算法本身.我熟悉的两个是基于贝叶斯和TF-IDF.对于贝叶斯,我目前正在为红宝石开发类似的东西,我在博客中记录了我的经历.如果您有兴趣,请阅读本文 - http://arubyguy.com/2011/03/03/bayes-classification-update/,如果您有任何后续问题,我会尽力回答.
TF-IDF是TermFrequence的缩写--InverseDocumentFrequency.基本上,这个想法是任何给定的文档在训练集中找到与它最相似的许多文档,然后根据它来计算它的类别.例如,如果文档D类似于T1,它是物理学,而T2是物理学,T3是化学,那么你猜D最有可能是物理学和一点化学反应.
它的方式是你最重视稀有的单词而不重视常用的单词.例如'nuclei'是罕见的物理词,但'work'是非常常见的非有趣词.(这就是为什么它被称为逆项频率).如果您可以使用Java,那么有一个非常好的Lucene库,可以提供大部分开箱即用的东西.寻找"类似文档"的API并研究它是如何实现的.或者只是谷歌搜索'TF-IDF',如果你想实现自己的