Python 分配;";到检测到的总字数

Python 分配;";到检测到的总字数,python,pandas,dataframe,nlp,Python,Pandas,Dataframe,Nlp,对于当前的项目,我计划计算给定数据帧中的总字数。下面的代码基于SciKit学习,并为识别的每个单词指定频率,但需要定义所考虑单词的总量n 不过,我希望计算数据帧中的总字数。有没有办法将n设置为一个无穷大的数字,以覆盖数据框中的所有相关字,然后计算这些相关字的总和(即不显示经理:10,“办公室”:5但总字数:15) 在给定的示例中,我使用10000作为要考虑的字数(通过行common\u words1=get\u top\u n\u bigram\u Group1(df[I],100000)),但

对于当前的项目,我计划计算给定数据帧中的总字数。下面的代码基于SciKit学习,并为识别的每个单词指定频率,但需要定义所考虑单词的总量
n

不过,我希望计算数据帧中的总字数。有没有办法将
n
设置为一个无穷大的数字,以覆盖数据框中的所有相关字,然后计算这些相关字的总和(即不显示
经理:10,“办公室”:5
总字数:15

在给定的示例中,我使用
10000
作为要考虑的字数(通过行
common\u words1=get\u top\u n\u bigram\u Group1(df[I],100000)
),但我想知道是否有更灵活/自动化的方法

相关代码部分如下所示:

# Word frequency analysis
def get_top_n_bigram_Group1(corpus, n=None):
    vec = CountVectorizer(ngram_range=(1, 1), stop_words='english').fit(corpus)
    bag_of_words = vec.transform(corpus)
    sum_words = bag_of_words.sum(axis=0)
    words_freq = [(word, sum_words[0, idx]) for word, idx in vec.vocabulary_.items()]
    words_freq =sorted(words_freq, key = lambda x: x[1], reverse=True)
    return words_freq[:n]


for i in ['txt_pro','txt_con','txt_adviceMgmt','txt_main']:
    # Loop over the common words inside the JSON object
    common_words1= get_top_n_bigram_Group1(df[i], 100000)
    common_words1.to_csv('out1.csv')

如果我正确理解您的目的,下面的返回语句应该可以完成这项工作。您根本不需要使用
n

换行

return words_freq[:n]
对此

return {'total_words': sum(frequency for word, frequency in words_freq)}

相关词语是什么?是否要包括
单词\u freq
中的所有单词。如果是这样,那就不要用
n
作为阈值。谢谢您的输入。相关单词是文件中包含的所有单词
words\u freq
显示最频繁的单词,直到达到
n
(即,如果
n
=100,则显示最频繁的100个单词)。好主意-我尝试过,但它将以空数据框作为输出…好的,您可以在问题中详细说明您所需的输出是什么吗?你想要全部的单词。数据帧输出应该是什么?您的函数不返回数据帧。理想情况下,我希望输出
“总字数”:23124,即文本中的总字数指示。如果不清楚,我道歉