2019年政府工作报告中的关键词
snownlp:
['发展', '改革', '企业', '推进', '经济', '政策', '建设', '服务', ……]
jieba:
['改革', '发展', '推进', '加强', '加快', '深化', '创新', '建设', ……]
2019年政府工作报告中的词频统计
snownlp | jieba
发展 133 | 发展 127
改革 105 | 改革 89
经济 65 | 推进 56
推进 57 | 企业 50
政策 56 | 加强 50
企业 55 | 经济 45
加强 50 | 建设 44
建设 47 | 加快 40
社会 44 | 推动 40
创新 43 | 创新 39
市场 41 | 政府 38
加快 40 | 支持 37
推动 40 | 全面 36
政府 39 | 完善 36
全面 38 | 中国 35
支持 38 | 政策 35
中国 37 | 坚持 32
服务 36 | 深化 31
完善 36 | 促进 30
基本 31 | 就业 29
坚持 31 | 服务 29
深化 31 | 基本 28
就业 30 | 继续 27
继续 30 | 我们 27
促进 30 | 提高 26
工作 29 | 社会 25
提高 27 | 工作 24
我们 27 | 市场 24
问题 27 | 群众 24
人民 26 | 问题 23
----
利用SnowNLP的代码
# author:传习者戚
# email:qijiuzhu@tsinghua.org.cn
# 2019年3月
from snownlp import SnowNLP
import time
# 计时开始
TIME_FORMAT = '%Y-%m-%d %H:%M:%S'
print('{} START'.format(time.strftime(TIME_FORMAT)))
# +++++++++++++++++++++++++++++++++
# 读取文章内容,数据格式是列表list
with open("2019工作报告.txt", "r", encoding="utf-8") as f:
text_list = f.readlines()
text_string = "".join(t for t in text_list) # 将列表转为文本字符串str
# 中文字符串处理类
s = SnowNLP(text_string)
# 统计关键词
keywords = s.keywords(15) # 统计关键词的方法:s.keywords(n) 前n个关键词
keywords = [keyword for keyword in keywords if len(keyword) != 1]
print("关键词:", keywords)
#
# 分词
words = s.words # 分词列表
w = list()
w.append(words) # 分词列表,列表元素为列表
s = SnowNLP(w)
tf = s.tf # 词频
for dictionary in tf:
for k, v in sorted(dictionary.items(), key=lambda d: d[1], reverse=True):
if len(k) > 1:
print("%s\t\t%d" % (k, v))
# +++++++++++++++++++++++++++++++++
print()
# 计时结束
print('{} STOP'.format(time.strftime(TIME_FORMAT)))
利用Jieba的代码
import jieba
import jieba.analyse
import time
# 计时开始
TIME_FORMAT = '%Y-%m-%d %H:%M:%S'
print('{} START'.format(time.strftime(TIME_FORMAT)))
# +++++++++++++++++++++++++++++++++
# 读取文章内容,数据格式是列表list
with open("2019工作报告.txt", "r", encoding="utf-8") as f:
text_list = f.readlines()
text_string = "".join(t for t in text_list) # 将列表转为文本字符串str
# 关键词提取
keywords = jieba.analyse.extract_tags(text_string, 8)
print("【关键词】", keywords)
# 词频统计
print("\n词频统计:\n")
seg_list = jieba.lcut(text_string, cut_all=False) # 中文分词
word_freq = {}
for word in seg_list:
if word in word_freq:
word_freq[word] += 1
else:
word_freq[word] = 1
freq_word = []
for word, freq in word_freq.items():
if len(word) != 1: # 去除标点及单字
freq_word.append((word, freq))
freq_word.sort(key=lambda x: x[1], reverse=True)
for word, freq in freq_word[:30]:
print(word, freq)
# +++++++++++++++++++++++++++++++++
print()
# 计时结束
print('{} STOP'.format(time.strftime(TIME_FORMAT)))