2019年政府工作报告中的关键词和词频:SnowNLP还是Jieba?

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:[email protected]
# 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)))

你可能感兴趣的:(2019年政府工作报告中的关键词和词频:SnowNLP还是Jieba?)