一、java開發
(1) 應用開發,即Java SE開發,不屬於java的優勢所在,所以市場占有率很低,前途也不被看好。
(2) web開發,即Java Web開發,主要是基於自有或第三方成熟框架的系統開發,如ssh、springMvc、springside、nutz、,面向各自不同的領域,像OA、金融、教育等有非常成熟案例,這是目前最大的市場所在,故人稱“java為web而生”。但目前看它的缺點入門不高,所以待遇相對中等,上升空間很有限且緩慢。
(3)移動開發(Android),是目前的大趨勢,但移動端往往只能充當客戶端的角色,其技術的難度與復雜度要相對弱很多,因為一時的火熱其技術市價被高抬,但長久看來其發展空間有限,但比pc web端開發要增快一些。
(2) web開發,即Java Web開發,主要是基於自有或第三方成熟框架的系統開發,如ssh、springMvc、springside、nutz、,面向各自不同的領域,像OA、金融、教育等有非常成熟案例,這是目前最大的市場所在,故人稱“java為web而生”。但目前看它的缺點入門不高,所以待遇相對中等,上升空間很有限且緩慢。
(3)移動開發(Android),是目前的大趨勢,但移動端往往只能充當客戶端的角色,其技術的難度與復雜度要相對弱很多,因為一時的火熱其技術市價被高抬,但長久看來其發展空間有限,但比pc web端開發要增快一些。
二、網絡爬蟲
也叫spider,始於也發展於百度、谷歌。但隨者近幾年大數據的興起,爬蟲應用被提升到前所未有的高度。就大數據而言,其實自有數據或用戶產生數據平台很有限,只有像電商、微博類這樣的平台才能免強自給自足,像很多數據分析挖掘公司多以網絡爬蟲的方式得到不同來元的數據集合,最后為其所用,構建屬於自己的大數據綜合平台。其中,像輿情類、金融股票分析類、廣告數據挖掘類等屬於此種。 下面技術層面描述之。
(1) 傳統爬蟲,像nutch、hetriex之類的,以爬取簡單頁面為好,即沒有復雜請求的頁面。但隨着web2.0的興起,越來越多的網站采用很多動態交互技術如ajax之類的來提升用戶體驗、需用戶登陸才可訪問的頁面等,它們就無能為力了,或者說需要二次開發的開發成本太高,很多人放棄用它們。
(2) 定制爬蟲,針對一些大數據平台,如微博、電商、點評網之類的,頁面交互復雜、用戶登陸后方可訪問,往往是需要自定義定制開發一些爬蟲項目,如專門針對微博的微博爬蟲,針對大眾點評網的定制爬蟲,針對豆辯書評的評論爬蟲,都屬於典型的定制爬蟲,其難度要大於傳統爬蟲,需要相應的定制分析工具與能力,並且要具備很扎實的程序設計功底,優化效率,克服驗證碼、拒絕服務等反爬措施,方可做出高效的該類爬蟲。現在主流依然是基於httpclient+jsoup來搞定網絡下載與頁面解析。
(3) 新型爬蟲,結合一些成熟的第三方工具,如c/c++實現的webkit、htmlunit、phantomjs、casper等工具,其共同點即最大限度的去模擬人為操作瀏覽器的方式去解決用(1)、(2)所不易解決的問題,如模擬登陸、復雜參數的獲取、復雜頁面交互等問題。往往采用如上的工具可以輕松搞定這些問題,其最大的缺點是由於基於真實瀏覽器的操作,故效率比較低,所以往往需要和httpclient相結合,才能達到高效實用的目的。基於phantomjs做的百度元搜索抓取也證明了這一點,下一步可以結合它去完成微博類爬蟲的模擬登陸獲取cookies部分,之后采用httpclient+jsoup解決海量數據的抓取,是非常好的微博爬蟲解決方案。
因為其需要的知識面相對要較多,故其待遇要高於web開發,且上升幅度與速度都遠高於web開發。
(1) 傳統爬蟲,像nutch、hetriex之類的,以爬取簡單頁面為好,即沒有復雜請求的頁面。但隨着web2.0的興起,越來越多的網站采用很多動態交互技術如ajax之類的來提升用戶體驗、需用戶登陸才可訪問的頁面等,它們就無能為力了,或者說需要二次開發的開發成本太高,很多人放棄用它們。
(2) 定制爬蟲,針對一些大數據平台,如微博、電商、點評網之類的,頁面交互復雜、用戶登陸后方可訪問,往往是需要自定義定制開發一些爬蟲項目,如專門針對微博的微博爬蟲,針對大眾點評網的定制爬蟲,針對豆辯書評的評論爬蟲,都屬於典型的定制爬蟲,其難度要大於傳統爬蟲,需要相應的定制分析工具與能力,並且要具備很扎實的程序設計功底,優化效率,克服驗證碼、拒絕服務等反爬措施,方可做出高效的該類爬蟲。現在主流依然是基於httpclient+jsoup來搞定網絡下載與頁面解析。
(3) 新型爬蟲,結合一些成熟的第三方工具,如c/c++實現的webkit、htmlunit、phantomjs、casper等工具,其共同點即最大限度的去模擬人為操作瀏覽器的方式去解決用(1)、(2)所不易解決的問題,如模擬登陸、復雜參數的獲取、復雜頁面交互等問題。往往采用如上的工具可以輕松搞定這些問題,其最大的缺點是由於基於真實瀏覽器的操作,故效率比較低,所以往往需要和httpclient相結合,才能達到高效實用的目的。基於phantomjs做的百度元搜索抓取也證明了這一點,下一步可以結合它去完成微博類爬蟲的模擬登陸獲取cookies部分,之后采用httpclient+jsoup解決海量數據的抓取,是非常好的微博爬蟲解決方案。
因為其需要的知識面相對要較多,故其待遇要高於web開發,且上升幅度與速度都遠高於web開發。
三、自然語言處理
即NLP,nature language process的簡稱,它也是很多其它名稱的簡稱,很多人在此有誤解。其主要包括典型的三部分,分詞、詞性標注、句法分析。
(1)分詞:主流的包括開源的ansj分詞、ICTCLAS、哈工大的ltp、海量分詞、fudan分詞等,在借鑒ansj分詞的基礎上我也重構並開發了天亮分詞,並已加入ansj主持的中國自然語言處理開源組織nlpchina的 https://github.com/NLPchina/中。
(2)詞性標注:以前較主流的標注體系是ICTCLAS和北大標注體系,現在有出現了如哈工大ltp平台、大連理工自然語方處理實驗室的標注體系,大同小異。
(3)句法分析:這塊相對前兩者較難一些,目前國內我知道的是哈工大的ltp做的中文句法分析不錯,像stanford的parser對英文句法還可以接受,但對中文句法分析就比較多。
因為這一領域相對比較專,難度和工作量也較大,但由於開源分詞比較多且實用性不錯,所以專門搞這塊的人員往往都在大公司或比較牛的個人,當然待遇比上述一二也要高。
(1)分詞:主流的包括開源的ansj分詞、ICTCLAS、哈工大的ltp、海量分詞、fudan分詞等,在借鑒ansj分詞的基礎上我也重構並開發了天亮分詞,並已加入ansj主持的中國自然語言處理開源組織nlpchina的 https://github.com/NLPchina/中。
(2)詞性標注:以前較主流的標注體系是ICTCLAS和北大標注體系,現在有出現了如哈工大ltp平台、大連理工自然語方處理實驗室的標注體系,大同小異。
(3)句法分析:這塊相對前兩者較難一些,目前國內我知道的是哈工大的ltp做的中文句法分析不錯,像stanford的parser對英文句法還可以接受,但對中文句法分析就比較多。
因為這一領域相對比較專,難度和工作量也較大,但由於開源分詞比較多且實用性不錯,所以專門搞這塊的人員往往都在大公司或比較牛的個人,當然待遇比上述一二也要高。
四、數據挖掘
即datamining,這是現在的大趨勢,它往往是基於nlp為基礎的,再結合一些典型的數據挖掘算法,像分類、聚類、神經網絡相關等算法,從而達到數據挖掘應用開發與產品的目
(1)自行研發相關挖掘算法:也就是在一定數學和計算機基礎之上,做一些自主研發相關算法與調優,難度比較大,往往是一些牛人或算法研發工程師去搞。
(2) 引用第三方開源組件,像weka、mahout、libSvm等都提供了很多封裝好的各種不同數據挖掘算法的組件,供上層開發人員直接調用,只要學習好其API,並按說明input、output就可以。
網絡爬蟲,是大數據獲取的途徑,為nlp、datamining做准備。
nlp,是銜接網絡spider的數據和datamining的中間件。
datamining,是終極目標,也是得以變現的核心所在。
這四者是一個順序承接的關系,若能四者皆具,則謂之大才。
寫的比較隨意,不當之處歡迎交流。
(2) 引用第三方開源組件,像weka、mahout、libSvm等都提供了很多封裝好的各種不同數據挖掘算法的組件,供上層開發人員直接調用,只要學習好其API,並按說明input、output就可以。
五、四者之間的關系
javaweb開發方面可以說是一個門戶,可以讓用戶更好、更直接的了解后台的東西。網絡爬蟲,是大數據獲取的途徑,為nlp、datamining做准備。
nlp,是銜接網絡spider的數據和datamining的中間件。
datamining,是終極目標,也是得以變現的核心所在。
這四者是一個順序承接的關系,若能四者皆具,則謂之大才。
寫的比較隨意,不當之處歡迎交流。