日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

封装汉语自然语言处理中的常用方法(附代码:生成中文词云)

發布時間:2025/3/21 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 封装汉语自然语言处理中的常用方法(附代码:生成中文词云) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前敘

該文章寫作共花費二十分鐘,閱讀只需要七分鐘左右,讀完該文章后,你將學會使用少量代碼,將中文小說,中文新聞,或者其他任意一段中文文本生成詞云圖

背景

在進行漢語自然語言處理時候,經常使用的幾個方法,分詞,清除停用詞,以及獲取新詞,為了方便使用我們將其封裝.
這樣我們就可以通過一行簡單的代碼獲取清除停用詞并和英語一樣分詞完畢,并以空格分割的漢語字符串,或者還可以獲得其他功能.

至于之所以加上這個例子,是因為之前寫的任意中文文本生成中文詞云代碼比較,不宜于使用,而這次發的最基礎版本的文件:FontCN_NLPtools.py 其功能完全是適宜于生成詞云的例子,這樣就可以通過少量代碼,獲取中文詞云

代碼結構

結構簡介

- class FontCN_NLPtools() - __init__(self, textPath, stopwordsPath): - def ReadText(self, NewTextPath=False): # 讀取文本,默認為初始化時傳入的文本 - def getNewWordsByNLPIR(self, number): # 自動發現單詞,這是其他類調用的方法 - def getNewWords(self, GetNewWordsNumber=20): # 獲取新的單詞,添加到self.__newWords,并將其返回 - def addUserWords(self, NewWordsList): # 向用戶詞庫self.__userWords 中添加新單詞 - def jiebaClearAndCutText(self, isAddWord=False): # 使用結巴清理停用詞并返回分詞字符串 - def NLPIRClearText(self, isAddWord=False): # 使用NLPIR清理停用詞 - def NLPIR2016CutText(self): # 使用NLPIR分詞 - def getText(self, isJieba=True, isAddWord=False, GetNewWordsNumber=30): # 直接獲取分詞完畢并清理停用詞后的中文字符串

使用示例:

import FontCN_NLPtools as ftstext_path = 'txt/lztest.txt' # 設置要分析的文本路徑 stopwords_path = 'stopwords\CNENstopwords.txt' # 停用詞詞表fontsTools = fts.FontCN_NLPtools(textPath=text_path, stopwordsPath=stopwords_path)# fontsTools.addUserWords([u'路明非'])# 便捷的處理完畢的中文字符串 text = fontsTools.getText(isAddWord=True)# 處理第二段文本 fontsTools.ReadText(NewTextPath=u'E:\Pythonfiles2.7\NLP\漢語自然語言處理基本組件\txt\dazhuzai17523.txt')newText = fontsTools.getText(isAddWord=True)# 或者只調用一個方法,或者進行任意組合 fontsTools.ReadText(NewTextPath=u'E:\Pythonfiles2.7\NLP\漢語自然語言處理基本組件\txt\dazhuzai17523.txt')cutText = fontsTools.jiebaClearAndCutText() cutText2 = fontsTools.NLPIR2016CutText()# 在之后的版本中,我將會講NLPIR以及jieba或者其他自然語言處理的類庫進行高級封裝,這樣它將會更加簡潔,近期我將會直接將詞云生成功能封裝到該文件中,并在之后的時間內在該code中陸續地添加其他新的功能,如果你有什么想法可以發送郵件給我:fonttian@gmail.com

下載地址我的NLP源碼下載合集

例子,生成中文詞云

代碼閱讀說明

其結構與之前代碼差距不大,仍然使用繪梨衣與路明非的圖片進行演示.

相較于之前的文章 Python詞云 wordcloud 十五分鐘入門與進階不同之處在于

  • 我們這次不需要在wordcloud 設置停用詞
  • 我們將圖片保存了下來wc.to_file('保存路徑')
  • 對wc進行了更詳細的設置
  • 代碼如下

    # - * - coding: utf - 8 -*- # # 作者:田豐(FontTian) # 創建時間:'2017/7/28' # 郵箱:fonttian@Gmaill.com # CSDN:http://blog.csdn.net/fontthrone from os import path from scipy.misc import imread import matplotlib.pyplot as plt from wordcloud import WordCloud, ImageColorGenerator import sysreload(sys) sys.setdefaultencoding('utf-8')import FontCN_NLPtools as ftsd = path.dirname(__file__)text_path = 'txt/lztest.txt' # 設置要分析的文本路徑 stopwords_path = 'stopwords\CNENstopwords.txt' # 停用詞詞表fontsTools = fts.FontCN_NLPtools(textPath=text_path, stopwordsPath=stopwords_path) fontsTools.addUserWords([u'路明非']) text = fontsTools.getText(isAddWord=True)font_path = 'D:\Fonts\simkai.ttf' # 為worldcloud設置中文字體路徑沒 back_coloring_path = "img/lz1.jpg" # 設置背景圖片路徑imgname1 = "WordCloudDefautColors.png" # 保存的圖片名字1(只按照背景圖片形狀) imgname2 = "WordCloudColorsByImg.png" # 保存的圖片名字2(顏色按照背景圖片顏色布局生成) back_coloring = imread(path.join(d, back_coloring_path)) # 設置背景圖片# 設置詞云屬性 wc = WordCloud(font_path=font_path, # 設置字體background_color="white", # 背景顏色max_words=2000, # 詞云顯示的最大詞數mask=back_coloring, # 設置背景圖片max_font_size=100, # 字體最大值random_state=42,width=1000, height=860, margin=2, # 設置圖片默認的大小,但是如果使用背景圖片的話,那么保存的圖片大小將會)# 生成詞云, 可以用generate輸入全部文本(wordcloud對中文分詞支持不好,建議啟用中文分詞),也可以我們計算好詞頻后使用generate_from_frequencies函數 wc.generate(text) # 從背景圖片生成顏色值 image_colors = ImageColorGenerator(back_coloring)plt.figure() # 以下代碼顯示圖片 plt.imshow(wc) plt.axis("off") plt.show() # 繪制詞云# 保存圖片 wc.to_file(path.join(d, imgname1))image_colors = ImageColorGenerator(back_coloring)plt.imshow(wc.recolor(color_func=image_colors)) plt.axis("off") # 繪制背景圖片為顏色的圖片 plt.figure() plt.imshow(back_coloring, cmap=plt.cm.gray) plt.axis("off") plt.show() # 保存圖片 wc.to_file(path.join(d, imgname2))

    效果如下

    總結

    以上是生活随笔為你收集整理的封装汉语自然语言处理中的常用方法(附代码:生成中文词云)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。