Python Scikit Learn通过TFIDF在整个语料库的子集中查找最具代表性的单词
我想做两件事Python Scikit Learn通过TFIDF在整个语料库的子集中查找最具代表性的单词,python,pandas,scipy,scikit-learn,tf-idf,Python,Pandas,Scipy,Scikit Learn,Tf Idf,我想做两件事 在基于TFIDF的语料库中查找最具代表性的单词 措施 找到最具代表性的单词作为单词的子集 同样的语料库 我有一个大约10000条文本的语料库,保存在熊猫数据框架的一列中,我已经使用整个语料库创建了一个tfidf矩阵 corpus = df['clean_text'] tf = TfidfVectorizer(analyzer='word', ngram_range=(1,3), min_df = 0, stop_words = 'english') tfid_matrix = t
corpus = df['clean_text']
tf = TfidfVectorizer(analyzer='word', ngram_range=(1,3), min_df = 0, stop_words = 'english')
tfid_matrix = tf.fit_transform(corpus)
我还可以查询我的Pandas Dataframedf
,为我提供包含查询词的文档索引列表
def get_subset_index(df,query):
query_list = df[df['clean_text'].str.contains(query,case=False)].index.tolist()
return list(query_list)
query_list = get_subset_index(df,'myquery')
然后,我在下面的代码中使用此列表,该代码使用每个索引号在tfidf矩阵中查找相应的部分,然后打印一组具有代表性的关键字。代码是从另一个堆栈提交中改编而来的
这为我提供了代表每个单独文档的关键字,但我需要一个代表整个子语料库的关键字列表。我想对问题2的回答也会对问题1有所帮助
top_n = 10
query_list = get_subset_index(df,'algorithm')
for i in query_list:
wordindexes = tfid_matrix.getrow(i).todense().A1.argsort()[-top_n:][::-1]
print (wordindexes)
wordfeatures = tf.get_feature_names()
for i in wordindexes:
print (wordfeatures[i])
print ("-----------------------next doc")