Python 在Sklearn机器学习中,有没有方法在没有目标标签的情况下对文本进行分类?

Python 在Sklearn机器学习中,有没有方法在没有目标标签的情况下对文本进行分类?,python,machine-learning,scikit-learn,Python,Machine Learning,Scikit Learn,我想知道是否有任何方法可以使用Python和Sklearn机器学习的组合,根据文本中的单词将文本数据划分为不同的组/类别 例如: text = [["request approval for access", "request approval to enter premises", "Laptop not working"], ["completed bw table loading"]] 因此,我可以得到如下类别: category_label = [[0,0,2], [1]] categ

我想知道是否有任何方法可以使用Python和Sklearn机器学习的组合,根据文本中的单词将文本数据划分为不同的组/类别

例如:

text = [["request approval for access", "request approval to enter premises", "Laptop not working"], ["completed bw table loading"]]
因此,我可以得到如下类别:

category_label = [[0,0,2], [1]]
categories = [["approval request", "approval request", "Laptop working"], ["bw table"]]
在哪里

      0 = approval request
      2 = laptop working
      1 = bw table

基本上,上述情况意味着没有标记的训练数据或目标标签

您可以尝试一种聚类方法,但不能保证您得到的聚类与您想要的类别相对应,因为您没有清楚地解释您想要的算法

我要做的是手动标记一些数据(标记300个样本需要多长时间?)

如果这是不可能的,那么最好的办法是计算一个样本和每个类描述之间的余弦相似性,对它们进行排序,然后指定最接近的类。但在我看来,当你完成代码编写时,你可以手动标记一些样本,并训练一个精度更高的标准算法。

@user1452759


您的问题比一般的机器学习更具体,您应该使用包NLTK而不是sklearn。看看用nltk对文本进行分类,这在中和中都是很容易做到的

您列出的功能包括:

0 = approval request
2 = laptop working
1 = bw table

不是聚类算法自然会选择的,值得提醒您注意的是,使用启发式算法可能会给统计学习算法蒙上阴影。我建议你先尝试一些聚类和分类,然后考虑你可以标记你的集群并传播那些标签。< / P>我已经使用k-均值算法来聚类数据。但是聚类并不是那么准确。这就是我想使用DBSCAN(eps=0.85)对已经存在的Kmeans集群进行进一步集群的地方。这在理论上是可行的……但有些DBSCAN子集群中的记录只有1。这将使我的实际完整代码有点黑客。所以我想避免这样。对我来说,手动标记数据是不可能的,因为数据量很大!你不需要标记所有的数据,只需要几个样本来训练算法。然后使用经过训练的算法来预测其余的。除了“eps”参数(设置两个点在同一邻域中的最大距离)外,sk learn的DBSCAN算法还有一个“min_samples”参数,用于设置邻域的最小样本数。这个参数默认为5,所以我很惊讶您看到的核心集群只有一个成员。@AN6U5 OMG!你说得对!我已将min_样本设置为1!谢谢你指出这一点!