栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在scikit-learn中查看tfidf之后的术语文档矩阵的前n个条目

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在scikit-learn中查看tfidf之后的术语文档矩阵的前n个条目

从0.15版开始,

TfidfVectorizer
可以通过属性访问由a获知的特征的全局项加权,该属性
idf_
将返回一个长度等于特征维的数组。按此权重对要素进行排序,以获得权重最高的要素:

from sklearn.feature_extraction.text import TfidfVectorizerimport numpy as nplectures = ["this is some food", "this is some drink"]vectorizer = TfidfVectorizer()X = vectorizer.fit_transform(lectures)indices = np.argsort(vectorizer.idf_)[::-1]features = vectorizer.get_feature_names()top_n = 2top_features = [features[i] for i in indices[:top_n]]print top_features

输出:

[u'food', u'drink']

使用ngram获取主要功能的第二个问题可以使用相同的想法来完成,还有一些额外的步骤将功能分为不同的组:

from sklearn.feature_extraction.text import TfidfVectorizerfrom collections import defaultdictlectures = ["this is some food", "this is some drink"]vectorizer = TfidfVectorizer(ngram_range=(1,2))X = vectorizer.fit_transform(lectures)features_by_gram = defaultdict(list)for f, w in zip(vectorizer.get_feature_names(), vectorizer.idf_):    features_by_gram[len(f.split(' '))].append((f, w))top_n = 2for gram, features in features_by_gram.iteritems():    top_features = sorted(features, key=lambda x: x[1], reverse=True)[:top_n]    top_features = [f[0] for f in top_features]    print '{}-gram top:'.format(gram), top_features

输出:

1-gram top: [u'drink', u'food']2-gram top: [u'some drink', u'some food']


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/626498.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号