![Python數(shù)據(jù)可視化 課件 06章Matplotlib庫(kù)其他繪圖函數(shù)_第1頁(yè)](http://file4.renrendoc.com/view4/M02/11/3B/wKhkGGaOjluARKMYAAERNNwFUKc305.jpg)
![Python數(shù)據(jù)可視化 課件 06章Matplotlib庫(kù)其他繪圖函數(shù)_第2頁(yè)](http://file4.renrendoc.com/view4/M02/11/3B/wKhkGGaOjluARKMYAAERNNwFUKc3052.jpg)
![Python數(shù)據(jù)可視化 課件 06章Matplotlib庫(kù)其他繪圖函數(shù)_第3頁(yè)](http://file4.renrendoc.com/view4/M02/11/3B/wKhkGGaOjluARKMYAAERNNwFUKc3053.jpg)
![Python數(shù)據(jù)可視化 課件 06章Matplotlib庫(kù)其他繪圖函數(shù)_第4頁(yè)](http://file4.renrendoc.com/view4/M02/11/3B/wKhkGGaOjluARKMYAAERNNwFUKc3054.jpg)
![Python數(shù)據(jù)可視化 課件 06章Matplotlib庫(kù)其他繪圖函數(shù)_第5頁(yè)](http://file4.renrendoc.com/view4/M02/11/3B/wKhkGGaOjluARKMYAAERNNwFUKc3055.jpg)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Python數(shù)據(jù)可視化第6章Matplotlib庫(kù)其他繪圖函數(shù)教師:xxx2024.07第1節(jié)
繪制動(dòng)態(tài)圖第6章Matplotlib庫(kù)其他繪圖函數(shù)第2節(jié)
繪制世界地圖第3節(jié)
文本數(shù)據(jù)可視化Matplotlib不僅可繪制靜態(tài)圖形,還可繪制動(dòng)態(tài)圖形(動(dòng)畫),可保存為.gif動(dòng)畫文件。雖然這個(gè)動(dòng)圖功能比較有限,但給用戶提供了一種全新的數(shù)據(jù)展示手段,提升了視覺(jué)表現(xiàn)力。第1節(jié)
繪制動(dòng)態(tài)圖一、
動(dòng)圖函數(shù)FuncAnimation動(dòng)圖繪制需使用matplotlib中的animation.FuncAnimation函數(shù)。繪制的大致過(guò)程為:先編寫init初始化及update更新兩個(gè)子函數(shù),將這兩個(gè)子函數(shù)作為參數(shù)傳入FuncAnimation函數(shù),此后系統(tǒng)將自動(dòng)周期性調(diào)用update函數(shù)更新圖像。創(chuàng)建動(dòng)圖的語(yǔ)法格式為:ani=FuncAnimation(fig,func,frames=None,init_func=None,repeat,interval)fig:承載動(dòng)畫的畫布func:動(dòng)畫的更新函數(shù)(update),用于產(chǎn)生動(dòng)畫的幀frames:一輪動(dòng)畫所需的數(shù)據(jù),動(dòng)畫過(guò)程中每一幀的數(shù)據(jù)會(huì)傳遞給更新函數(shù)update(n)的形參“n”init_func:初始化函數(shù),每次新一輪動(dòng)畫開始時(shí)執(zhí)行一次,非必須參數(shù)repeat:動(dòng)畫是否一直循環(huán),默認(rèn)值Trueinterval:每幀更新時(shí)間間隔,默認(rèn)值200毫秒一、
動(dòng)圖函數(shù)FuncAnimation#設(shè)為notebook輸出模式,以便在jupyter中觀察動(dòng)畫效果%matplotlibnotebookfrommatplotlib.animationimportFuncAnimation #引入動(dòng)圖函數(shù),繪制一條會(huì)“動(dòng)”的余弦曲線x=np.arange(0,2*np.pi,0.01) lines_lst=plt.plot(x,np.cos(x)) #執(zhí)行后返回Line2D列表line=lines_lst[0] #取出第0根線,這是update函數(shù)需要改變的全局對(duì)象definit(): #初始化函數(shù),每次新一輪動(dòng)畫開始時(shí)執(zhí)行一次,不是必須的line.set_ydata(np.cos(x))
defupdate(n): #最重要的更新動(dòng)畫函數(shù),每幀自動(dòng)重復(fù)調(diào)用#print('幀號(hào):',n)line.set_ydata(np.cos(x+n/10)) #每次傳入的n值不同,更新Y軸數(shù)據(jù),圖像自動(dòng)更新
ani=FuncAnimation(fig=plt.gcf(), #創(chuàng)建動(dòng)畫對(duì)象,gcf()獲取當(dāng)前畫布,作為動(dòng)畫的載體func=update, #設(shè)置更新函數(shù)frames=100, #如為單個(gè)整數(shù),則數(shù)據(jù)序列為range(0,100)init_func=init, #設(shè)置初始化函數(shù)interval=20,repeat=True) #每幀間隔20毫秒,默認(rèn)值True,動(dòng)畫一直循環(huán)ani.save('img/cos_ani.gif',fps=10) #保存為gif動(dòng)畫文件,每秒10幀一、
動(dòng)圖函數(shù)FuncAnimation上例中動(dòng)圖繪制的核心是update(n)函數(shù),用于更新動(dòng)畫的每一幀。每幀更新時(shí),該函數(shù)被自動(dòng)調(diào)用,傳入數(shù)據(jù)n,根據(jù)n重新計(jì)算y坐標(biāo)值,line.set_ydata()就會(huì)更新圖形。update函數(shù)被自動(dòng)周期性調(diào)用就產(chǎn)生了動(dòng)畫效果。FuncAnimation中的參數(shù)frames設(shè)定一輪動(dòng)畫的數(shù)據(jù)序列,本例設(shè)置為整數(shù)100,則表示數(shù)據(jù)序列為range(0,100),一輪動(dòng)畫有100幀,此時(shí)update(n)更新時(shí)傳入的n相當(dāng)于當(dāng)前幀號(hào)。frames也可設(shè)定為一個(gè)序列,每幀更新時(shí)就依次收到序列中的一個(gè)數(shù)據(jù)。機(jī)器學(xué)習(xí)的線性二分類問(wèn)題中我們需要找一條直線將兩類數(shù)據(jù)分開。在尋找最優(yōu)直線的過(guò)程中需不斷更新其斜率和截距,以下的動(dòng)畫模擬演示了更新斜率的過(guò)程。#如在spyder中調(diào)試,可設(shè)為qt彈出窗口模式,觀察動(dòng)畫效果%matplotlibqtfrommatplotlib.animationimportFuncAnimationfig,ax=plt.subplots()
#新建畫布defupdate(k):
#更新函數(shù),此處k是直線斜率ax.clear()
#清空子圖,后續(xù)代碼重繪各圖形對(duì)象ax.set_xlim(0,10)ax.set_ylim(0,20)ax.scatter([2,2],[10,15],s=60,marker='D',c='r')
#繪制兩類散點(diǎn)ax.scatter([4,8],[7,7.2],s=60,marker='x',c='b')x=np.array([0,10])y=k*x+1
#斜率變動(dòng),重算yax.plot(x,
y)
#重新繪制直線ax.text(2,
2,
f'y={k:.2f}*x+1',fontsize=20) #標(biāo)注公式#本例設(shè)定直線斜率在[0,2.4]間變動(dòng)ani=FuncAnimation(fig,update,frames=np.linspace(0,2.4,20),interval=300,repeat=False)二、直線圖動(dòng)畫直線圖動(dòng)畫的另一種實(shí)現(xiàn)代碼如下,兩種方法效果相同。frommatplotlib.animationimportFuncAnimationfig,ax=plt.subplots()
#定義畫布ax.set_xlim(0,10)ax.set_ylim(0,20)ax.scatter([2,2],[10,15],s=60,marker='D',c='r')
#繪制散點(diǎn)ax.scatter([4,8],[7,7.2],s=60,marker='x',c='b')x=np.array([0,10])k=0y=k*x+1line,=ax.plot(x,y) #返回直線列表(注意line后有一個(gè)逗號(hào),用于拆分列表,得到直線)txtobj=ax.text(2,2,f'y={k:.2f}*x+1',fontsize=20) #txtobj對(duì)應(yīng)公式文本defupdate(k):
#更新函數(shù),k是斜率y=k*x+1
#斜率變動(dòng),重算yline.set_ydata(y)
#更新直線txtobj.set_text(f'y={k:.2f}*x+1') #更新公式文本ani=FuncAnimation(fig,update,frames=np.linspace(0,2.4,20),interval=300,repeat=False) 二、直線圖動(dòng)畫假定某公司在4個(gè)城市都有銷售,要?jiǎng)討B(tài)對(duì)比各個(gè)城市每個(gè)月的銷售金額,用動(dòng)態(tài)條形圖實(shí)現(xiàn)如下:np.random.seed(7)city=['武漢','廣東','深圳','北京']month=[str(x)+'月'forxinrange(1,13)] #1月至12月data=np.random.randint(100,200,size=(12,4)) #銷售數(shù)據(jù)fig,ax=plt.subplots(figsize=(8,5))defupdate(k): #更新函數(shù)
ax.clear() #清空子圖
ax.barh(city,data[k],height=0.5,color=['r','g','b','y'],alpha=0.5) #重繪條形圖
ax.set_title(month[k],fontsize=20)ani=FuncAnimation(fig,update,interval=500,frames=len(month)) #動(dòng)畫對(duì)象三、條形圖動(dòng)畫Cartopy庫(kù)是Python平臺(tái)下的一款地圖工具包,在氣象學(xué)領(lǐng)域應(yīng)用廣泛。本節(jié)介紹該包的使用,教材最后一章會(huì)使用這個(gè)庫(kù)繪制全球疫情地圖。第2節(jié)
繪制世界地圖一、地圖繪制包CartopyCartopy是一個(gè)地圖繪制包,提供了多種地圖投影和地理信息處理方法。該包提供易于使用的訪問(wèn)接口,可與matplotlib庫(kù)配合創(chuàng)建滿足出版質(zhì)量的地圖。Anaconda平臺(tái)可在命令行上執(zhí)行下面的命令安裝所需的包。pipinstallcartopy
Cartopy和matplotlib配合使用,兩者版本需匹配。Cartopy0.23(2024.7月的最新版本)和matplotlib3.7匹配,Cartopy0.22和matplotlib3.5匹配。Cartopy繪制地圖的方式很簡(jiǎn)單,先按某種投影模式創(chuàng)建子圖(即地圖),然后使用stock_img方法將背景圖片添加到地圖中,再根據(jù)經(jīng)緯度添加標(biāo)注數(shù)據(jù)。下面展示了兩種地圖投影模式:importcartopy.crsasccrs #導(dǎo)入cartopy中的ccrs(含多種地圖投影模式)ax1=plt.subplot(121,projection=ccrs.Mollweide()) #ccrs.Mollweide圓形地圖ax1.stock_img() #設(shè)置默認(rèn)的地圖背景ax1.set_title('Mollweide圓形地圖',fontsize=16)ax2=plt.subplot(122,projection=ccrs.PlateCarree()) #ccrs.PlateCarree矩形平面地圖ax2.stock_img()ax2.set_title('PlateCarree矩形地圖',fontsize=16) 一、地圖繪制包Cartopy下面根據(jù)給定的經(jīng)緯度在兩個(gè)城市間連線:importcartopy.crsasccrs ax=plt.axes(projection=ccrs.PlateCarree()) #創(chuàng)建具有地理投影的子圖,此子圖上的點(diǎn)需用經(jīng)緯度表示ax.stock_img()city=['紐約','上海']lon=[-74.0,121.48] #經(jīng)度(東經(jīng)正值,西經(jīng)負(fù)值)lat=[40.7,31.22] #緯度(北緯正值,南緯負(fù)值)ax.plot(lon,lat,lw=2,marker='o',mfc='r') #ax采用地理投影,經(jīng)緯度會(huì)自動(dòng)定位到地圖上forkinrange(len(city)):ax.text(lon[k],lat[k]-5,city[k],ha='center',va='top',c='b',fontsize=20)#標(biāo)注城市名,ha水平居中 一、地圖繪制包Cartopy代碼“ax=plt.axes(projection=ccrs.PlateCarree())”按平面矩形投影模式創(chuàng)建子圖ax,后續(xù)繪圖時(shí)x坐標(biāo)對(duì)應(yīng)經(jīng)度,y坐標(biāo)對(duì)應(yīng)緯度,經(jīng)緯度會(huì)被自動(dòng)投影到地圖上正確的位置。此外還可以給地圖添加地貌線和經(jīng)緯網(wǎng)格線,如下所示:importcartopy.featureascfeatureimportcartopy.crsasccrsfig=plt.figure(figsize=(8,6),dpi=100)ax=fig.add_subplot(projection=ccrs.PlateCarree())ax.stock_img()#設(shè)置網(wǎng)格線的范圍并要求標(biāo)注gl=ax.gridlines(ylocs=np.arange(-90,90+30,30),
xlocs=np.arange(-180,180+60,60),draw_labels=True,linestyle='--')gl.top_labels=False #網(wǎng)格線的上標(biāo)簽不顯示gl.right_labels=False #網(wǎng)格線的右標(biāo)簽不顯示ax.add_feature(cfeature.COASTLINE) #海岸輪廓線ax.add_feature(cfeature.RIVERS) #河流輪廓線ax.add_feature(cfeature.LAKES) #湖泊輪廓線 一、地圖繪制包Cartopy本例演示使用cartopy的API接口給國(guó)家著色,利用顏色可直觀區(qū)分各國(guó)的諸如人口、經(jīng)濟(jì)等數(shù)據(jù)。首先借助cartopy.io.shapereader內(nèi)的natural_earth和Reader接口完成各個(gè)國(guó)家地理信息的獲取。natural_earth用于獲取世界地理信息的文件路徑,Reader讀取文件得到國(guó)家的經(jīng)緯度和輪廓線等地理信息。然后用add_geometries在地圖上描繪國(guó)家邊界線并同時(shí)根據(jù)統(tǒng)計(jì)數(shù)據(jù)填充顏色,最后再添加一個(gè)顏色標(biāo)尺顯示顏色和和值的對(duì)應(yīng)關(guān)系。代碼實(shí)現(xiàn)如下:二、世界地圖著色importmatplotlibasmplimportcartopy.crsasccrsfromcartopy.ioimportshapereader #引入相關(guān)地理文件接口np.random.seed(7)#1.設(shè)置國(guó)家地理文件的路徑信息filename=shapereader.natural_earth(resolution='110m',category='cultural',name='admin_0_countries')#創(chuàng)建地理文件閱讀器對(duì)象reader=shapereader.Reader(filename)二、世界地圖著色#2.用隨機(jī)數(shù)模擬每個(gè)國(guó)家的數(shù)據(jù)(數(shù)據(jù)個(gè)數(shù)和reader中包含的國(guó)家和地區(qū)數(shù)一樣)data=np.random.randint(50,1000,len(list(reader.records())))#數(shù)據(jù)中的最大值,用于顏色轉(zhuǎn)換max_value=data.max()#3.創(chuàng)建世界地圖fig=plt.figure(figsize=(8,6),dpi=100)ax=fig.add_subplot(projection=ccrs.PlateCarree())#4.遍歷國(guó)家,country中含有國(guó)家的地理數(shù)據(jù)fori,countryinenumerate(reader.records()):rgba=mpl.cm.rainbow(data[i]/max_value) #將數(shù)據(jù)利用rainbow()工具轉(zhuǎn)為rgba元組顏色#子圖上添加國(guó)家,參數(shù)(國(guó)家地理信息,投影類型,填充顏色,邊界線顏色)ax.add_geometries([country.geometry],ccrs.PlateCarree(),facecolor=rgba,edgecolor='k')生成一些隨機(jī)數(shù)據(jù),作為每個(gè)國(guó)家的模擬統(tǒng)計(jì)數(shù)據(jù)。數(shù)據(jù)個(gè)數(shù)要和文件內(nèi)的國(guó)家和地區(qū)數(shù)一致;創(chuàng)建地理投影子圖,仍使用平面矩形投影模式;遍歷reader中的國(guó)家,將統(tǒng)計(jì)數(shù)據(jù)用rainbow()工具轉(zhuǎn)換為一個(gè)rgba顏色元組。二、世界地圖著色#5.在子圖右側(cè)添加新繪圖區(qū)(顏色標(biāo)尺)cax=fig.add_axes([0.92,0.25,0.02,0.5])#創(chuàng)建顏色的歸一化轉(zhuǎn)換器norm=mpl.colors.Normalize(vmin=50,vmax=max_value)#創(chuàng)建顏色標(biāo)尺并添加到cax子圖mpl.colorbar.ColorbarBase(cax,cmap=mpl.cm.rainbow,norm=norm)在子圖右側(cè)添加顏色標(biāo)尺。此處不能使用以前的plt.colorbar()方法添加,因?yàn)閍dd_geometries繪圖命令并沒(méi)有使用cmap參數(shù),系統(tǒng)無(wú)從參照去繪制顏色條。此處的顏色標(biāo)尺需人工設(shè)定,先用歸一化轉(zhuǎn)化器Normalize將統(tǒng)計(jì)數(shù)據(jù)歸一化到0~1之間,再使用ColorbarBase創(chuàng)建一個(gè)顏色條并添加到cax子圖中。文本可視化可以分為文本內(nèi)容可視化、文本關(guān)系可視化和文本多特征信息可視化三個(gè)方面。其中,文本的內(nèi)容可以通過(guò)關(guān)鍵詞、短語(yǔ)、句子和主題進(jìn)行展示。本節(jié)介紹文本內(nèi)容可視化中關(guān)鍵詞的詞云繪制方法。第3節(jié)
文本數(shù)據(jù)可視化importre #引入正則模塊regdp='2020年我國(guó)的GDP總量是100萬(wàn)億元're.findall('\d+',gdp)
#從文本中提取所有的數(shù)字,\d+代表所有數(shù)字Out:['2020','100'] #返回提取得到的信息列表re.findall('\D+',gdp)
#從文本中提取所有的非數(shù)字,\D+代表非數(shù)字Out:['年我國(guó)的GDP總量是','萬(wàn)億元']一、正則表達(dá)式文本處理需要從文本中提取信息,正則表達(dá)式是最好的提取工具。正則表達(dá)式使用特定的規(guī)則去匹配或檢索字符串。例如“\d+”匹配一連串?dāng)?shù)字,“[a-z]+”匹配一連串小寫字母。在支持正則表達(dá)式的編程語(yǔ)言中,正則表達(dá)式的語(yǔ)法規(guī)則是一樣的,區(qū)別只在于支持的語(yǔ)法數(shù)量有略微差異。元字符用于匹配某類字符,表達(dá)某種規(guī)則,常用的元字符如下:. :句點(diǎn)符匹配除了換行符\n外的任意單個(gè)字符\w :匹配字符(英文或中文)和數(shù)字,即[a~zA~Z中文0-9]\W :匹配任何非單詞字符,與\w相反\d :匹配數(shù)字[0-9]\D :匹配非數(shù)字的字符,與\d相反\s :匹配單個(gè)空白字符,如空格、換行符\n,回車符\r,制表符\t等\S :匹配任何非空白字符,與\s相反^ :匹配字符串的開始$ :匹配字符串末尾\ :取消轉(zhuǎn)義,將元字符視為普通字符* :前詞可重復(fù)0次到無(wú)限次? :前詞可重復(fù)0次或1次+ :前詞可重復(fù)1次到無(wú)限次() :()內(nèi)包含要提取的內(nèi)容表達(dá)一、正則表達(dá)式正則表達(dá)式的功能異常強(qiáng)大,寫法非常靈活。有時(shí)表達(dá)形式很復(fù)雜,要多次嘗試才能找到正確的規(guī)則。re模塊中常用的正則函數(shù)如下:importrere.findall(pattern,string,flags) #查找返回所有匹配的字符串列表re.match(pattern,string,flags)
#必須從頭部開始匹配,返回匹配對(duì)象或None值re.search(pattern,string,flags) #可從任意位置開始匹配,返回匹配對(duì)象或None值re.split(pattern,string,flags) #分割字符串re.sub(pattern,repl,string,count=0,flags=0) #替換子字符串參數(shù)中“pattern”代表正則表達(dá)式,“string”表示要匹配的字符串,“flags”是標(biāo)志位,控制匹配方式,例如是否區(qū)分大小寫、多行匹配等。一、正則表達(dá)式下面是一些正則表達(dá)式的示例:s
=
'Pythonisaprogramminglanguage're.findall('p',s)
#查找字母pOut:['p']
#默認(rèn)區(qū)分大小寫,所以只找到一個(gè)小寫pre.findall('p',s,flags=re.I)
#re.I表示忽略大小寫Out:['P','p']
#大寫、小寫p均找到re.findall('\w+',
s)
#提取所有單詞Out:['Python','is','a','programming','language']re.findall('\w{6,8}',
s)
#提取6-8個(gè)字符長(zhǎng)度的單詞,{6,8}長(zhǎng)度限定Out:['Python','programm','language']re.findall('\w{7,}',
s)
#提取長(zhǎng)度>=7的單詞,注意{7,}逗號(hào)后沒(méi)有空格Out:['programming','language']一、正則表達(dá)式s='網(wǎng)址,聯(lián)系郵箱abc@126.com。're.findall('http://[a-z0-9\.]+\.[a-z0-9]+',s,flags=re.I) #提取網(wǎng)址Out:['']一、正則表達(dá)式正則表達(dá)式“http://[a-z0-9\.]+\.[a-z0-9]+”表示匹配“http://英文數(shù)字.英文數(shù)字”這樣的字符串?!癧a-z0-9\.]+”中的“[a-z0-9]”代表所有的英文字母和數(shù)字,“\.”代表句點(diǎn)(句點(diǎn)本是元字符,前面加斜杠\停止轉(zhuǎn)義,只代表句點(diǎn)本身),“+”號(hào)代表任意多個(gè)。為便于理解,這個(gè)表達(dá)式寫得比較簡(jiǎn)單,并不完善,無(wú)法匹配所有的網(wǎng)址。re.findall('a(\d+)b','xa23bcc45xx') #a(\d+)b表示只提取ab中間的數(shù)字Out:['23'] #只提取23,數(shù)字45沒(méi)有取出上例的“()”很有用,前后的a和b是匹配規(guī)則,當(dāng)匹配時(shí),就取出()中匹配的內(nèi)容。一、正則表達(dá)式re.search函數(shù)用于查找字符串中可匹配的子串,找到第一個(gè)匹配項(xiàng)即返回,如果沒(méi)有匹配項(xiàng)就返回None。re.match函數(shù)必須從字符串首位置開始匹配。search()和match()都僅匹配一次,findall()則匹配所有符合規(guī)則的子串。s='Pythonisaprogramminglanguage'r=re.search('is',s)r #r的類型是re.MatchOut:<re.Matchobject;span=(7,9),match='is'>r.start(),r.end(),r.group() #匹配的起始、結(jié)束位置、匹配的字符串Out:(7,9,'is')re.match('is',s)
#將返回空None,因?yàn)?is'不在s的首部re.match('Python',s)
#匹配成功Out:<re.Matchobject;span=(0,6),match='Python'>一、正則表達(dá)式re.split()提供了靈活的分割形式,幫助我們分離字符串。s
=
'Python;is,a,\\language' #內(nèi)含多種形式的分隔符;,\\s.split()
#字符串自身的split()無(wú)法完全正確分割Out:['Python;','is,','a',',','\\','language']re.split(r'\W+',s)
#利用正則表達(dá)式分割,\W非單詞字符Out:['Python','is','a','language'] #將單詞完美切分出來(lái)上述代碼說(shuō)明字符串自身的split()分解的結(jié)果不夠理想,單詞末尾還有標(biāo)點(diǎn)符號(hào),利用re.split()可以得到更完美的單詞分解列表。二、
分詞分詞是將句子分解為單個(gè)詞匯,以便計(jì)算機(jī)做后續(xù)的處理。英文中詞與詞是用空格分隔的,英文分詞只需借助字符串分解函數(shù)split()即可??紤]到標(biāo)點(diǎn)符號(hào)的存在,如要得到一個(gè)相對(duì)干凈的詞語(yǔ)列表,可使用re.split()函數(shù)做分解,或先用re.sub()函數(shù)將所有標(biāo)點(diǎn)符號(hào)替換為空格,再使用split()做分詞。txt='Python;Ilovepython.'txt=txt.lower() #全部轉(zhuǎn)為小寫txt=re.sub('\W+','',txt) #將非單詞字符(\W)都用空格替換,相當(dāng)于去除標(biāo)點(diǎn)符號(hào)print(txt)lst=txt.split() #默認(rèn)以空格為分隔符分解字符串print(lst)Out:pythonilovepython['python','i','love','python']二、
分詞python平臺(tái)下我們常使用第三方庫(kù)jieba做中文分詞,在命令行上執(zhí)行如下命令安裝jieba庫(kù)。pipinstalljiebaimportjiebas='歡迎報(bào)考廣東金融學(xué)院的相關(guān)專業(yè)!'print('原句子:',s)lst=jieba.lcut(s)print(lst) #更新詞庫(kù)之前的分詞結(jié)果print('**************更新詞庫(kù)后**************')jieba.add_word('廣東金融學(xué)院') #臨時(shí)添加新詞"廣東金融學(xué)院"print(jieba.lcut(s)) #更新詞庫(kù)之后的分詞結(jié)果Out:原句子:歡迎報(bào)考廣東金融學(xué)院的相關(guān)專業(yè)!['歡迎','報(bào)考','廣東','金融','學(xué)院','的','相關(guān)','專業(yè)','!']**************更新詞庫(kù)后**************['歡迎','報(bào)考','廣東金融學(xué)院','的','相關(guān)','專業(yè)','!']二、
分詞jieba庫(kù)的更多信息可訪問(wèn)鏈接/fxsjy/jieba。jieba.load_userdict("data/mydict.txt") #加載自定義詞典s='淘金坑小區(qū)有一個(gè)工信出版集團(tuán)的辦事處'print(jieba.lcut(s)) #有了自定義詞典,專有名詞可正確分詞 如果用戶有很多專有名詞,可通過(guò)添加自定義詞典的方式解決。用記事本創(chuàng)建一個(gè)文本文件mydict.txt,每一行輸入一個(gè)自定義詞,如右圖所示,將文件保存在應(yīng)用程序所在的目錄中,保存時(shí)編碼一定要選為UTF-8格式。Out:['淘金坑','小區(qū)','有','一個(gè)','工信出版集團(tuán)','的','辦事處']三、繪制詞云圖fromwordcloudimportWordCloud #導(dǎo)入詞云庫(kù)s='''Withtheimprovingofsemiconductort
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 勞務(wù)合作協(xié)議(15篇)
- 青春勵(lì)志演講稿2024(33篇)
- 2024-2025學(xué)年山東省德州市臨邑博文中學(xué)高一上學(xué)期第三次月考?xì)v史試卷
- 2025年公共衛(wèi)生間設(shè)施改善施工合同樣本
- 2025年雙方解除購(gòu)銷合同協(xié)議的分析
- 2025年采購(gòu)合作合同標(biāo)準(zhǔn)文本
- 2025年儲(chǔ)藏室租賃合同樣本
- 2025年個(gè)人資金周轉(zhuǎn)借款協(xié)議書
- 2025年節(jié)能、高效干燥設(shè)備項(xiàng)目立項(xiàng)申請(qǐng)報(bào)告模稿
- 2025年信息技術(shù)租賃回購(gòu)協(xié)議書
- 中考語(yǔ)文名著復(fù)習(xí):《駱駝祥子》閱讀卡片1-24章
- 藥品監(jiān)管知識(shí)培訓(xùn)課件
- 過(guò)松源晨炊漆公店(其五)課件
- 安全事故案例圖片(76張)課件
- 預(yù)應(yīng)力錨索施工方案
- 豇豆生產(chǎn)技術(shù)規(guī)程
- MES運(yùn)行管理辦法
- 中藥炮制學(xué)教材
- 現(xiàn)場(chǎng)快速反應(yīng)跟蹤管理看板
- 框架核心筒結(jié)構(gòu)辦公樓施工測(cè)量方案(12頁(yè))
- 常見(jiàn)腫瘤AJCC分期手冊(cè)第八版(中文版)
評(píng)論
0/150
提交評(píng)論