jieba分詞 是一款開源的中文分詞包,同時它還帶有分析模塊,可以用TF-IDF等算法進行關鍵詞分析
jieba
下面的小程序的基本思路是:
通過jieba從 保存好的txt文本中提取關鍵詞,根據關鍵詞的權重等決定關鍵詞的文字大小,用matplotlib將它們呈現出來
#coding:utf-8
import os
import tkFileDialog #文件對話框模塊
import jieba #jieba分詞模塊
import jieba.analyse #jieba分詞分析模塊
import codecs #中文編碼轉換模塊
import matplotlib.pyplot as plt
from pylab import *
mpl.rcParams['font.sans-serif'] = ['simhei'] # 指定默認字體
mpl.rcParams['axes.unicode_minus'] = False # 解決保存圖像是負號'-'顯示為方塊的問題
default_dir = r"D:/py/" # 設置默認打開目錄
fname = tkFileDialog.askopenfilename(title=u"選擇文件",
initialdir=(os.path.expanduser(default_dir))) #選擇供分析用的文本文件
fig=plt.figure()
fig.suptitle(u'關鍵詞語TF-IDF分析',fontsize=14,fontweight='bold')
ax=fig.add_subplot(111)
ax.set_xlim(0,10)
ax.set_ylim(0,10)
fig.subplots_adjust(top=0.85)
with codecs.open(fname) as fr:
s=fr.read()
s_out=jieba.analyse.extract_tags(s, withWeight=True) #用jieba提取關鍵詞
max_weight=max(list(map(lambda y: y[1],s_out)))
f_scale=int(1/max_weight)
for x, w in s_out:
print('%s %s' %(x,w))
locate=np.random.rand(2)
size=int(f_scale64w)
col=int(8w)+1
ax.text(locate[0]10,locate[1]*10,x,
fontsize=size,fontdict=None,color='blue') #pad表示與字的邊距
plt.show()
從百度百科上取一段文字做測試:
蒙古族 編輯
蒙古族(蒙古語:???????????????,西里爾字母:Монгол ?ндэстэн),是主要分布于東亞地區的一個傳統游牧民族,是中國的少數民族之一,同時也是蒙古國的主體民族。此外,蒙古族在俄羅斯等亞歐國家也有分布,鄂溫克族和土族也有時被認為是蒙古族的分支。[1]
蒙古族始源于古代望建河(今額爾古納河)東岸一帶。13世紀初,以成吉思汗為首的蒙古部統一了蒙古地區諸部,逐漸形成了一個新的民族共同體。
蒙古族人民世居草原,以畜牧為生計。過著“逐水草而居”的游牧生活,盡管這種生存方式在現代社會被弱化,但仍然被視作蒙古族的標志。
蒙古族在科學文化事業上比較發達,而且音樂、舞蹈也在藝術上居于相對顯赫的地位[2] 。
《蒙古秘史》、《蒙古黃金史》、《蒙古源流》被稱為蒙古族的三大歷史巨著,其中《蒙古秘史》被聯合國教科文組織確定為世界著名文化遺產。英雄史詩《江格爾》是中國的三大史詩之一。[3]
中文名 蒙古族 外文名 Mongols 人 口 約1000萬 人口分布 中國,蒙古國,俄羅斯等 語 言蒙古語 文 字回鶻式蒙古文,西里爾蒙古文 信 仰薩滿教,藏傳佛教,回教 別 稱 蒙古人,草原驕子,馬背上的民族 方 言 內蒙古,衛拉特,巴爾虎布里亞特
目錄
1 名稱
2 歷史
? 原始社會時期
? 民族的統一與對外征伐
? 元朝滅亡后的蒙古諸部
? 蒙古國的獨立與內蒙古自治區的建立
3 人口
4 政治
原文比較長,就不全部貼上了。
關鍵詞分析結果:
蒙古 0.169165636577
蒙古族 0.126360191488
蒙古人 0.055626259173
成吉思汗 0.0423217004291
民族 0.033926093091
四胡 0.0298077928858
....
分析之后的可視化結果: