我想做两件事。
我在Pandas数据框中的一列中有大约10,000条文本的语料库,并且我使用整个语料库创建了一个tfidf矩阵。
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 Dataframe df
,为我提供包含查询字词的文档索引列表。
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矩阵中的相应部分,然后打印一组代表性关键字。该代码改编自另一个Stack提交here。
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")
这为我提供了代表每个单独文档的关键字,但我想要一个代表整个子语料库的关键字列表。我认为这个问题2的答案也可以帮助我解决问题1。