python读取txt文本数据进行分词并生成数组图片

python对数据分词,生成数组图片

小编在日常生活工作中学习到的点,在此记录一下,希望能够帮助有需要的小伙伴。


文章目录

  • python对数据分词,生成数组图片
  • 前言
  • 一、全部代码
  • 效果图


前言

对文本数据内容有个直观的感受,如小说哪些内容出现的最多,主要讲述什么事情等等


提示:以下是本篇文章正文内容,下面案例可供参考

一、全部代码

# coding: utf-8
import codecs
import matplotlib.pyplot as plt   #绘图库
import jieba                      #分词库
from pylab import mpl

mpl.rcParams['font.sans-serif'] = ['FangSong']  # 指定默认字体
mpl.rcParams['axes.unicode_minus'] = False  # 解决保存图像是负号'-'显示为方块的问题
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.tick_params(labelsize=9) #刻度字体大小9
plt.xticks(rotation=45)      #横坐标字体倾斜45度

stopword=[u'。',u',',u',',u'(',u')',u'"',u':',u';',u'、',u',',u',',u'”',u'“',u';',u':',u'的',u'有',u'也']
word = []
counter = {}

with codecs.open('result.txt',encoding='utf-8') as f:
    for line in f:
        line = line.strip()
        if len(line) == 0:
            continue
        line = jieba.cut(line, cut_all = False)
        for w in line:
            if ( w in stopword) or len(w)==1: continue
            if not w in word :
                word.append(w)
            if not w in counter:
                counter[w] = 0
            else:
                counter[w] += 1

counter_list = sorted(counter.items(), key=lambda x: x[1], reverse=True)

print(counter_list[:20])

label = list(map(lambda x: x[0], counter_list[:20]))
value = list(map(lambda y: y[1], counter_list[:20]))

plt.bar(range(len(value)), value, tick_label=label)
plt.savefig('shuzu.jpg')
plt.show()


效果图

python读取txt文本数据进行分词并生成数组图片_第1张图片

python读取txt文本数据进行分词并生成数组图片_第2张图片

总结:读取txt文档中的数据,对数据进行分词,排序生成数组图。

你可能感兴趣的:(python,python)