我知道这个问题比较奇怪。。。
最近在拿 sklearn 做中文文本分类器,
网上找到的例子都是拿带标签的数据,二八划分后,八成用于训练模型,两成用于测试,
然后分析测试结果看精确度。
现在,我已经使用训练数据做好了模型训练(存在文本分类器的对象了),
拿一段之前数据集里面没有的文本数据,使用训练好的文本分类器做类别预测,
问题是如何拿到预测的类别的名称呢。。。
代码如下:
# cls 是之前已经训练好的文本分类器对象
pred = clf.predict(X_new)
怎样从预测结果 pred ( ndarray )获取到分类的类别名称呢?
我有尝试过如下的方式去获取:
label_list = list()
for index in pred:
label_list.append(training_data.target_names[index])
total = len(label_list)
label_counts = Counter(label_list)
print basename(file_path)
for label, cnt in label_counts.most_common(3):
print '%s of %.4f' % (label, float(cnt)/total)
主要就是用测试结果比对训练数据的标签: training_data.target_names
但是这样出来的预测类别名称显然不对(测试了多次,包括拿训练数据也再次做了预测,基本都不对)。
不知道哪位可以指点一二,感激不尽~~~