【问题标题】:How to show name of predicted tags如何显示预测标签的名称
【发布时间】:2020-05-08 15:42:44
【问题描述】:

我正在研究标签预测。以下是部分代码:

from sklearn.feature_extraction.text import TfidfVectorizer
vectorizer = TfidfVectorizer(min_df=0.00009, max_features=200000, tokenizer = lambda x: x.split(), ngram_range=(1,3))
X_train_multilabel = vectorizer.fit_transform(X_train['question'])
X_test_multilabel = vectorizer.transform(X_test['question'])
from sklearn.multiclass import OneVsRestClassifier
from sklearn.linear_model import SGDClassifier
clf = OneVsRestClassifier(SGDClassifier(loss='log', alpha=0.00001, penalty='l2'))
clf.fit(X_train_multilabel, y_train)
y_pred = clf.predict(X_test_multilabel)

我将 y_pred 作为具有 1 和 0 的稀疏矩阵。现在我需要知道如何预测标签的名称。我正在使用 1000 个标签。所以 y_pred 有 1000 列。我怎么知道哪一列代表哪个标签。

【问题讨论】:

    标签: python scikit-learn nlp


    【解决方案1】:

    你需要找到class_labels,它应该是一个长度为1000的数组。

    一旦你得到这份清单,

    tags = ['cat', 'dogs', ...]#len 1000

    然后,您可以从y_pred 中选择这些标签,

    tag_y = [tags[i] if y_pred[i] == 1 for i in range(1000)]

    【讨论】:

      猜你喜欢
      • 2018-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-15
      相关资源
      最近更新 更多