在Sklearn机器学习中,有没有办法对没有目标标签的文本进行分类?
In Sklearn machine learning, is there any way to classify text without target labels?
我想知道是否有任何方法可以根据文本中的单词使用 Python 和 Sklearn 机器学习的组合将文本数据分类为不同的 groups/categories?
例如:
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 个样本需要多长时间?)并对其进行训练,以便您的算法可以学习与每个 class 相关的单词。
如果这不可能,那么最好的办法是计算一个样本与每个 class 描述之间的余弦相似度,对它们进行排序,然后分配最接近的 class。但在我看来,当你完成编码时,你可以手动标记一些样本并训练一个精度更高的标准算法。
@user1452759
你的问题比一般的机器学习更具体,你应该使用包 NLTK 而不是 sklearn。查看使用 nltk http://www.nltk.org/book/ch06.html
对文本进行分类
这在 Scikit-Learn as well as in NLTK 中很容易实现。
您列出的功能:
0 = approval request
2 = laptop working
1 = bw table
不是聚类算法自然会选择的那些,值得提醒您避免使用启发式算法混淆统计学习算法的可能错误。我建议您首先尝试一些聚类和分类,然后考虑 semi-supervised learning methods 从而可以标记您的聚类并传播这些标签。
我想知道是否有任何方法可以根据文本中的单词使用 Python 和 Sklearn 机器学习的组合将文本数据分类为不同的 groups/categories?
例如:
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 个样本需要多长时间?)并对其进行训练,以便您的算法可以学习与每个 class 相关的单词。
如果这不可能,那么最好的办法是计算一个样本与每个 class 描述之间的余弦相似度,对它们进行排序,然后分配最接近的 class。但在我看来,当你完成编码时,你可以手动标记一些样本并训练一个精度更高的标准算法。
@user1452759
你的问题比一般的机器学习更具体,你应该使用包 NLTK 而不是 sklearn。查看使用 nltk http://www.nltk.org/book/ch06.html
对文本进行分类这在 Scikit-Learn as well as in NLTK 中很容易实现。
您列出的功能:
0 = approval request
2 = laptop working
1 = bw table
不是聚类算法自然会选择的那些,值得提醒您避免使用启发式算法混淆统计学习算法的可能错误。我建议您首先尝试一些聚类和分类,然后考虑 semi-supervised learning methods 从而可以标记您的聚类并传播这些标签。