Scikit Learn在整个语料库

时间:2016-10-20 14:58:32

标签: python pandas scipy scikit-learn tf-idf

我想做两件事。

  1. 根据TFIDF查找语料库中最具代表性的单词 的措施。
  2. 找到最具代表性的单词 同一语料库。
  3. 我在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。

0 个答案:

没有答案