python3做词云分析

 

python3做词云

其实词云一般分为两种,一个是权重比,一个是频次分析

主要还是体现在自然语言方向,难度较大,但这里我们用jieba词库

主要思路, 后端算数据+前端生成图(D3-cloud-好像是哈,不确定了)

 

#!/usr/bin/env python
# -*- coding: utf-8 -*-

# 导入扩展库
import re  # 正则表达式库
import collections  # 词频统计库
import jieba  # 结巴分词
import jieba.analyse as anl

s = \
    """
  为贯彻落实党的十八大关于全面深化改革的战略部署,十八届中央委员会第三次全体会议研究了全面深化改革的若干重大问题,作出如下决定。
  一、全面深化改革的重大意义和指导思想
  (1)改革开放是党在新的时代条件下带领全国各族人民进行的新的伟大革命,是当代中国最鲜明的特色。党的十一届三中全会召开三十五年来,我们党以巨大的政治勇气,锐意推进经济体制、政治体制、文化体制、社会体制、生态文明体制和党的建设制度改革,不断扩大开放,决心之大、变革之深、影响之广前所未有,成就举世瞩目。
  改革开放最主要的成果是开创和发展了中国特色社会主义,为社会主义现代化建设提供了强大动力和有力保障。事实证明,改革开放是决定当代中国命运的关键抉择,是党和人民事业大踏步赶上时代的重要法宝。
  实践发展永无止境,解放思想永无止境,改革开放永无止境。面对新形势新任务,全面建成小康社会,进而建成富强民主文明和谐的社会主义现代化国家、实现中华民族伟大复兴的中国梦,必须在新的历史起点上全面深化改革,不断增强中国特色社会主义道路自信、理论自信、制度自信。
   """

text = s
keyword = anl.extract_tags(text, 200, withWeight=True, allowPOS=('v', 'vd', 'n', 'nr', 'ns', 'nt', 'nz'))
print(keyword)
print(len(keyword))

keyword = anl.textrank(text, 200, withWeight=True, allowPOS=('v', 'vd', 'n', 'nr', 'ns', 'nt', 'nz'))
print(keyword)
print(len(keyword))

string_data = s

# 文本预处理
pattern = re.compile('\t|\n|\.|-|:|;|\)|\(|\?|(|)|\|"|\u3000')  # 定义正则表达式匹配模式
string_data = re.sub(pattern, '', string_data)  # 将符合模式的字符去除

# 文本分词
seg_list_exact = jieba.cut(string_data, cut_all=False)  # 精确模式分词
object_list = []
remove_words = [u'', u'', u'', u'', u'随着', u'对于', u'', u'', u'', u'', u'', u' ', u'', u'', u'', u'',
                u'通常', u'如果', u'我们', u'需要']  # 自定义去除词库

# remove_words = [line.strip() for line in open("CS.txt",encoding="utf-8").readlines()] 

for word in seg_list_exact:  # 循环读出每个分词
    if word not in remove_words:  # 如果不在去除词库中
        object_list.append(word)  # 分词追加到列表

# 词频统计
word_counts = collections.Counter(object_list)  # 对分词做词频统计
word_counts_top10 = word_counts.most_common(200)  # 获取前10最高频的词
print(word_counts_top10)  # 输出检查
print(len(word_counts_top10))

 

posted @ 2019-05-08 16:05  我当道士那儿些年  阅读(1215)  评论(0编辑  收藏  举报