亲爱的我正在做一个项目,在这个项目中,我必须使用论文标题将研究论文归类到相应的领域。例如,如果短语“计算机网络”出现在标题的某处,则应将本文标记为与概念“计算机网络”相关。我拥有300万本研究论文。所以我想知道我应该如何开始。我尝试使用tf-idf,但无法获得实际结果。有人知道图书馆可以轻松地完成此任务吗?请提出一个。我会很感激的。

最佳答案

如果您不预先知道类别,那么它不是分类,而是聚类。基本上,您需要执行以下操作:


选择算法。
选择并提取特征。
将算法应用于特征。


非常简单。您只需要选择最适合您的情况的算法和功能组合即可。

在谈论集群时,有几种流行的选择。 K-means被认为是最好的方法之一,甚至在非ML专业的库中也具有大量实现。另一个流行的选择是期望最大化(EM)算法。但是,这两者都需要对类数进行初步猜测。如果您甚至无法预测类的数量,那么其他算法(例如层次集群或DBSCAN)可能会更好地为您服务(请参见讨论here)。

至于功能,单词本身通常可以很好地按主题进行聚类。只需对文本进行标记,对单词进行规范化和向量化(如果不知道全部含义,请参见this)。

一些有用的链接:


Clustering text documents using k-means
NLTK clustering package
Statistical Machine Learning for Text Classification with scikit-learn and NLTK


注意:此答案中的所有链接都是关于Python的,因为它确实具有用于此类任务的强大而便捷的工具,但是,如果您有另一种偏好的语言,您很可能也可以为其找到类似的库。

08-18 02:07