【问题标题】:Identifying the most useful words in differentiating between classes [duplicate]识别区分类的最有用的词[重复]
【发布时间】:2017-06-03 09:35:27
【问题描述】:

是否可以使用 tfidf(Python 中的 tfidfvectorizer)来确定在尝试区分 两个文本类别(即正面或负面情绪等)时哪些词最重要?例如,哪些词对于识别正类最重要,然后分别哪些词对于识别负类最有用?

【问题讨论】:

  • 您熟悉 PCA(主成分分析)吗?这就是你需要的想法,它将把你从典型的 BoW 或句子向量范式中拉出来,但应该会给你带来好的结果。

标签: machine-learning nlp text-mining


【解决方案1】:

您可以让 scikit learn 完成繁重的工作 - 在您的二叉树上训练一个随机森林,提取分类器的特征重要性排名并使用它来获取最重要的单词:

clf = RandomForestClassifier()
clf.fit(data, labels)

importances = clf.feature_importances_
np.argsort(importances)[::-1]

feature_names = vectorizer.get_feature_names()
top_words = []

for i in xrange(100):
    top_words.append(feature_names[indices[i]])

请注意,这只会告诉您最重要的词是什么,而不是它们对每个类别的说法。要说出每个单词对每个类别的意义,您可以对各个单词进行分类,看看它们的分类是什么。

另一种选择是获取所有正/负数据样本,从中删除您尝试理解的单词,看看这如何影响样本的分类。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-03
    • 2018-08-15
    • 2016-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多