nlp - 文档分析和标记

标签 nlp tagging classification bayesian

假设我有一堆文章(数千篇)想要标记、分类等。理想情况下,我想通过手动分类/标记几百篇来训练一些东西,并且然后放开东西。

对于完成这样的任务,您会推荐哪些资源(书籍、博客、语言)?我的一部分认为这很适合 Bayesian Classifier甚至 Latent Semantic Analysis , 但除了我从一些 ruby 中发现的以外,我对这两个都不熟悉gems .

贝叶斯分类器能解决这样的问题吗?我应该更多地关注语义分析/自然语言处理吗?或者,我应该从那里寻找关键字密度和映射吗?

欢迎任何建议(如果需要的话,我不介意买几本书)!

最佳答案

哇,这是一个相当大的话题,你正在冒险:) 您可以阅读很多关于它的书籍和文章,但我将尝试提供一个简短的介绍。我不是专家,但我从事过其中的一些工作。

首先,您需要决定是要将论文分类到预定义的主题/类别(分类问题),还是希望算法自行决定不同的组(聚类问题)。从您的描述来看,您似乎对分类感兴趣。

现在,在进行分类时,首先需要创建足够的训练数据。您需要将许多论文分成不同的组。例如 5 篇物理论文、5 篇化学论文、5 篇编程论文等等。通常,您需要尽可能多的训练数据,但多少就足够取决于特定的算法。您还需要验证数据,它与训练数据基本相似但完全独立。此数据将用于判断算法的质量(或数学方面的性能)。

最后,算法本身。我熟悉的两个是基于Bayes的和基于TF-IDF的。对于贝叶斯,我目前正在用 ruby​​ 为自己开发类似的东西,并且我已经在我的博客中记录了我的经验。如果您有兴趣,请阅读此 - 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”

关于nlp - 文档分析和标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5107371/

相关文章:

python - Fasttext .vec 和 .bin 文件之间的区别

mongodb - 使用 MongoDB 进行内容标记

php - 如何实现词性 (POS) 标注器

amazon-web-services - 编写 IAM 策略以通过 EC2 标签限制 AWS SSM 连接到 EC2 实例

c++ - OpenCV 随机决策森林 : How to get posterior probability

opencv - 车辆分割和跟踪

从文本中提取日期

c - fastText 和 word2vec : NaNs in accuracy computation code

python - ViterbiParser 和 ChartParser 在 NLTK 中为 PCFG 返回 None

machine-learning - 属性的特征缩放