小奈:其實(shí)你們寫的代碼好像有不同派系的对竣?
大仁:你是說編程語言?我來介紹下吧喊熟,我們來看下GitHub(程序員同城交友柏肪、代碼協(xié)作平臺(tái))的數(shù)據(jù),看下各種編程語言 Pull Requst的數(shù)據(jù), Javascript的提交量最高芥牌,前端的鼎盛時(shí)期烦味,python則處于飛速上升中,很有潛力壁拉。Java一直很穩(wěn)谬俄,常年占據(jù)了后端主流編程語言第一。
python熱度為何持續(xù)上漲弃理?
python可以用來干什么呢溃论?
- 后端開發(fā)語言,常見開發(fā)架構(gòu)django痘昌;
- 數(shù)據(jù)分析钥勋,常用庫炬转,pandas;
- 爬蟲算灸,scrapy扼劈;
- 人工智能,tensorflow菲驴。
人工智能和數(shù)據(jù)分析荐吵,近年來需求持續(xù)攀升,這方面人才待遇也是水漲船高赊瞬,既然python那么能干先煎,熱度自然飛速上漲。
爬蟲
說到數(shù)據(jù)分析巧涧,我們不得不說下數(shù)據(jù)來源薯蝎,一般是內(nèi)部數(shù)據(jù),也有外部數(shù)據(jù)褒侧,外部數(shù)據(jù)的獲取有很多種良风,最常見的方式就是爬蟲了。
爬蟲基于robots協(xié)議可以公開爬去網(wǎng)絡(luò)上的信息闷供。
python的工作原理
python中有成熟的爬蟲框架(scrapy烟央、bs4),只要你給爬蟲一個(gè)網(wǎng)址歪脏,它就可以去爬取疑俭,和輸入url類似卻又不同,不同的是爬蟲會(huì)把這些html文件里有用的信息抓取回來婿失,而且爬蟲可以爬取該網(wǎng)站相關(guān)的其它鏈接钞艇,像是daquan里的abc、123豪硅、456等哩照。
小奈:爬取別人的信息會(huì)不會(huì)違法?
大仁:看你怎么爬取懒浮,其實(shí)有個(gè)爬蟲協(xié)議(robots)飘弧,每個(gè)網(wǎng)站都可以聲明,其實(shí)就是聲明那些文件可以砚著、那些不可以次伶,下面以淘寶網(wǎng)的robots.txt為例:
User-agent: Baiduspider
Allow: /article
Allow: /oshtml
Disallow: /product/
Disallow: /
遵循robots協(xié)議后,爬取的數(shù)據(jù)不用于商用稽穆,基本上沒事冠王,商用的話目前還是灰色地帶,混沌蠻荒階段舌镶。
淘寶對(duì)百度的屏蔽
當(dāng)年還可以在百度里搜索到淘寶商品信息柱彻,后來淘寶決定對(duì)搜索引擎實(shí)施不同程度的屏蔽豪娜,那時(shí)候淘寶體量還沒那么大,屏蔽百度绒疗,會(huì)少了很多站外流量侵歇。但是這個(gè)關(guān)鍵性的決定,讓用戶心智統(tǒng)一(淘寶里才可以搜索商品),后面現(xiàn)金流般的淘寶廣告就更不說了,站在當(dāng)時(shí)义屏,很考驗(yàn)產(chǎn)品決策人邪蛔。
搜索引擎
爬蟲似乎和搜索引擎密切相關(guān),是的健提,是時(shí)候來科普下琳猫,搜索引擎的工作原理。
假如你在“JackSearch”私痹,這個(gè)搜索引擎里脐嫂,輸入“產(chǎn)品經(jīng)理”,那么當(dāng)你點(diǎn)擊搜索時(shí)紊遵,服務(wù)器就會(huì)去數(shù)據(jù)庫查找账千,返回相關(guān)的文件信息,那么你就會(huì)問暗膜,這些文件是哪來的匀奏?
是爬蟲們?nèi)ゾW(wǎng)頁世界里爬取的。
當(dāng)然学搜,搜索引擎遠(yuǎn)比這個(gè)復(fù)雜娃善,爬蟲抓取回來的信息,還需要存儲(chǔ)瑞佩,建立索引聚磺,這個(gè)推薦一本書,luence.
ide
爬蟲框架scrapy
Scrapy: Python開發(fā)的一個(gè)快速炬丸、高層次的屏幕抓取和web抓取框架瘫寝,用于抓取web站點(diǎn)并從頁面中提取結(jié)構(gòu)化的數(shù)據(jù)。Scrapy用途廣泛御雕,可以用于數(shù)據(jù)挖掘矢沿、監(jiān)測(cè)和自動(dòng)化測(cè)試。
數(shù)據(jù)存儲(chǔ)
又雙叒叕到了520
天龍八部
大家好,不知道大家看過闽坡,天龍八部沒栽惶?
“天龍八部”是哪八部愁溜?“天龍八部”都是“非人”,包括八種神道怪物外厂,因?yàn)橐浴疤臁奔啊褒垺睘槭酌嵯螅苑Q為“天龍八部”。
八部者汁蝶,一天渐扮,二龍,三夜叉掖棉,四乾達(dá)婆墓律,五阿修羅,六迦樓羅幔亥,七緊那羅耻讽,八摩呼羅迦。
看完介紹帕棉,還是不懂针肥,沒關(guān)系,今天主要講的是香伴,用數(shù)據(jù)分析慰枕,天龍八部里,高頻詞語瞒窒,人物關(guān)系捺僻,以及為什么你還是單身?
自己崇裁?
看到下面的詞云匕坯,為什么”自己“這個(gè)詞,那么高頻拔稳?
乍看之下葛峻,段譽(yù)詞頻(1551)最高。其實(shí)要結(jié)合“業(yè)務(wù)”巴比,實(shí)則喬峰才是正主术奖。要從喬峰的身世說起,開頭中轻绞,喬峰是丐幫幫主采记,后身世揭破,契丹人也政勃,改名蕭峰唧龄。
所以喬峰的詞頻(1900+)=喬峰(963)+蕭峰(966)
從詞語中奸远,我們可以看出既棺,寫作手法讽挟,喬峰(段譽(yù))聽/笑/呆/動(dòng)詞,所以人物+動(dòng)詞丸冕。
人物關(guān)系圖
故事有好多條主線耽梅。
一、尋仇:其中虛竹和喬峰胖烛,為什么關(guān)系最親密眼姐?因?yàn)樘撝竦陌质菤⑺绬谭宓陌值膸ь^大哥,尋仇是小說的主線之一洪己。
二妥凳、段正淳戀愛史:從另一角度看,可以說是答捕,大理鎮(zhèn)南王,段正淳戀愛史屑那,他和幾位女人談戀愛拱镐,并生下的都全都是女兒,女兒再一個(gè)個(gè)持际,和段譽(yù)談戀愛沃琅,搞得段譽(yù)很痛苦,最后發(fā)現(xiàn)自己蜘欲,不是親生的故事益眉。
總結(jié)來說
故事是由“慕容博”和“段正淳”,兩位大Boss挑起的,各負(fù)責(zé)一條主線姥份。
慕容博想光復(fù)燕國(guó)郭脂,才策劃殺死蕭家,企圖引起兩國(guó)戰(zhàn)亂澈歉,引起蕭父報(bào)仇展鸡;
鎮(zhèn)南王,則是負(fù)責(zé)拈花若草埃难,一身情債莹弊,一個(gè)人很爽,搞得很多人很痛苦涡尘,最后自殺忍弛,搞得王夫人、馬夫人考抄,各種痛苦细疚,阿朱得替父擋仇,被喬峰錯(cuò)手打死座泳,喬峰痛苦惠昔,和段譽(yù)談戀愛有都是自己的妹妹幕与,妹妹、段譽(yù)都很痛苦镇防,最后發(fā)現(xiàn)自己不是親生的啦鸣,釋然了。
520又到了来氧,為什么你還單身诫给?
- 段正淳:拈花若草,大boss啦扬,沒你就沒那么多破事了中狂,魅力指數(shù)10000。
- 虛竹:憨厚老實(shí)扑毡,殺人有艷福胃榕,從和尚到靈鷲宮主到附馬,屌絲逆襲的故事瞄摊,艷福指數(shù)1000勋又;
- 段譽(yù):始終如一,追了王姑娘换帜,幾十集電視劇楔壤,最后真情打動(dòng)王語嫣,另一角度看惯驼,有點(diǎn)“備胎上位”的感覺蹲嚣,對(duì)么?幸福指數(shù)祟牲,500隙畜;
- 王語嫣:從小愛慕表哥,最后被拒疲眷,被段譽(yù)打動(dòng)禾蚕,幸福指數(shù),400狂丝;
- 喬峰:丐幫幫主换淆,俠之大者,身世悲慘几颜,想和阿朱牧馬放羊倍试,卻一掌錯(cuò)殺阿朱,為和平而死蛋哭,幸福指數(shù)县习,100;
- 阿朱:小婢,從小沒有父愛躁愿、母愛叛本,一直崇拜喬峰,大英雄彤钟,為父擋仇来候,為“孝”犧“愛”,幸福指數(shù)逸雹,100营搅;
- 啊紫:執(zhí)著,只愛喬峰一人梆砸,最后很痛苦就是了转质,痛苦指數(shù)5000;
看了那么多故事帖世,依然談不好戀愛休蟹,你們呢?
實(shí)戰(zhàn)分割線
一日矫、詞云
這里主要用到了兩個(gè)庫鸡挠,jieba分詞用的,wordcloud詞云用搬男,matplib顯示用。
- 下載小說txt文件彭沼;
- 準(zhǔn)備一張mask(遮罩)圖片缔逛;
- 字體;
#coding:utf-8
from os import path
from collections import Counter
import jieba
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt
from wordcloud import WordCloud, STOPWORDS
if __name__=='__main__':
#讀取文件
d = path.dirname(__file__)
pardir = path.dirname(d)
pardir2 = path.dirname(pardir)
cyqf = path.join(pardir2,'tlbbqf/')
text = open(path.join(d,'tlbb.txt'), encoding="utf-8", errors="surrogateescape").read()
jieba_word = jieba.cut(text, cut_all=False) #cut_all 分詞模式
data = []
for word in jieba_word:
data.append(word)
dataDict = Counter(data)
with open('./詞頻統(tǒng)計(jì).csv', 'w', encoding='utf-8') as fw:
for k,v in dataDict.items():
fw.write("%s,%d\n" % (k,v))
mask = np.array(Image.open(path.join(d, "mask.png")))
font_path=path.join(d,"font.ttf")
stopwords = set(STOPWORDS)
wc = WordCloud(background_color="white",
max_words=2000,
mask=mask,
stopwords=stopwords,
font_path=font_path)
# 生成詞云
wc.generate(text)
# 生成的詞云圖像保存到本地
wc.to_file(path.join(d, "wordcloud.png"))
# 顯示圖像
plt.imshow(wc, interpolation='bilinear')
plt.axis("off")
plt.show()
二姓惑、人物關(guān)系圖
- 統(tǒng)計(jì)詞頻
text = open(path.join(d,'tlbb.txt'), encoding="utf-8", errors="surrogateescape").read()
jieba_word = jieba.cut(text, cut_all=False) #cut_all 分詞模式
data = []
for word in jieba_word:
data.append(word)
dataDict = Counter(data)
-
計(jì)算人物之間矩陣關(guān)系
-
用gephi畫出人物關(guān)系
首先是導(dǎo)入關(guān)系圖褐奴,逗號(hào)、矩陣于毙、utf-8敦冬;
image.png
然后就是箭頭,第一個(gè)是顯示節(jié)點(diǎn)信息唯沮,第二脖旱、三是調(diào)整連線的粗細(xì)、顏色介蛉;
點(diǎn)擊某個(gè)節(jié)點(diǎn)萌庆,例如段譽(yù),可以側(cè)重顯示他的人物關(guān)系币旧。
相關(guān)文章
5.1践险、競(jìng)品數(shù)據(jù)如何找?數(shù)據(jù)產(chǎn)品經(jīng)理的威力
5.2 高富帥python-人工智能時(shí)代