亲爱的我正在开展一个项目,在这个项目中,我必须使用论文题目将研究论文分类到适当的领域。例如,如果短语“计算机网络”出现在标题中的某处,则应将本文标记为与“计算机网络”概念相关。我有300万篇研究论文。所以我想知道我应该如何开始。我曾尝试使用tf-idf但无法获得实际结果。有人知道图书馆可以轻松完成这项任务吗?请建议一个。我会感激的。
答案 0 :(得分:1)
如果您事先不知道类别,那么它不是分类,而是聚类。基本上,您需要执行以下操作:
非常简单。您只需选择最适合您情况的算法和功能组合。
在谈论群集时,有几种流行的选择。 K-means 被认为是最好的之一,并且拥有大量的实现,即使在非专业ML的库中也是如此。另一种流行的选择是期望最大化(EM)算法。但是,它们都需要对类的数量进行初步猜测。如果您无法大致预测课程数量,其他算法(如分层聚类或 DBSCAN )可能会对您有所帮助(请参阅讨论here) 。
至于功能,单词本身通常可以按主题进行聚类。只需标记化您的文字,规范化和矢量化字词(如果您不知道这意味着什么,请参阅this)。
一些有用的链接:
注意:这个答案中的所有链接都是关于Python的,因为它为这类任务提供了非常强大而方便的工具,但是如果你有另一种偏好语言,你很可能也能找到类似的库。 。
答案 1 :(得分:0)
对于Python,我建议使用NLTK(自然语言工具包),因为它有一些很棒的工具可以将原始文档转换为可以提供给机器学习算法的功能。首先,您可以尝试一个简单的单词频率模型(单词包),然后转向更复杂的特征提取方法(字符串内核)。您可以首先使用SVM(支持向量机)使用LibSVM(最好的SVM包)对数据进行分类。
答案 2 :(得分:0)
事实上,您事先不知道类别的数量,您可以使用名为OntoGen的工具。该工具基本上采用一组文本,进行一些文本挖掘,并尝试发现文档集群。它是一个半监督工具,所以你必须指导一点这个过程,但它确实很奇怪。该过程的最终产品是主题的本体论。
我鼓励你,试一试。