### 文档分析与标记

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

你推荐哪些资源(书籍、博客、语言)来完成这样的任务?我部分认为这可能适合使用贝叶斯分类器,甚至是潜在语义分析,但我对这两者都不太熟悉,仅从几个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

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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