NCspider项目总结
下午就要答辯了,想把項(xiàng)目經(jīng)歷再總結(jié)一下。
項(xiàng)目分三個(gè)階段。
?
第一階段,是信息搜集整理階段
要想法設(shè)法從各個(gè)門戶網(wǎng)站上抓取到新聞和對(duì)應(yīng)的評(píng)論數(shù)據(jù)。首先要分析網(wǎng)站結(jié)構(gòu)。
1. 從哪里找到網(wǎng)站每日發(fā)布的所有新聞呢?
每個(gè)門戶網(wǎng)站都提供了一個(gè)滾動(dòng)新聞播報(bào)的網(wǎng)站。
以新浪為例:http://roll.news.sina.com.cn/s/channel.php?ch=01
這里能及時(shí)而全面地得到網(wǎng)站發(fā)布的新聞,而且可以看出有的新聞經(jīng)過簡(jiǎn)單的修改重新發(fā)布過。
讓人開心的是,控制臺(tái)查看瀏覽器后臺(tái)找到了提供原始數(shù)據(jù)的 API,可以用JSON直接解析了。
http://roll.news.sina.com.cn/interface/rollnews_ch_out_interface.php?col=89&spec=&type=&date=2015-10-31&ch=01&k=&offset_page=0&offset_num=0&num=1000
?
2. 針對(duì)每個(gè)新聞進(jìn)行處理
從新聞頁(yè)面開始看:首先,要對(duì)頁(yè)面HTML進(jìn)行解析提取出新聞文本。并嘗試得到更多的數(shù)據(jù)。
然后就是抓取對(duì)應(yīng)評(píng)論了,我從評(píng)論界面后臺(tái)找到了提供評(píng)論內(nèi)容的API,弄明白參數(shù)后,修改參數(shù)盡可能多地抓取評(píng)論。對(duì)返回的json進(jìn)行分析,數(shù)據(jù)還是很豐富的,包括評(píng)論有多少人參與,具體包括點(diǎn)贊還有發(fā)言,但是并沒有數(shù)據(jù)指出評(píng)論的情感傾向,這導(dǎo)致以后難以對(duì)其進(jìn)行感情傾向分析。
抓取階段雖然看起來邏輯簡(jiǎn)單,不過具體操作上還是遇到了很多問題,比如怎樣設(shè)計(jì)數(shù)據(jù)庫(kù),在沒有指導(dǎo)和前車之鑒的情況下只能自己摸索,保證新聞和評(píng)論的正確關(guān)聯(lián),怎樣面對(duì)更新過的新聞,設(shè)置數(shù)據(jù)之間的約束,選取什么字段作為 primarykey等等。又比如,在進(jìn)行數(shù)據(jù)抓取時(shí),遇到了不同編碼帶來的問題,要根據(jù)不同的網(wǎng)站選取合適的解碼方式,同時(shí)對(duì)于新出現(xiàn)的emoji表情也要采取一定的措施。也要考慮怎樣降低計(jì)算強(qiáng)度,提高抓取速度。盡量減少使用效率相對(duì)低下的三方庫(kù),直接用re解析HTML文本,寬度優(yōu)先搜索高效率地展開多線程。
?
第二階段,進(jìn)行網(wǎng)站搭建,展示熱門新聞。
怎樣找出熱門新聞并排序呢?
提出思路:根據(jù)新聞參與互動(dòng)的人數(shù)來進(jìn)行排序。后來證明達(dá)到了理想的效果,比如今年王寶強(qiáng)先生連讀多日用多條新聞?wù)紦?jù)各大網(wǎng)站頭條。
發(fā)現(xiàn),為數(shù)不多的幾條熱門新聞?wù)紦?jù)了絕大多數(shù)讀者的注意力。頭條的力量很強(qiáng)大!
再將新聞評(píng)論展示出來,其實(shí)除了熱門新聞,大多數(shù)新聞的評(píng)論數(shù)量寥寥無幾。
?
第三階段,進(jìn)行情感分析
一開始我打算從簡(jiǎn)單的兩個(gè)維度來判斷評(píng)論的感情,即積極和消極。這就涉及到自然語(yǔ)言處理了。
對(duì)于新聞評(píng)論,有一些比較突出的特點(diǎn),比如用詞廣泛,語(yǔ)法不嚴(yán)格,而且錯(cuò)別字出現(xiàn)比較多。
想要針對(duì)性地建立語(yǔ)言分析模型,就得有可以用來參考的模式。
如果要用機(jī)器學(xué)習(xí)的方法進(jìn)行建模的話,得有一個(gè)經(jīng)過標(biāo)記的訓(xùn)練集。考慮到時(shí)間和人手,我們難以抽出經(jīng)歷對(duì)每條新聞進(jìn)行標(biāo)記。分詞的工具Github已經(jīng)有了,比如結(jié)巴分詞。
在網(wǎng)上查過一些論文,閱讀了一些機(jī)器學(xué)習(xí)方面書籍,想要把情感分析做好還是有一定難度的。
總之,這一點(diǎn)目前更多地停留在理論階段。
我自己嘗試過Github上的SnowNLP,一個(gè)中文自然語(yǔ)言處理三方庫(kù),它本身帶有感情傾向分析,但是從結(jié)果上來看,并不能有效地分析出新聞評(píng)論的感情傾向。
?
總結(jié):
學(xué)海無涯,處處留心皆學(xué)問,親歷之,更覺如此。
大問題需要團(tuán)隊(duì)合作,如果團(tuán)隊(duì)里各司其職,各盡其力,我想項(xiàng)目會(huì)好很多。
????
最后:
有的人劃得一手好水。人各有志亦或是各有所長(zhǎng),不想再對(duì)團(tuán)隊(duì)里的其他成員做太多評(píng)論。
轉(zhuǎn)載于:https://www.cnblogs.com/learn-to-rock/p/5952685.html
總結(jié)
以上是生活随笔為你收集整理的NCspider项目总结的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ActiveReports中如何在后台导
- 下一篇: 40款用于简洁网页设计的光滑英文字体【下