### 文档分析与标记

假设我有一大堆论文(数千篇),我想对它们进行标记、分类等。理想情况下,我希望通过手动分类/标记几百篇来训练某物,然后让它自由发挥。

你推荐哪些资源(书籍、博客、语言)来完成这样的任务?我部分认为这可能适合使用贝叶斯分类器,甚至是潜在语义分析,但我对这两者都不太熟悉,仅从几个ruby gem中了解了一些信息。

这种问题可以用贝叶斯分类器解决吗?我应该更多地关注语义分析/自然语言处理吗?还是应该寻找关键词密度并从那里进行映射?


回答:

哇,你要探索的这个话题相当庞大 🙂 确实有很多书籍和文章可以阅读,但我会尝试提供一个简短的介绍。我不是这方面的专家,但我做过一些相关的工作。

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

现在,在进行分类时,你首先需要创建足够的训练数据。你需要有一定数量的论文,这些论文被分成不同的组。例如,5篇物理论文,5篇化学论文,5篇编程论文等等。一般来说,你希望尽可能多地获得训练数据,但具体需要多少取决于特定的算法。你还需要验证数据,这基本上与训练数据类似,但完全独立。这组数据将用于评估算法的质量(或数学术语中的性能)。

最后,算法本身。我熟悉的两种算法是基于贝叶斯的和基于TF-IDF的。对于贝叶斯,我目前正在用ruby开发一个类似的项目,我在博客中记录了我的经验。如果你有兴趣,可以阅读这个 – http://arubyguy.com/2011/03/03/bayes-classification-update/,如果你有任何后续问题,我会尽力回答。

TF-IDF是术语频率-逆文档频率的缩写。基本思想是对于给定的文档,找到训练集中与之最相似的若干文档,然后根据这些文档确定其类别。例如,如果文档D与T1(物理)和T2(物理)相似,而T3(化学)相似,你可以猜测D最可能关于物理,还有一点化学。

实现方式是给稀有词汇赋予更高的重要性,而对常见词汇不赋予重要性。例如,’nuclei’是稀有的物理词汇,但’work’是非常常见的无趣词汇。(这就是为什么它被称为逆文档频率)。如果你能使用Java,有一个非常好的Lucene库,可以开箱即用地提供这些功能。查找’相似文档’的API,并研究其实现方式。或者,如果你想自己实现,只需搜索’TF-IDF’即可。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注