python·文本分析

词云图

from wordcloud import WordCloud

import matplotlib.pyplot as plt     #数学绘图库
import jieba      #jieba分词库
from wordcloud import WordCloud,ImageColorGenerator    #词云库
from PIL import Image      #图像处理标准库
import numpy as np   #数据科学计算的核心库
text = open(r'E:\data8.txt',"r",encoding="utf-8").read()# 词文档
#print(text)

#对文章进行分词
wordlist_after_jieba = jieba.cut(text, cut_all=False)
wl_space_split = " ".join(wordlist_after_jieba)
print(wl_space_split)

image = Image.open(r'E:\2.jpeg') # 绘制词云底图
graph = np.array(image)      #图像数据化

wc = WordCloud(font_path = r"msyh.ttc",background_color='white',max_font_size=80,mask=graph)
wc.generate(wl_space_split)
image_color = ImageColorGenerator(graph)
wc.recolor(color_func = image_color)
wc.to_file(r'E:\wordcloud.png')

#第七步,显示图片
plt.figure("健身卡")    #指定词云图的名称
plt.imshow(wc)          #以图片的形式显示词云
plt.axis("off")         #关闭图像坐标系
plt.show()              #显示图片

from pyecharts.charts import WordCloud

import jieba
import sqlite3
import pandas as pd
from collections import Counter
import pyecharts.options as opts
from pyecharts.charts import WordCloud


# 连接数据库
conn = sqlite3.connect(r'C:\Users\JSJSYS\Desktop\分词\数据\数据\recruit.db')
# sql语句
sql = 'select * from recruit'
# 读表
df = pd.read_sql(sql,conn)
# 获取表格的基本信息   info()
# print(df.info())
# 选取‘job_detail'列  前十行数据
data = df['job_detail'][:10]
# print(data)
# 拼接成一个字符串,方便切词
data_str = ''
for res in data:
    data_str += res
# print(data_str)

# 利用jieba切词,来切分字符串
result_cut = jieba.cut(data_str)
# 利用Counter进行词频统计  {词:数量}
result = Counter(result_cut)
# print(result)
# 利用items转换成元组的形式,方便制作词云
items_ = result.items()
# 变list
items_list = list(items_)

# 词云图
(
    WordCloud()
    .add(series_name="热点分析", data_pair=items_list, word_size_range=[6, 66])
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title="热点分析", title_textstyle_opts=opts.TextStyleOpts(font_size=23)
        ),
        tooltip_opts=opts.TooltipOpts(is_show=True),
    )
    .render("wordcloud1.html")
)


在这里插入图片描述

停用词处理

stop = []# 停用词表
standard_stop = []
text = []# 文本集
after_text = []# 处理后文本
file_stop = r'C:\Users\JSJSYS\Desktop\分词11\hit_stopwords.txt'  # 文档为停用词表
file_text = r'C:\Users\JSJSYS\Desktop\分词11\data.txt'  # 要处理的文本集合
with open(file_stop, 'r', encoding='utf-8-sig') as f:
    lines = f.readlines()  # lines是list类型
    for line in lines:
        lline = line.strip()  # line 是str类型,strip 去掉\n换行符
        stop.append(lline)  # 将stop 是列表形式
#print(stop)
# stop 的元素是一行一行的 句子,需要进行转化为一个词一行,即下面:
for i in range(0, len(stop)):
    #print(stop[i].split())
    for word in stop[i].split():
        standard_stop.append(word)
#print(standard_stop)

# 读取文本集,
with open(file_text, 'r', encoding='utf-8-sig') as f:
    lines = f.readlines()
    #print(lines)
    for line in lines:
        lline = line.strip()
        #print(lline)
        lline = str(line.split())
        #print(lline)
        for i in lline:
            #print(i)
            if i not in standard_stop:
                after_text.append(i)
#print(after_text)

# 将结果保存在txt中
with open(r'C:\Users\JSJSYS\Desktop\分词11\result.txt', 'w+')as f:
    for i in after_text:
        f.write(i)
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值