Python数据整理<词频统计

 请编写程序,对一段英文文本,统计其中所有不同单词的个数,以及词频最大的前10%的单词。注意“单词”不区分英文大小写,随后按照词频递减的顺序输出词频最大的前10%的单词,以及不同单词的个数。

#定义临时文本段落
text = ""
#定义文本统计字典
text_dic = {}
#多行输入
while True:
    #定义临时缓存并整理
    buffer = input().replace('.','').replace('"','').replace(',','').lower()
    if buffer:
        text += buffer + ' '
        if buffer[-1] == '#':
            text = text.replace('#', '')
            print('text',text)
            break
    else:
        continue
#剪切临时文本存入字典
for x in text.split(' '):
    if x == '':
        continue
    if x not in text_dic:
        text_dic[x] = 1
    else:
        text_dic[x] += 1
#从大到小值排序
sorted_dict = {k: v for k, v in sorted(text_dic.items(), key=lambda item: item[1],reverse = True)}
#文本前百分之十
top_10_percent = sum(sorted_dict.values()) * 0.1
top_10_percent_count = 0
#定义词的种数
words = 0
for x in sorted_dict:
    words += 1
    if top_10_percent_count < top_10_percent:
        top_10_percent_count += sorted_dict[x]
        print(f'{sorted_dict[x]}:{x}')
print(words)

以上代码全为本人亲自手敲,可能有一些错误和不足之处,如有更好的方法和建议,欢迎您在评论区友善讨论。

你可能感兴趣的:(python,python)