machine-learning - 识别区分类别时最有用的单词

标签 machine-learning nlp text-mining

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

最佳答案

您可以让 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]])

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

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

关于machine-learning - 识别区分类别时最有用的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41729043/

相关文章:

python - 使用 sklearn 计算关键字频率仅产生零计数

python - 如何使用 word2vec 找到最接近向量的单词

machine-learning - 除了深度学习以外,还有什么方法可以使问答机器人更好地表现?

facebook-graph-api - 识别印度名字的NER模型

python - 有效检查相邻准确性(组成员资格?)

python - 为什么 `gensim` 中的 tf-idf 模型在我转换语料库后丢弃了术语和计数?

python - 关键字匹配在 pandas 列中给出重复的单词?

python - 使用 nltk 和 scikit-learn 从文本中为标签云挑选最相关的词

matlab - 如何在 Matlab 中增量训练神经网络?

python - Pytorch:如何创建不是来自衍生品的更新规则?