jieba的使用
jieba是一個在中文自然語言處理中用的最多的工具包之一,它以分詞起家,目前已經能夠實現包括分詞、詞性標注以及命名實體識別等多種功能。既然Jieba是以分詞起家,我們自然要首先學習Jieba的中文分詞功能。Jieba提供了三種分詞模式:
-
精確模式 : 在該模式下,Jieba會將句子進行最精確的切分
-
全模式 : 把句子中所有可以成詞的詞語都掃描出來,優點在于該模式非常快,缺點也很明顯,就是不能有效解決歧義的問題
-
搜索引擎模式 :在精確模式的基礎上,對長詞進行再次切分,該模式適合用于搜索引擎構建索引的分詞
有些結巴詞庫并沒有該詞,所以有時需要添加自定義詞典
添加自定義詞典
關鍵詞抽取
import jieba.analyse # 用于analyse這個包 seg_list = jieba.cut(text, cut_all=False) print (u"分詞結果:") print ("/".join(seg_list)) text = "故宮的著名景點包括乾清宮、太和殿和黃琉璃瓦等" #獲取關鍵詞 tags = jieba.analyse.extract_tags(text, topK=5) #前5 個 print (u"關鍵詞:") print (" ".join(tags)) OUT: 分詞結果: 故宮/的/著名景點/包括/乾清宮/、/太和殿/和/黃琉璃瓦/等 關鍵詞: 著名景點 乾清宮 黃琉璃瓦 太和殿 故宮打印關鍵詞
tags = jieba.analyse.extract_tags(text, topK=5, withWeight=True) #顯示比重 for word, weight in tags:print(word, weight) OUT: 著名景點 2.3167796086666668 乾清宮 1.9924612504833332 黃琉璃瓦 1.9924612504833332 太和殿 1.6938346722833335 故宮 1.5411195503033335詞性標注
import jieba.posseg as psegwords = pseg.cut("我愛北京天安門") for word, flag in words:print("%s %s" % (word, flag)) OUTL 我 r 愛 v 北京 ns 天安門 ns詞云展示
import jieba from wordcloud import WordCloud from scipy.misc import imread from collections import Counter import matplotlib.pyplot as pltdata={}text_file = open('./data/19Congress.txt','r',encoding='utf-8') text = text_file.read() with open('./data/stopwords.txt',encoding='utf-8') as file:stopwords = {line.strip() for line in file}seg_list = jieba.cut(text, cut_all=False) for word in seg_list:if len(word)>=2:if not data.__contains__(word):data[word]=0data[word]+=1 #print(data) my_wordcloud = WordCloud( background_color='white', #設置背景顏色max_words=400, #設置最大實現的字數font_path=r'./data/SimHei.ttf', #設置字體格式,如不設置顯示不了中文mask=imread('./data/mapofChina.jpg'), #指定在什么圖片上畫width=1000,height=1000,stopwords = stopwords ).generate_from_frequencies(data)plt.figure(figsize=(18,16)) plt.imshow(my_wordcloud) plt.axis('off') plt.show() # 展示詞云 my_wordcloud.to_file('result.jpg') text_file.close() 與50位技術專家面對面20年技術見證,附贈技術全景圖總結
- 上一篇: python与 积分
- 下一篇: sklearn特征的选择