m0_64542878 2022-10-22 23:02 采纳率: 85.7%
浏览 49
已结题

python的jieba拓展库使用,并用matplotlib和wordcloud生成词云

安装第三方扩展库jieba,用该库所提供的一些方法,对下面的新闻进行分词,分词后统计每个词的出现次数,最终输出统计结果,每行显示5个字词的统计结果。【参考代码行数:35行】
提示:(1)不要统计各种标点,
如:punctuation=r'[’!"#$%&'()*+,-./:;?@[\]^_`{|}~]+,、。\n “”();—'
(2)不要统计数值,如228等。
例文:
10月12日至15日,第七届中国国际“互联网+”大学生创新创业大赛全国总决赛在南昌大学举行。经过激烈的竞争,我校通信与信息工程学院“天问一号风筝线”项目、电子与光学工程学院、微电子学院“5G基站功放行业领跑者”项目、计算机学院、软件学院、网络空间安全学院“至强之芯-高性能通用型eFPGA芯片及系统”项目、材料科学与工程学院“视界中国-打造国产一流柔性显示材料”项目从来自国内外121个国家和地区、4347所院校、228万余个项目中突出重围,斩获四项国赛金奖,主赛道获金奖总数位居全省第一,并列全国第六。“天问一号风筝线”和“视界中国-打造国产一流柔性显示材料”两个项目均以小组第一名入围全国三强排位赛,并分获全国第10和第17,入选排位赛数量和成绩均名列全省第一。我校同时获得主赛道高校集体奖(全国仅20所高校),这是继去年我校首次在该项赛事中斩获金奖后,再次刷新历史最好成绩。
我校第七届“互联网+”大学生创新创业大赛于2020年11月启动,自大赛启动以来,在学校领导下,教务处、创新创业学院和相关学院制定了详细备赛工作方案,并针对项目选题、申报材料、项目路演、项目答辩等多个环节反复打磨。面对备赛关键时刻突如其来的新冠肺炎疫情,学校上下科学应对,项目成员团结一心,通过制定实施在线培训方案,保证对各项目的持续指导,不断打磨细化,各项工作按计划稳步推进。校党委书记刘陈、校长叶美兰等学校主要领导多次关心项目进展情况,校党委常委、副校长孙力娟以及相关学院领导多次参加培训研讨、模拟路演,现场指导项目准备工作,并为参赛老shi(汉字)和同学们加油鼓劲。信息化建设与管理办公室、后勤管理处、研究生院、学生工作处等部门为团队备赛提供后勤保障工作。经过一年多的坚持和努力,历经校赛、省赛、国赛多个环节,我校在第七届中国国际“互联网+”大学生创新创业大赛共有22个项目获得省级奖(一等奖11项、二等奖5项、三等奖6项)。
学校一贯高度重视创新创业教育工作,建立了完善的创新人才培养机制。近年来,学校不断完善优化国-省-校-院四层次创新实践教育平台,构建“课程—模块—训练”分层递进创新能力培养体系,创新训练贯穿育人全过程;紧贴行业发展,创建“基础训练、综合拓展、自主研创”三层次,课内课外结合、校内校外互通生态链条式实践教学体系;制定“一赛一院”制度以竞赛促创新,制定“三进三早”制度以科研强创新,制定“四步育苗”孵化制度以创业助创新;实施“一市一院一特色”“一企一技一平台”,推进政产学研用全方位协同育人新机制,拓展创新人才培养的新空间。多措并举,玉汝于成,创新是南邮学生的气质,“无创新、不南邮”也早已成为南邮创新文化的名片。
预计效果:

img

img

  • 写回答

1条回答 默认 最新

  • chuifengde 2022-10-23 00:24
    关注

    首先可以在网上下一个停用词文本:hit_stopwords.txt,然后将你的文章写到一个文本文件“文章.txt”中,代码如下:

    from collections import Counter
    import jieba
    import wordcloud as wc
    import matplotlib.pyplot as plt
    import re
    
    with open("文章.txt", encoding='utf-8') as f:
        content = f.read()
        content = re.sub(r"\d+", '', content)
    with open("hit_stopwords.txt",encoding= 'utf-8') as f:
        stopword = f.read()
    res = jieba.lcut(content)
    res = Counter(res)
    
    result = {k: v for k,v in res.items() if k not in stopword and len(k) > 1 and v > 1}
    res = sorted(result.items(), key=lambda x: x[1], reverse=True)
    for i, (k, v) in enumerate(res, 1):    
        print(f"{k: >5}-->{v:>2}", end = '')
        if i % 5 == 0:
            print()    
    result = [i[0] for i in res][:200]
    word = wc.WordCloud(background_color='white', 
        width=800,
        height=800,
        font_path='msyh.ttc',
        )
    word.generate(' '.join(result))
    
    plt.subplots(figsize=(12, 8))
    plt.imshow(word)
    plt.show()
    
    

    效果如下图:

    img

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 10月31日
  • 已采纳回答 10月23日
  • 创建了问题 10月22日

悬赏问题

  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效