大家好,我正在进行一个项目,需要根据论文的标题将研究论文分类到相应的领域。例如,如果标题中出现“计算机网络”这个短语,那么这篇论文应该被标记为与“计算机网络”概念相关。我有300万篇研究论文的标题。所以我想知道我应该如何开始。我尝试使用tf-idf但没有得到实际结果。有人知道可以轻松完成这项任务的库吗?请推荐一个。我将不胜感激。
回答:
如果你事先不知道类别,那么这不是分类,而是聚类。基本上,你需要做以下几步:
- 选择算法。
- 选择和提取特征。
- 将算法应用于特征。
相当简单。你只需要选择最适合你的情况的算法和特征组合。
在谈到聚类时,有几种流行的选择。K-means被认为是最好的之一,并且有大量的实现,即使是在非专门的机器学习库中。另一个流行的选择是期望最大化(EM)算法。然而,这两者都需要对类别数量进行初步猜测。如果你甚至无法大致预测类别数量,其他算法——如层次聚类或DBSCAN——可能更适合你(参见这里的讨论)。
至于特征,通常情况下,单词本身对于按主题进行聚类效果很好。只需分词你的文本,标准化并向量化单词(如果你不知道这些是什么意思,请参见这里)。
一些有用的链接:
注意:本回答中的所有链接都是关于Python的,因为它有非常强大且方便的工具来完成这类任务,但如果你有其他偏好的语言,你很可能也能找到类似的库。