利用jieba分词进行关键字提取生成词云图

为了更加直观分析一些岗位要求,我们可以利用jieba分词技术对岗位要求内容进行关键字提取,并通过词云技术进行渲染展示

首先我们将sql文件转化成Excel文件

import pandas as pd
import sqlite3
conn = sqlite3.connect("recruit.db")
df = pd.read_sql("select * from recruit",conn)
df.to_excel("职位数据.xlsx")

然后我们将job_detail列提取出来转化成list

因为dateframe对象不能直接被jieba读取,所以我们首先使用np.array()函数把DataFrame转化为np.ndarray(),再利用tolist()函数把np.ndarray()转为list,示例代码如下:

import pandas as pd
import jieba
df = pd.read_excel("职位数据.xlsx")
result = df.loc[:,['job_detail']]
import numpy as np
train_data = np.array(result)
train_list = train_data.tolist()

利用jieba进行分词

print(result_jieba)
stop_words = [w.strip() for w in open("stopword.txt").readlines()]
word_count = []
for word in result_jieba:
    if word not in stop_words:
        word_count.append(word)
result_jieba_set = set(word_count)

统计词和词频,转化成列表

word_echart = []
for item in result_jieba_set:
    print(item,word_count.count(item))
    word_echart.append(('%s'%item,word_count.count(item)))
word_echart = word_echart.sort(key=lambda x: x[1])

生成词云并保存

import pyecharts.options as opts
from pyecharts.charts import WordCloud

(
    WordCloud()
    .add(series_name="职位要求", data_pair=word_echart[:20], 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("professor_wordcloud.html")
)

笔者代码有些繁琐,可以直接提取成dataframe然后转化成列表,如何精简代码不再赘述
数据库文件如下:
链接:https://pan.baidu.com/s/1vzBSKLwdsaD3Aqdi5H5gBQ
提取码:njuc

你可能感兴趣的:(利用jieba分词进行关键字提取生成词云图)