摘要:準備工作抓取數據存到文檔中,了解問題分詞分的不太準確,比如機器學習會被切成機器和學習兩個詞,使用自定義詞典,原本的想法是只切出自定義詞典里的詞,但實際上不行,所以首先根據分詞結果提取出高頻詞并自行添加部分詞作為詞典,切詞完畢只統計自定義詞典
準備工作
抓取數據存到txt文檔中,了解jieba
問題jieba分詞分的不太準確,比如機器學習會被切成機器和學習兩個詞,使用自定義詞典,原本的想法是只切出自定義詞典里的詞,但實際上不行,所以首先根據jieba分詞結果提取出高頻詞并自行添加部分詞作為詞典,切詞完畢只統計自定義詞典里出現過的詞
wordcloud自身不支持中文詞云,需要指定中文字體,并且現在大部分的博客提供的generate_from_frequencies方法的參數與現在的wordcloud的參數不同,現在這個方法接收的是dict類型
代碼# -*- coding: utf-8 -*- import jieba import os import codecs from scipy.misc import imread import matplotlib as mpl import matplotlib.pyplot as plt from wordcloud import WordCloud, STOPWORDS, ImageColorGenerator class GetWords(object): def __init__(self, dict_name, file_list , dic_list): self.dict_name = dict_name self.file_list = file_list self.dic_list = dic_list #獲取自定義詞典 def get_dic(self): dic = open(self.dict_name, "r") while 1: line = dic.readline().decode("utf-8").strip() self.dic_list.append(line) if not line: break pass def get_word_to_cloud(self): for file in self.file_list: with codecs.open("../spider/" + file, "r",encoding="utf-8", errors="ignore") as string: string = string.read().upper() res = jieba.cut(string, HMM=False) reslist = list(res) wordDict = {} for i in reslist: if i not in self.dic_list: continue if i in wordDict: wordDict[i]=wordDict[i]+1 else: wordDict[i] = 1 coloring = imread("test.jpeg") wc = WordCloud(font_path="msyh.ttf",mask=coloring, background_color="white", max_words=50, max_font_size=40, random_state=42) wc.generate_from_frequencies(wordDict) wc.to_file("%s.png"%(file)) def set_dic(): _curpath=os.path.normpath( os.path.join( os.getcwd(), os.path.dirname(__file__) )) settings_path = os.environ.get("dict.txt") if settings_path and os.path.exists(settings_path): jieba.set_dictionary(settings_path) elif os.path.exists(os.path.join(_curpath, "data/dict.txt.big")): jieba.set_dictionary("data/dict.txt.big") else: print "Using traditional dictionary!" if __name__ == "__main__": set_dic() file_list = ["data_visualize.txt", "data_dev.txt", "data_mining.txt", "data_arc.txt", "data_analysis.txt"] dic_name = "dict.txt" dic_list = [] getwords = GetWords(dic_name, file_list, dic_list) getwords.get_dic() getwords.get_word_to_cloud()詞云示例
此圖為爬取拉勾網數據挖掘工程師崗位需要制作的詞云
github
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/44384.html
摘要:前言今天教大家用模塊來生成詞云,我讀取了一篇小說并生成了詞云,先看一下效果圖效果圖一效果圖二根據效果圖分析的還是比較準確的,小說中的主人公就是程理,所以出現次數最多。 前言 今天教大家用wrodcloud模塊來生成詞云,我讀取了一篇小說并生成了詞云,先看一下效果圖: 效果圖一: showImg(https://segmentfault.com/img/remote/1460000015...
摘要:庫常規方法方法描述例子向對象中加載文本將詞云輸出為圖像文件,或格式應用實例配置對象參數加載詞云文本輸出詞云文件分隔以空格分隔單詞統計單詞出現次數并過濾字體根據統計配置字號布局顏色環境尺寸配置對象參數參數參數描述例子指定詞云對象生成圖片的寬度 wordcloud庫常規方法 w = wordcloud.WordCloud() 方法 描述 例子 w.generate(txt) 向w...
Python pyecharts作為常用的數據可視化軟件,能夠清晰的將海量的數據,去做一個拆分,要是更直觀的去查看數據圖表的話,就需要去制作云圖了?那么,怎么制作云圖呢?下面就給大家詳細的做個解答。 詞云圖 什么是詞云圖,相信大家肯定不會感到陌生,一本書統計里面出現的詞頻,然后可視化展示,讓讀者快速的了解這個主題綱要,這就是詞云的直接效果。 詞云圖系列模板 固定模式詞云圖 修改一些參...
摘要:處理文件最終得到的字符串得到所有的文本之后,使用結巴分詞,處理成單個的詞語。 文章鏈接:https://mp.weixin.qq.com/s/NmJjTEADV6zKdT--2DXq9Q 回看18年,最有成就的就是有了自己的 博客網站,堅持記錄,寫文章,累計寫了36篇了,從一開始的難以下手,到現在成為一種習慣,雖然每次寫都會一字一句斟酌,但是每次看到產出,內心還是開心的,享受這樣的過...
摘要:準備把豆瓣上對它的影評短評做一個分析。這樣就得到了最新電影的信息了。例如戰狼的短評網址為其中就是電影的,表示評論的第條評論。如下圖所示好的,至此我們已經爬取了豆瓣最近播放電影的評論數據,接下來就要對數據進行清洗和詞云顯示了。 簡介 剛接觸python不久,做一個小項目來練練手。前幾天看了《戰狼2》,發現它在最新上映的電影里面是排行第一的,如下圖所示。準備把豆瓣上對它的影評(短評)做...
閱讀 3096·2021-09-28 09:42
閱讀 3448·2021-09-22 15:21
閱讀 1122·2021-07-29 13:50
閱讀 3564·2019-08-30 15:56
閱讀 3367·2019-08-30 15:54
閱讀 1196·2019-08-30 13:12
閱讀 1172·2019-08-29 17:03
閱讀 1198·2019-08-29 10:59