【问题标题】:How to get the highest tf-idf values of words for each class after using tfidf.vectorizer使用 tfidf.vectorizer 后如何获取每个类的单词的最高 tf-idf 值
【发布时间】:2021-01-22 03:26:05
【问题描述】:

所以我有一个包含 3 个标签的数据集:足球、音乐和电影 我使用 tfidf.vectorizer 和逻辑回归来训练我的模型,现在我想获得每个标签具有最高 tfidf 的 5 个单词的列表。 (足球最高 5 分,音乐最高 5 分……) 我找不到获取它们的方法。

这是我的代码

le = preprocessing.LabelEncoder()
y = le.fit_transform(data["Label"])
tfidf = TfidfVectorizer(analyzer = 'word')
X = tfidf.fit_transform(data["text"])

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.1)
lr = LogisticRegression()
lr.fit(X_train, y_train)
lr.score(X_test,y_test)

感谢您的帮助。

【问题讨论】:

    标签: python pandas scikit-learn nlp tokenize


    【解决方案1】:

    这不是 TFIDF 的工作方式。矢量化器计算每个文档的单词分数,而不是类别。

    要获得每个文档的分数,请使用

    X.nonzero()
    

    如果您想获得每个类别的 TFIDF 分数,那么我建议将同一类别中的所有文本汇集到一个文档中,然后再次运行 TF-IDF。

    【讨论】:

      猜你喜欢
      • 2018-03-23
      • 2019-03-15
      • 2019-06-09
      • 2021-02-20
      • 2017-12-27
      • 2016-08-07
      • 2019-11-16
      • 2019-06-12
      • 2021-02-24
      相关资源
      最近更新 更多