一年一度的端午节马上就要到来了,农历的五月初五作为我国的一个传统节日,小朋友们都会忙着吃粽子、赛龙舟,当然,最诱人的还是放假喽……约三五好友,游历祖国大江南北,无不惬意……可是我们大家熟知的端午节跟我国历史上一位著名人物屈原有着很紧密的联系(想知道这段历史,大家自行提问哦,这不是本文的重点)。今天,我们主要对这位伟大人物的一部巨著《离骚》进行分析,利用Python中WordCloud库生成该部巨著中常用词的词云图,来进一步了解这位伟大人物。
端午节与屈原
关于屈原《离骚》的写作背景及意义,大家自行提问。本文关键对《离骚》内容进行分析,分析思路很简单,主要是以下几个步骤:
【第一步】获取《离骚》原文并对原文数据进行清洗【第二步】对《离骚》原文进行分词统计【第三步】对《离骚》中多频词出现次数进行词云展示【第四步】简要分析词云结果现在我们分步骤逐个击破……
【第一步】获取《离骚》原文并对原文数据进行清洗
将《离骚》文章及翻译内容下载后保存到本地,文件名为filename。
content_lst = []try:with open(filename, 'r') as f_r: for item in f_r.readlines(): content_lst.append(item.split('(')[0].strip())except FileExistsError as error: print(str(error))
将文件去除翻译及换行符后保存在本地(为了说明留下这一步,程序中不用保存在本地)。
try:with open('lisao_clean.txt', 'w') as f_w: f_w.write(''.join(content_lst))except Exception as e: print(str(e))
程序函数中直接返回数据即可。
对《离骚》原文及翻译进行处理
【第二步】对《离骚》原文进行分词统计
首先,将文本中标点符号去除,代码如下:
pattern = re.compile(r',|:|;|,|。|\?|?|!|「|、|《|》|!')re.sub(pattern, '', content)
然后利用jieba库进行分词操作,并使用collections库中的Counter()方法返回每个词语的词频信息。
jb_cut = jieba.cut(content)collections.Counter(list(jb_cut)
【第三步】对《离骚》中多频词出现次数进行词云展示
使用词云展示词频信息
path_image = 'bg.jpg'font_path = "STHUPO.TTF"background_image = np.array(Image.open(path_image))wd = WordCloud(width=1024, height=800, max_font_size=500, random_state=10, font_path=font_path, background_color="white", mask=background_image).generate_from_frequencies(d_content)wd.to_file('lisao.png')plt.imshow(wd, interpolation="bilinear")plt.axis("off")plt.show()
【第四步】简要分析词云结果
程序运行后词云结果如图所示。
《离骚》词云图
此文可以分析出以屈原为代表的一些楚辞作者的作品特色,因为《离骚》是一篇很经典的楚辞代表作。程序中可以得出《楚辞》的语句一些特色:句子参差不齐(jieba库分句时剪切词句无规律可循),多用“兮”、“之”等助词,停顿多。可以作为学习古汉语、文言文等专业的参考。谨以此文纪念伟大的屈原!祝朋友们端午节假期快乐……
转载请注明出处(百家号:Python高手养成)