概述
我必须将文章分类到我的自定义类别中.所以我选择了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 – 分类器的文本特征提取所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复