亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        Python 環(huán)境下的文本分詞與詞云制作

        2018-12-28 06:41:10嚴(yán)明鄭昌興
        現(xiàn)代計(jì)算機(jī) 2018年34期
        關(guān)鍵詞:設(shè)置文本

        嚴(yán)明,鄭昌興

        (國防大學(xué)政治學(xué)院,上海201602)

        0 引言

        誕生于20 世紀(jì)90 年代初的Python 語言,因其簡潔、優(yōu)美、開源、功能強(qiáng)大等一系列特點(diǎn),本世紀(jì)初以來其使用率呈現(xiàn)快速增長之勢(shì)。特別是近年來隨著互聯(lián)網(wǎng)、大數(shù)據(jù)和人工智能等技術(shù)的發(fā)展和應(yīng)用需求的增長,Python 已經(jīng)超越C#,與Java、C、C++一起成為4 大流行語言,成為最受歡迎的程序設(shè)計(jì)語言之一,廣泛應(yīng)用于從桌面應(yīng)用、Web 開發(fā)、自動(dòng)化測(cè)試運(yùn)維、爬蟲到大數(shù)據(jù)處理、人工智能等各個(gè)領(lǐng)域。在IEEE Spectrum發(fā)布的2017 年和2018 年編程語言排行榜中,Python均高居第一;在TIOBE 的2017 年度榜單中,Python 位居第二,在最新的2018 年9 月份的編程語言排行榜上位居第三。

        目前,Python 不僅具有功能強(qiáng)大的標(biāo)準(zhǔn)庫,支持Python 的第三方庫已達(dá)數(shù)以萬計(jì),豐富的第三方庫則是Python 不斷發(fā)展的保證。在Python 環(huán)境下,引入第三方面庫jieba 和WordCloud 等可以方便時(shí)對(duì)文本進(jìn)行分詞和制作詞云。

        1 中文分詞

        分詞是自然語言處理(NLP)中文本處理的基礎(chǔ)環(huán)節(jié)和前提。與以英文為代表的拉丁語系語言相比,中文分詞要復(fù)雜得多、困難得多,因?yàn)樽怨乓詠碇形牡脑~語之間均沒有自然分隔。長期以來,許多學(xué)者對(duì)中文分詞進(jìn)行了大量的研究,提出了許多算法,例如基于字符串匹配的分詞方法、基于統(tǒng)計(jì)的分詞方法和基于理解的分詞方法,等等。

        在使用Python 進(jìn)行中文分詞處理時(shí),可以使用第三方的jieba 分詞器進(jìn)行。其分詞算法總體是:使用基于前綴詞典的詞圖掃描,生成所有可能生成詞所構(gòu)成的有向無環(huán)圖,再采用動(dòng)態(tài)規(guī)劃查找最大概率路徑,找出基于詞頻的最大切分組合;對(duì)于未登錄詞,采用了基于漢字成詞能力的HMM 模型(使用Viterbi 算法)來預(yù)測(cè)分詞。

        jieba 分詞支持三種分詞模式:一是精確模式(默認(rèn)模式),試圖最精確地切分,適合文本分析;二是全模式,把所有的可以成詞的詞語都掃描出來,速度非??斓遣荒芙鉀Q歧義;三是搜索引擎模式,在精確模式的基礎(chǔ)上對(duì)長詞再進(jìn)行詞切分,以提高召回率,適合用于搜索引擎分詞。前兩種模式使用jieba.cut()函數(shù),通過參數(shù)進(jìn)行選擇模式和具體算法,第三種模式使用jieba.cut_for_search()函數(shù)。三種模式的常用格式分別為:

        jieba.cut(sentence,cut_all=False,HMM=True)

        jieba.cut(sentence,cut_all=True,HMM=False)

        jieba.cut_for_search(sentence,HMM=False)

        jieba 分詞器所基于的前綴詞典由dict.txt 提供。在實(shí)際應(yīng)用中,用戶常常會(huì)發(fā)現(xiàn)一些“新詞”由于未登錄而不能正確地切分,這時(shí)就需要用戶增加領(lǐng)域詞表或添加自定義詞語。使用 jieba.load_userdict(file_name)函數(shù)可以指定自己自定義的詞典,使用jieba.add_word(word,freq=None,tag=None)函數(shù)可以向詞典中添加新詞。

        2 詞云制作

        詞云圖(簡稱“詞云”),也叫文字云,是對(duì)文本中出現(xiàn)頻率較高的“關(guān)鍵詞”予以視覺化的展現(xiàn),目前詞云已成為文本數(shù)據(jù)可視化的一種常用方式。在詞云中,通常是不同的單詞(詞組)采用不同的顏色表示,不同詞頻或權(quán)重的單詞(詞組)采用不同的字號(hào)表示。目前互聯(lián)網(wǎng)上已經(jīng)有很多在線詞云工具,例如國外的Word-Art、Wordle、WordItOut、Tagxedo、Tagul 等,以及國內(nèi)的“圖悅”等。即便是智能手機(jī),用戶可以也可以找到制作詞云的App。在Python 環(huán)境下,使用第三方的WordCloud 庫也能輕松地完成詞云的制件,并對(duì)其進(jìn)行個(gè)性化的處理。

        對(duì)于WordCloud 庫來說,每個(gè)詞云是一個(gè)Word-Cloud 對(duì)象,通過對(duì)其20 多個(gè)屬性(或者說是參數(shù))進(jìn)行配置可以設(shè)置詞云。其中,常用屬性說明為:

        ●font_path:字體路徑。需要注意的是,制作中文詞云時(shí)必須指定字體文件,否則不能正常顯示。

        ●width:輸出的畫布寬度,默認(rèn)為400 像素。

        ●height:輸出的畫布高度,默認(rèn)為200 像素。

        ●scale:按照比例進(jìn)行放大畫布,默認(rèn)值為1。

        ●background_color:背景顏色,默認(rèn)值為“black”。

        ●mask:指定遮罩圖(即背景圖片、詞云的形狀圖),字的大小布局和顏色都會(huì)依據(jù)遮罩圖生成。如果參數(shù)為空,則使用二維遮罩繪制詞云。如果mask 非空,設(shè)置的寬高值將被忽略,遮罩形狀被mask 取代。

        ●min_font_size:顯示的最小的字體大小,默認(rèn)值為4。

        ●max_font_size:顯示的最大的字體大小。

        ●font_step:字體步長,默認(rèn)值為1。

        ●relative_scaling:表示詞頻和云詞圖中字大小的關(guān)系參數(shù),默認(rèn)0.5。

        ●max_words:要顯示的詞的最大個(gè)數(shù),默認(rèn)值為200。

        ●stopwords:設(shè)置需要屏蔽的詞(即停用詞)。如果為空,則使用內(nèi)置的STOPWORDS。

        利用WordCloud 制作詞云時(shí),一般經(jīng)過三個(gè)步驟:一是使用wordcloud.WorldCloud 函數(shù)來設(shè)置詞云對(duì)象的有關(guān)屬性(或者說是參數(shù));二是利用wordcloud.generate(text)函數(shù)或wordcloud.generate_from_frequencies(frequencies[,…])函數(shù)生成詞云,前者是根據(jù)文本生成詞云,后者是根據(jù)詞頻生成詞云;三是利用wordcloud.to_file(file_name)函數(shù)將詞云輸出到文件進(jìn)行保存。

        3 示例

        當(dāng)前和今后一個(gè)時(shí)期,深入學(xué)習(xí)黨的十九大精神是全黨和全國各族人民的一項(xiàng)重大政治任務(wù)。筆者在學(xué)習(xí)過程中,將黨的十九大報(bào)告與十八大報(bào)告進(jìn)行了對(duì)比學(xué)習(xí),并由此產(chǎn)生了對(duì)兩個(gè)報(bào)告進(jìn)行文本處理的想法。

        以下代碼實(shí)現(xiàn)了兩個(gè)報(bào)告的文本分詞、詞頻統(tǒng)計(jì),在此基礎(chǔ)上發(fā)現(xiàn)十九大報(bào)告中出現(xiàn)的新詞,并制作相應(yīng)的新詞的詞云(如圖1 所示)。

        圖1 黨的十九大報(bào)告新詞之詞云

        #_*_coding:utf-8_*_

        from PIL import Image

        import matplotlib.pyplot as plt

        from collections import Counter

        import numpy as np

        行政事業(yè)單位的內(nèi)部控制建設(shè)應(yīng)該結(jié)合我國新時(shí)期的基本國情,與時(shí)俱進(jìn)地制定適合各個(gè)地方政府和行政事業(yè)單位的發(fā)展策略,從單位內(nèi)部結(jié)構(gòu)和運(yùn)行作為出發(fā)點(diǎn),才能最大程度的完善內(nèi)部管理體制。為了更好地適應(yīng)市場(chǎng)經(jīng)濟(jì)的大環(huán)境,行政事業(yè)單位需要在行政功能和公共服務(wù)等方面進(jìn)行相應(yīng)的人力和資源的整合工作,同時(shí)配合政策出臺(tái)的管理?xiàng)l例,更加切實(shí)有效地開展新時(shí)期賦予行政事業(yè)單位的歷史任務(wù)。

        import jieba

        from wordcloud import WordCloud,ImageColorGenerator

        #以下功能為:添加新詞(未登錄詞)

        list1=['中國特色','新時(shí)代','一帶一路']

        for i in list1:

        jieba.add_word(i)

        #以下自定義函數(shù)的功能是分詞、統(tǒng)計(jì)詞頻、去除標(biāo)點(diǎn)符號(hào)和單字詞等

        def keyword(filename): #生成分詞列表(高頻詞)

        kw_jieba = list(jieba.cut(text,cut_all=False, HMM=False)) #分詞

        kw=Counter(kw_jieba) #統(tǒng)計(jì)詞頻

        kw_common=kw.most_common(5000) #選取前n 個(gè)高頻詞

        #以下功能為:去除標(biāo)點(diǎn)符號(hào)和單字詞

        temp=[]

        for i in kw_common:

        if len(i[0])==1:

        temp.append(i)

        for i in temp:

        kw_common.remove(i)

        return kw_common

        #以下為創(chuàng)建詞云自定義函數(shù)

        def kw_wc(kwlist,out_jpg):

        masck_pic = np.array(Image.open('D:MyPython p01.jpg'))#讀取背景圖片

        wc=WordCloud(

        font_path='simhei.ttf', #設(shè)置字體格式,如不設(shè)置顯示不了中文

        background_color="white", #設(shè)置背景顏色

        max_words=100, #設(shè)置最大詞數(shù)

        mask=masck_pic, #設(shè)置背景圖片

        max_font_size=50 #設(shè)置字體最大值

        wc.generate_from_frequencies(dict(kwlist)) #生成詞云

        plt.figure(out_jpg) #新建一個(gè)名為out_jpg 的畫圖窗口

        plt.imshow(wc) #直接顯示(顏色隨機(jī)分配)

        plt.axis('off') #去掉坐標(biāo)軸

        plt.show() #顯示詞云圖

        wc.to_file(out_jpg) #將詞云輸出到名為out_jpg 的文件

        return wc

        ###############主程序#############

        kw18=keyword('D:MyPythond18.txt')#處理“十八大報(bào)告”文本

        kw19=keyword('D:MyPythond19.txt')#處理“十九大報(bào)告”文本

        #以下功能為從kw19 中去除kw18 中出現(xiàn)的詞

        kw19_18new=[]

        for i in kw19:

        k=0

        for j in kw18:

        if i[0]==j[0]:

        k=1

        break

        if k==0:

        kw19_18new.append(i)

        kw19_18new=kw_wc(kw19_18new,"p19_18new0.jpg")

        #創(chuàng)建新詞詞云

        猜你喜歡
        設(shè)置文本
        中隊(duì)崗位該如何設(shè)置
        初中群文閱讀的文本選擇及組織
        甘肅教育(2020年8期)2020-06-11 06:10:02
        在808DA上文本顯示的改善
        7招教你手動(dòng)設(shè)置參數(shù)
        基于doc2vec和TF-IDF的相似文本識(shí)別
        電子制作(2018年18期)2018-11-14 01:48:06
        文本之中·文本之外·文本之上——童話故事《坐井觀天》的教學(xué)隱喻
        論《柳毅傳》對(duì)前代文本的繼承與轉(zhuǎn)化
        人間(2015年20期)2016-01-04 12:47:10
        本刊欄目設(shè)置說明
        中俄臨床醫(yī)學(xué)專業(yè)課程設(shè)置的比較與思考
        艦船人員編制的設(shè)置與控制
        国产精品无码久久综合| 亚洲精品中文有码字幕| 99视频一区二区日本| 无遮挡1000部拍拍拍免费| 亚洲熟女乱色综合亚洲图片| 亚洲AV无码久久久一区二不卡 | 久久久噜噜噜www成人网| 免费高清日本中文| 日本午夜伦理享色视频| 99国产精品久久久久久久成人热 | 激情综合欧美| 亚洲精品国产主播一区二区| 日韩av一区二区不卡| 少妇愉情理伦片高潮日本| 久久ri精品高清一区二区三区| 国产好片日本一区二区三区四区| 手机在线播放av网址| 爱性久久久久久久久| 亚洲天堂第一区| 国产内射视频免费观看| 我和丰满妇女激情视频| 亚洲日韩成人av无码网站| 国产精品27页| 男男做h嗯啊高潮涩涩| 台湾佬中文网站| 人妻无码人妻有码中文字幕| 亚洲红杏AV无码专区首页| 亚洲一区第二区三区四区| 国产av麻豆mag剧集| 亚洲Av午夜精品a区| 少妇特殊按摩高潮对白| 欧美做受又硬又粗又大视频| 欧美性猛交xxxx乱大交丰满| 中文字幕乱码中文乱码毛片| 亚洲综合日韩精品一区二区| 无码人妻一区二区三区在线视频| 久久精品性无码一区二区爱爱| 国产中文字幕亚洲国产| 一本大道无码人妻精品专区| 国内精品一区视频在线播放| 在线观看国产精品一区二区不卡|