Python词频统计(数据整理)

 请编写程序,对一段英文文本,统计其中所有不同单词的个数,以及词频最大的前10%的单词。

输入格式:

 输入给出一段非空文本,最后以符号#结尾。输入保证存在至少10个不同的单词。

输出格式:

 在第一行中输出文本中所有不同单词的个数。注意“单词”不区分英文大小写。随后按照词频递减的顺序,按照 <词频:单词> 的格式输出词频最大的前10%的单词。若有并列,则按递增字典序输出。

输入样例:

This is a test.

The word "this" is the word with the highest frequency.

Longlonglonglongword should be cut off, so is considered as the same as longlonglonglonee.  But this_8 is different than this, and this, and this...#
this line should be ignored.

输出样例:

23
5:this
4:is

(注意:虽然单词the也出现了4次,但因为我们只要输出前10%(即23个单词中的前2个)单词,而按照字母序,the排第3位,所以不输出。) 

代码示例 :

#定义临时文本段落
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)

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

  • 21
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 以下是一个使用Python的程序,可以统计一位诗人的作品中出现频率最高的单词: ```python import requests from bs4 import BeautifulSoup from collections import Counter # 输入要统计的诗人的姓名和作品网址 poet_name = input("输入诗人姓名:") url = input("输入作品网址:") # 获取网页内容 response = requests.get(url) soup = BeautifulSoup(response.content, 'html.parser') # 获取所有的诗词内容 poems = soup.find_all('div', {'class': 'contson'}) # 统计词频 words = [] for poem in poems: lines = poem.text.strip().split('\n') for line in lines: words.extend(line.split()) counter = Counter(words) # 输出结果 print("{}的作品中出现频率最高的单词是:{}".format(poet_name, counter.most_common(1)[0][0])) ``` 这个程序会提示用户输入诗人的姓名和作品的网址,然后使用Requests库和BeautifulSoup库获取网页内容,并提取出所有的诗词内容。接着,程序会把所有的单词存储到一个列表中,并使用Counter库统计每个单词出现的次数。最后,程序会输出出现频率最高的单词注意,这个程序只是一个简的示例,仅仅能够统计单词的出现频率。如果你想要更复杂的分析结果,你可能需要使用更加高级的自然语言处理工具或者人工智能算法。 ### 回答2: Python诗人作品统计是指使用Python编程语言来分析和统计诗人的作品的数量和特征。通过编写Python程序,我们可以使用文本处理技术和数据分析算法来完成这项任务。 首先,我们需要将诗人的作品转化为文本文件或在程序中进行文本获取。可以通过网络爬虫技术从网上获取诗人的作品集,或者手动整理文本文件。 接下来,我们可以使用Python文本处理库,如NLTK(Natural Language Toolkit)来对诗人的作品进行分词和文本清洗。通过分词,我们可以将每个词语独提取出来,形成词语库,这有助于后续的统计和分析。 然后,我们可以使用Python统计库,如Pandas和NumPy,对诗人的作品进行统计分析。例如,我们可以统计每个诗人的总诗数,平均每首诗的字数,诗人使用频率最高的词语等。 此外,我们还可以使用Python的可视化库,如Matplotlib和Seaborn,将统计结果可视化展示。可以绘制条形图、饼图或词云图等形式,更直观地呈现诗人作品的统计情况。 总之,使用Python编程语言进行诗人作品统计可以帮助我们快速而准确地了解诗人的创作情况和特点。通过统计分析,我们可以更好地理解诗人的文学风格、偏好和创作技巧,为文学研究和欣赏提供有益的参考。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

付之一笑」༻

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值