摘要:導(dǎo)入包導(dǎo)入文件和數(shù)據(jù)數(shù)據(jù)預(yù)處理分詞并去除停用詞算法該類(lèi)會(huì)將文本中的詞語(yǔ)轉(zhuǎn)換為詞頻矩陣,矩陣元素表示詞在類(lèi)文本下的詞頻該類(lèi)會(huì)統(tǒng)計(jì)每個(gè)詞語(yǔ)的權(quán)值第一個(gè)是計(jì)算,第二個(gè)是將文本轉(zhuǎn)為詞頻矩陣獲取詞袋模型中的所有詞語(yǔ)將矩陣抽取出來(lái),元素表示
導(dǎo)入包
import os import sys import numpy as np import pandas as pd import matplotlib.pyplot as plt import re from pandas import Series, DataFrame import string import re import jieba import jieba.analyse import datetime from wordcloud import WordCloud, ImageColorGenerator import codecs導(dǎo)入文件和數(shù)據(jù)
gongdan = pd.read_excel("Gongdan.xlsx")數(shù)據(jù)預(yù)處理
gongdan["content"] = [str(i) for i in gongdan["content"]] gongdan["content"] = ["".join(re.findall(u"[u4e00-u9fff]+", i)) for i in gongdan["content"]] indexs = list(gongdan["content"][pd.isnull(gongdan["content"])].index) gongdan = gongdan.drop(indexs) indexs = list(gongdan["content"][gongdan["content"]==""].index) gongdan = gongdan.drop(indexs) content = gongdan["content"] cont = "".join(content) cont = "".join(re.findall(u"[u4e00-u9fa5]+", cont))分詞并去除停用詞
stopwords = set() fr = codecs.open("stopwords.txt", "r", "utf-8") for word in fr: stopwords.add(str(word).strip()) fr.close() jieba.load_userdict("dict.txt") text = list(jieba.cut(cont, cut_all=False, HMM=True)) text = list(filter(lambda x: x not in stopwords, text)) text = [str(i) for i in text if i != " "]Tfidf 算法
from sklearn import feature_extraction from sklearn.feature_extraction.text import TfidfTransformer from sklearn.feature_extraction.text import CountVectorizer test = " ".join(text) tlist = [] tlist.append(test) vectorizer=CountVectorizer()#該類(lèi)會(huì)將文本中的詞語(yǔ)轉(zhuǎn)換為詞頻矩陣,矩陣元素a[i][j] 表示j詞在i類(lèi)文本下的詞頻 transformer = TfidfTransformer()#該類(lèi)會(huì)統(tǒng)計(jì)每個(gè)詞語(yǔ)的tf-idf權(quán)值 tfidf = transformer.fit_transform(vectorizer.fit_transform(tlist)) #第一個(gè)fit_transform是計(jì)算tf-idf,第二個(gè)fit_transform是將文本轉(zhuǎn)為詞頻矩陣 word=vectorizer.get_feature_names()#獲取詞袋模型中的所有詞語(yǔ) weight=tfidf.toarray()#將tf-idf矩陣抽取出來(lái),元素a[i][j]表示j詞在i類(lèi)文本中的tf-idf權(quán)重 tfidf_list = {} for i in range(len(weight)):#打印每類(lèi)文本的tf-idf詞語(yǔ)權(quán)重,第一個(gè)for遍歷所有文本,第二個(gè)for便利某一類(lèi)文本下的詞語(yǔ)權(quán)重 for j in range(len(word)): tfidf_list[word[j]] = weight[i][j]詞云
font_path = "yahei.ttf" from PIL import Image back_coloring = np.array(Image.open("circle.jpg")) wc = WordCloud(font_path=font_path, # 設(shè)置字體 background_color="white", # 背景顏色 max_words=60, # 詞云顯示的最大詞數(shù) mask=back_coloring, # 設(shè)置背景圖片 stopwords=stopwords, max_font_size=100, # 字體最大值 random_state=42, width=1000, height=860, margin=2,# 設(shè)置圖片默認(rèn)的大小,但是如果使用背景圖片的話,那么保存的圖片大小將會(huì)按照其大小保存,margin為詞語(yǔ)邊緣距離 # prefer_horizontal=1, ) wc.generate_from_frequencies(tfidf_list) plt.imshow(wc, interpolation="bilinear") plt.axis("off") plt.figure() wc.to_file("w.png") # create coloring from image image_colors = ImageColorGenerator(back_coloring) # recolor wordcloud and show # we could also give color_func=image_colors directly in the constructor plt.imshow(wc.recolor(color_func=image_colors), interpolation="bilinear") plt.axis("off") plt.figure() plt.imshow(back_coloring, cmap=plt.cm.gray, interpolation="bilinear") plt.axis("off") plt.show()
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/41336.html
摘要:上面是生成詞云的方法封裝,還有一些其他方法根據(jù)詞頻生成詞云根據(jù)文本生成詞云根據(jù)詞頻生成詞云根據(jù)文本生成詞云將長(zhǎng)文本分詞并去除屏蔽詞此處指英語(yǔ),中文分詞還是需要自己用別的庫(kù)先行實(shí)現(xiàn),使用上面的對(duì)現(xiàn)有輸出重新著色。 對(duì)于數(shù)據(jù)展示這一塊有時(shí)候會(huì)用到詞云,python中提供的wordcloud模塊可以很靈活的完成生成詞云除了使用python提供的wordcloud模塊以為還有在線的生成方式ht...
摘要:準(zhǔn)備把豆瓣上對(duì)它的影評(píng)短評(píng)做一個(gè)分析。這樣就得到了最新電影的信息了。例如戰(zhàn)狼的短評(píng)網(wǎng)址為其中就是電影的,表示評(píng)論的第條評(píng)論。如下圖所示好的,至此我們已經(jīng)爬取了豆瓣最近播放電影的評(píng)論數(shù)據(jù),接下來(lái)就要對(duì)數(shù)據(jù)進(jìn)行清洗和詞云顯示了。 簡(jiǎn)介 剛接觸python不久,做一個(gè)小項(xiàng)目來(lái)練練手。前幾天看了《戰(zhàn)狼2》,發(fā)現(xiàn)它在最新上映的電影里面是排行第一的,如下圖所示。準(zhǔn)備把豆瓣上對(duì)它的影評(píng)(短評(píng))做...
摘要:今年的流浪地球這么火,通過(guò)爬取貓眼電影上網(wǎng)友對(duì)該片的評(píng)價(jià)如何。也許很多人在這天通過(guò)看流浪地球過(guò)節(jié)吧。 背景 最近幾年貓眼電影越來(lái)越熱門(mén)了,都差不多和豆瓣并駕齊驅(qū)了。今年的《流浪地球》這么火,通過(guò)爬取貓眼電影上網(wǎng)友對(duì)該片的評(píng)價(jià)如何。 爬取貓眼評(píng)論 找到評(píng)論網(wǎng)頁(yè)地址 先打開(kāi)貓眼官網(wǎng)找到《流浪地球》的介紹頁(yè)面:https://maoyan.com/films/248906 showImg(h...
摘要:數(shù)據(jù)庫(kù)文件已經(jīng)超過(guò)了了。復(fù)聯(lián)從開(kāi)始便是漫威宇宙各路超級(jí)英雄的集結(jié),到現(xiàn)在的第部,更是全英雄的匯聚。所以,滅霸出現(xiàn)的次數(shù)居然高于了鋼鐵俠。情感分析,又稱為意見(jiàn)挖掘傾向性分析等。 showImg(https://segmentfault.com/img/remote/1460000019095022); 作者 | 羅昭成責(zé)編 | 唐小引 《復(fù)聯(lián) 4》國(guó)內(nèi)上映第十天,程序員的江湖里開(kāi)始流傳這...
Python pyecharts作為常用的數(shù)據(jù)可視化軟件,能夠清晰的將海量的數(shù)據(jù),去做一個(gè)拆分,要是更直觀的去查看數(shù)據(jù)圖表的話,就需要去制作云圖了?那么,怎么制作云圖呢?下面就給大家詳細(xì)的做個(gè)解答?! ≡~云圖 什么是詞云圖,相信大家肯定不會(huì)感到陌生,一本書(shū)統(tǒng)計(jì)里面出現(xiàn)的詞頻,然后可視化展示,讓讀者快速的了解這個(gè)主題綱要,這就是詞云的直接效果?! ≡~云圖系列模板 固定模式詞云圖 修改一些參...
閱讀 3225·2021-11-08 13:18
閱讀 2344·2019-08-30 15:55
閱讀 3654·2019-08-30 15:44
閱讀 3124·2019-08-30 13:07
閱讀 2840·2019-08-29 17:20
閱讀 2011·2019-08-29 13:03
閱讀 3493·2019-08-26 10:32
閱讀 3278·2019-08-26 10:15