博客
关于我
第7章-1 词频统计 (30分)【Python版本】
阅读量:193 次
发布时间:2019-02-28

本文共 1214 字,大约阅读时间需要 4 分钟。

为了解决这个问题,我们需要编写一个Python程序来统计一段英文文本中的所有不同单词,并找出词频最大的前10%的单词。以下是详细的解决方案。

方法思路

  • 读取输入:首先读取用户输入的文本,并去掉末尾的#符号。
  • 预处理文本:将所有非法字符替换为空格,然后将文本转换为小写字母。
  • 分割单词:将处理后的文本按空格分割成单词列表。
  • 截断单词:对超过15个字符的单词进行截断,只保留前15个字符。
  • 统计单词频率:使用字典记录每个单词的出现次数。
  • 排序单词:根据单词频率和字典序对单词进行排序。
  • 输出结果:输出所有不同单词的总数,随后输出词频最大的前10%的单词。
  • 解决代码

    import systext = sys.stdin.read().strip('#')# 替换非法字符为空格,并将所有字符转换为小写processed = []for c in text:    if c.isalnum() or c == '_':        processed.append(c.lower())    else:        processed.append(' ')text = ''.join(processed).strip()# 分割单词words = text.split()# 截断超过15个字符的单词for i in range(len(words)):    if len(words[i]) > 15:        words[i] = words[i][:15]# 统计单词频率word_counts = {}for word in words:    word_counts[word] = word_counts.get(word, 0) + 1# 按词频降序和字典序升序排序sorted_words = sorted(word_counts.items(), key=lambda x: (-x[1], x[0]))# 输出结果print(len(sorted_words))num_to_output = int(len(sorted_words) / 10)for i in range(num_to_output):    print(f"{sorted_words[i][1]}:{sorted_words[i][0]}")

    代码解释

  • 读取输入:使用sys.stdin.read()读取所有输入内容,并去掉末尾的#符号。
  • 预处理文本:遍历每个字符,保留字母、数字和下划线,将其转换为小写,其他字符替换为空格。
  • 分割单词:将预处理后的文本按空格分割成单词列表。
  • 截断单词:检查每个单词的长度,如果超过15个字符,则截断为前15个字符。
  • 统计单词频率:使用字典记录每个单词的出现次数。
  • 排序单词:根据频率降序和字典序升序对单词进行排序。
  • 输出结果:输出所有单词的数量,随后输出前10%的高频单词及其频率。
  • 转载地址:http://dbii.baihongyu.com/

    你可能感兴趣的文章
    Position属性四个值:static、fixed、absolute和relative的区别和用法
    查看>>
    POSIX thread编程中关于临界区内条件变量的分析
    查看>>
    POSIX与程序可移植性
    查看>>
    posix多线程有感--自旋锁
    查看>>
    SpringBoot中集成海康威视SDK实现布防报警数据上传/交通违章图片上传并在linux上部署(附示例代码资源)
    查看>>
    POSIX标准和XSI扩展
    查看>>
    post install error,please remove node_moules before retry
    查看>>
    postcss-pxtorem 参数之selectorBlackList、exclude的用法
    查看>>
    Postek博思得标签打印机更换电脑,打印出来标签空白
    查看>>
    postfix+ dovecot搭建邮件服务器
    查看>>
    postfix在邮件服务器中的使用
    查看>>
    PostGIS 3.1.2软件安装详细教程(地图工具篇.8)
    查看>>
    PostGIS中获取所有EPSG的编码以及对应Proj4字符串
    查看>>
    PostGIS在Windows上的下载与安装
    查看>>
    Qt开发——网络编程之UDP客户端
    查看>>
    postgis数据库优化_postgresql 性能优化
    查看>>
    postgis求面积、交集等相关函数
    查看>>
    postgis相关函数
    查看>>
    Postgres Docker版本安装mysql_fdw 插件
    查看>>
    Postgres invalid command \N数据恢复处理
    查看>>