我是靠谱客的博主 妩媚豌豆,最近开发中收集的这篇文章主要介绍python文本特征提取实例_Python – SciKit – 分类器的文本特征提取,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

我必须将文章分类到我的自定义类别中.所以我选择了SciKit的MultinomialNB.我正在监督学习.所以我有一个编辑每天查看文章,然后标记它们.标记后,我将它们包含在我的学习模型中,依此类推.下面是用于了解我正在做什么和使用的代码. (我不包括任何进口线,因为我只是想让你知道我在做什么)(

Reference)

corpus = (train_set)

vectorizer = HashingVectorizer(stop_words='english', non_negative=True)

x = vectorizer.transform(corpus)

x_array = x.toarray()

data_array = np.array(x_array)

cat_set = list(cat_set)

cat_array = np.array(cat_set)

filename = '/home/ubuntu/Classifier/Intelligence-MultinomialNB.pkl'

if(not os.path.exists(filename)):

classifier.partial_fit(data_array,cat_array,classes)

print "Saving Classifier"

joblib.dump(classifier, filename, compress=9)

else:

print "Loading Classifier"

classifier = joblib.load(filename)

classifier.partial_fit(data_array,cat_array)

print "Saving Classifier"

joblib.dump(classifier, filename, compress=9)

现在我在自定义标记后准备好了一个分类器,它适用于新文章并且像魅力一样工作.现在需要针对每个类别获得最频繁的单词.总之,我必须从学习模型中提取特征.通过调查documentation,我发现在学习时如何提取文本特征.

但是一旦学会了,我只有模型文件(.pkl),是否可以加载该分类器并从中提取特征?

是否有可能针对每个班级或类别获得最频繁的条款?

最佳答案 您可以使用feature_count_属性访问这些功能.这将告诉您特定功能发生了多少次.例如:

# Imports

import numpy as np

from sklearn.naive_bayes import MultinomialNB

# Data

X = np.random.randint(3, size=(3, 10))

X2 = np.random.randint(3, size=(3, 10))

y = np.array([1, 2, 3])

# Initial fit

clf = MultinomialNB()

clf.fit(X, y)

# Check to see that the stored features are equal to the input features

print np.all(clf.feature_count_ == X)

# Modify fit with new data

clf.partial_fit(X2, y)

# Check to see that the stored features represents both sets of input

print np.all(clf.feature_count_ == (X + X2))

在上面的示例中,我们可以看到feature_count_属性只不过是每个类的要素数量的运行总和.使用此功能,您可以从分类器模型向后移动到功能,以确定功能的频率.不幸的是,你的问题更复杂,你现在需要再回头一步,因为你的功能不仅仅是单词.

这是坏消息的来源 – 您使用了HashingVectorizer功能提取器.如果你参考the docs:

there is no way to compute the inverse transform (from feature indices to string feature names) which can be a problem when trying to introspect which features are most important to a model.

因此,即使我们知道功能的频率,我们也无法将这些功能转换回单词.如果您使用了不同类型的特征提取器(可能是在同一页面上引用的那个,CountVectorizer),情况将完全不同.

简而言之 – 您可以从模型中提取要素并按类确定其频率,但不能将这些要素转换回单词.

要获得所需的功能,您需要重新开始使用可逆映射功能(一种功能提取器,允许您将单词编码为功能并将功能解码为单词).

最后

以上就是妩媚豌豆为你收集整理的python文本特征提取实例_Python – SciKit – 分类器的文本特征提取的全部内容,希望文章能够帮你解决python文本特征提取实例_Python – SciKit – 分类器的文本特征提取所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(29)

评论列表共有 0 条评论

立即
投稿
返回
顶部