Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Scikit Learn通过TFIDF在整个语料库的子集中查找最具代表性的单词_Python_Pandas_Scipy_Scikit Learn_Tf Idf - Fatal编程技术网

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

我想做两件事

  • 在基于TFIDF的语料库中查找最具代表性的单词 措施
  • 找到最具代表性的单词作为单词的子集 同样的语料库
  • 我有一个大约10000条文本的语料库,保存在熊猫数据框架的一列中,我已经使用整个语料库创建了一个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矩阵中查找相应的部分,然后打印一组具有代表性的关键字。代码是从另一个堆栈提交中改编而来的

    这为我提供了代表每个单独文档的关键字,但我需要一个代表整个子语料库的关键字列表。我想对问题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")