kaiyun 手把手教你对文本文献进行分词、词频统计和可视化(附源码)
kaiyun下载 首页 关于我们 产品中心 新闻资讯 在线招聘 联系我们
  • 首页
  • 关于我们
  • 产品中心
  • 新闻资讯
  • 在线招聘
  • 联系我们
  • kaiyun 手把手教你对文本文献进行分词、词频统计和可视化(附源码)
    发布日期:2023-12-09 13:16    点击次数:117

     kaiyun​[[438532]]​

    大师好!我是Python进阶者。

    媒介

    前几天一个在校大学生问了一些对于词频、分词和可视化方面的问题,连合爬虫,如实可以作念点东西出来,可以玩玩,还是蛮可以的,这里整理成一篇著述,共享给大师。

    本文主要波及的库有爬虫库requests、词频统计库collections、数据处理库numpy、防碍分词库jieba 、可视化库pyecharts等等。

    一、数据起首

    对于数据方面,这里平直是从头闻平台上进行获得的文本信息,其实这个文本文献可以拓张开来,你可以自界说文本,也可以是讲授,营业讲授,政事讲授等,也可以是新闻平台,也可以是论文,也可以是微博热评,也可以是网易云音乐热评等等,惟一波及到多量文本的,齐可月援用本文的代码,进行词频分词、统计、可视化等。

    二、数据获得

    数据获得极度通俗,一个通俗的爬虫和存储就可以责罚,这里以一篇新闻为例进行演示,代码如下:

    import reimport collections  # 词频统计库import numpy as np # numpy数据处理库import jieba  # 防碍分词import requestsfrom bs4 import BeautifulSoupfrom pyecharts import options as optsfrom pyecharts.charts import WordCloudfrom pyecharts.globals import SymbolTypeimport warningswarnings.filterwarnings('ignore')r=requests.get("https://m.thepaper.cn/baijiahao_11694997",timeout=10)r.encoding="utf-8"s=BeautifulSoup(r.text,"html.parser")f=open("讲授.txt","w",encoding="utf-8")L=s.find_all("p")for c in L:f.write("{}\n".format(c.text))f.close()

    代码运转之后,在土产货会得到一个【讲授.txt】文献,文献执行便是网站上的文本信息。淌若你思获得其他网站上的文本,需要蜕变下衔接和索求限定。

    三、词频统计

    接下来便是词频统计了,代码如下所示。

    # 读取文献fn = open("./讲授.txt","r",encoding="utf-8")string_data = fn.read()fn.close()# 文本预处理# 界说正则抒发式匹配步地pattern = re.compile(u'\t|,|/|。|\n|\.|-|:|;|\)|\(|\?|"')string_data = re.sub(pattern,'',string_data)  # 将顺应步地的字符去除# 文分内词# 精准步地分词seg_list_exact = jieba.cut(string_data,cut_all=False)object_list = []# 自界说去除词库remove_words = [u'的',u'要', u'“',u'”',u'和',u',',u'为',u'是','以' u'跟着', u'对于', u'对',u'等',u'能',u'齐',u'。',u' ',u'、',u'中',u'在',u'了',u'时常',u'淌若',u'我',u'她',u'(',u')',u'他',u'你',u'?',u'—',u'就',u'着',u'说',u'上',u'这', u'那',u'有', u'也',u'什么', u'·', u'将', u'莫得', u'到', u'不', u'去']for word in seg_list_exact:if word not in remove_words:object_list.append(word)# 词频统计# 对分词作念词频统计word_counts = collections.Counter(object_list)# 获得前30最高频的词word_counts_all = word_counts.most_common()word_counts_top30 = word_counts.most_common(30)print("2021年政府使命讲授一共有%d个词"%len(word_counts))print(word_counts_top30)

    率先读取文本信息,之后对文本进行预处理,索求笔墨信息,而况可以自界说词库,当作停用词,之后将获得到的词频作念词频统计,获得前30最高频的词,并进行打印,输出效果如下图所示。

    四、可视化

    接下来便是可视化部分了,这里平直上代码,如下所示。

    import pyechartsfrom pyecharts.charts import Linefrom pyecharts import options as opts# 示例数据cate = [i[0] for i in word_counts_top30]data1 = [i[1] for i in word_counts_top30]line = (Line().add_xaxis(cate).add_yaxis('词频', data1,markline_opts=opts.MarkLineOpts(data=[opts.MarkLineItem(type_="average")])).set_global_opts(title_opts=opts.TitleOpts(title="词频统计Top30", subtitle=""),xaxis_opts=opts.AxisOpts(name_rotate=60,axislabel_opts={"rotate":45})))line.render_notebook()

    输出效果是一个线图,看上去还可以。

    五、讲究

    本文基于Python相聚爬虫获得到的文本文献,通过词频、分词和可视化等处理,完成一个较为通俗的名堂,接待大师积极尝试。在代码杀青经过中,淌若有遭遇任何问题,请加我好友,我匡助解决哦!

     



    上一篇:kaiyun中国官方网站 怎样面对紊乱的数据需求?
    下一篇:kaiyun官方网站 浅析区块链与大数据的联系