




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第04課:最簡單算法基于內(nèi)容的在第03課中解基于內(nèi)容步學(xué)習(xí)。的算法邏輯,以及的示計(jì)算邏輯之后可以直通過工程示來進(jìn)一工程邏輯Spark 2.0 之后,用再構(gòu)建 Sparkcontext ,以創(chuàng)建一個復(fù)合多功能替代,可以正常的從 HDFS文件,也可以從 Hive 中獲取 DataFrame 等。v a ls p a r kSe s. bu il d e r() = Sp a r kSed )/ / ssppaarrkk任名稱. a pame ( . e n a b l eHi v e Suppo r t () . g e t Or Cr ea t e () 那三個表可以先 load 到 Hive
2、中,然后 Spark 直從中 形成 DataFrame。/ /從h i v e中,獲取r a ti ng評分?jǐn)?shù)據(jù)集, 終終形形成成如如下下格格式式數(shù)數(shù)據(jù)據(jù) v a l mov i eAvgRa t e = s p a r kSe s s i os q l ( se l ec t mov i ev i e , a vg_ r a t e ), r o nd ( a vg (r a t e ) , 1 )a s a vg_ r a t efr om t x . t x_ r a ti ng s g r oup by f =(f . g e t ( 0 ) , f . g e t ( 1 ) ov
3、i e i d ) . r dd .ma p/ /獲取的基本屬性數(shù)據(jù),包包括括影,名稱,以及ggeennrree類類別v a l mov i e sDa t a = s p a r kSe ss i or ddl ( s e l ec t mov i e i d , titl e , g e n r efr om t x . t x_mov i e s ) ./ /獲取t a g s數(shù)據(jù),這取到所有的v a lt a g sDa t a = s p a r kSel ( s e l ec t mov i e i d , t a g fr om t x . t x_ t a g s ) . r
4、dd先對 tag 進(jìn)處很多 tag 其實(shí)說的是同一個東西,需要進(jìn)一定程度上的合并,這樣才能讓 tag 加的合(讀到可能有讀者意見bloods、blood 其實(shí)都是想說個只是一個實(shí)驗(yàn)案而已,搞這么復(fù)雜),舉個簡單子,blood、很腥,但是同的人使用的詞同的(這點(diǎn)大伙兒可以自由查看實(shí)驗(yàn)數(shù)據(jù)),所以需要進(jìn)一定程上的合并。t a gHiveSparknv a lt a g s S t a nd a r d i zeTmp = t a g s S t a nd a r d i ze . c o ll ec t () v a lt a g s S imi = t a g s S t a nd a r d
5、i ze .ma pf =v a rr e t Ta g = f . _2i f(f . _2 . t oS t r i ng . s p lit ( ) . s i ze = 1 )v a rv a ls imi Tmp = t a g s TmpS t a nd = t a g s S t a nd a r d i zeTmp. f ilt e r( _ . _2 . t oS t r i ng . s p li t ( ) . s i ze ! = 1 ). f ilt e r(f . _2 . t oS t r i ng . s i ze v a lf l a gi f(f l a g
6、 r e t Ta g= g e t Ed it S i ze (f . _2 . t oS t r i ng , t a gTmp . _2 . t o= 1 ) = t a gTmp . _2 r ea k () r i ng(f . _1 , r e t Ta g ) , 1 ) e l s e (f . _1 , f . _2 ) , 1 )其中,getEditSize 是計(jì)算兩個詞的編輯距離當(dāng)編輯距離在一閾值的時候,進(jìn)兩個詞的合并,具體邏輯見代碼。d e f g e t Ed it S i ze ( s t r 1 : S t r i ng , s t r 2 : S t r i n
7、g ) : i f( s t r 2 . s i ze s t r 1 . s i ze ) 0 e l s e / /計(jì)數(shù)v a rc oun t = 0v a ll oop = n ew Br ea k s/ /以較短的s t r 2為中心,進(jìn)遍歷,并逐個比較字符=v a l v a rf o rl e ng t hS t r 2 = s t r 2 . g e t By t e s () . l e ng t hi(= 0i =( 1繼續(xù)對 tag 進(jìn)處,統(tǒng)計(jì)頻度個作為對應(yīng)的 tag 屬性。v a l mov i eTa g = t a g s S imi . f =(f . _1 ,
8、f . _2 ff =(ff1 . _2 , ff . _ )ceByKe y ( _+_g r oupBy ( k=k . _1 . _1 ) .ma p . t oL i. s o r t By ( _ . r e v e. t a k e ( 10 ) . t oMa p )接下來處的 HanLP 進(jìn)、份和名稱,這個會簡單點(diǎn)兒,進(jìn)分詞處的話,怎么簡單怎么來,直接使用第三方作為分結(jié)果,直接停用詞。tagv a l mov i e sGe n r e s T itl eYea r = mov i e sDa t a .ma pf =v a l v a l v a l v a lv a lmo
9、v i e i d = f . g e t ( 0 ) titl e = f . g e t ( 1 )g e n r e s = f . g e t ( 2 ) . t oS t r i ng . s p lit ( | ) . t oL i s t . t a k e ( 1 ) titl eWo r l d s = Ha nLP . e x t r ac t Ke ywo r d ( titl e . t oS t r i n10y ea r = mov i eYea r Re g e x .mov i eYea r Re g ( titl e . t oS t r i ng )t oL
10、 i s t(mov i e i d , ( g e n r e s , titl eWo r l d s , y ea r) 取份的正則函數(shù)如下,是個 Java 寫的精通工具類(Scala 和混寫,簡直無美妙)。p ac k a g e u til s ;impo r tj a v a . u til . r e g e x .Ma t c h e r ; impo r tj a v a . u til . r e g e x . Pa tt e r n ;/ * De s c : 抽取份公式* /pub li c c l a ss mov i eYea r Re g e x p r i v
11、 a t epub li ci c S t r i ng modu l eTyp e = . * ( 0 - 9 0 - 9 0 - 9 ) ) . * ;i c vo i d ma i n ( S t r i ng s ) ea r Re g ( Go l d e nEy eSy s t em. ou t .l n (mov i( 199 ) ) ;pub li ci cr e t Yea rmov i eYea Re g ( S t r i ng s t r ) = 1994 ;Pa tt e r n p a tt e r nType = PMa t c h e r ma t c h e
12、r Type = p a tp il e (mod l eTyp e ) ;Type .ma t c h( s t r) ;wh il e(ma t c h e r Ty r e t Yea rr e t u r n r e t Ye r ;f i nd () epe(ma t c h e r Typ e . g r oup ( 1 ) ;通過 join 進(jìn)數(shù)據(jù)合并,生成一個為核心屬性集合。v a l mov i eCf =t e n t= mov i eTa g . j o(mov i eAvgRa t e ) . j oov i e sGe n r e s T itl eYea r) .m
13、a p/ (mov i e ,(f . _1 , f . _2 . _i s t , titl eL, y ea r , g e n r eL i s t , r a t e )_2 . _2 , f . _2 . _2 . _3 , f . _2 . _2 . _1 , f . _2 . _1 . _2 )相似計(jì)算開始之前,還記得之前說的嗎,可以進(jìn)候選集,先根據(jù)一些規(guī)則裁剪一下候選集。idJavav a l mov i eCon t e n t Ba s e = mov i eCon t e n t .ma pf =v a l v a l v a l v a l v a l v a lv a
14、 lc u rr e n tMo i v e I d = f . _1 c u rr e n t Ta gL i s t = f . _2c u rr e n t T itl eWo r l dL i s t = c u rr e n t Yea r = f . _4c u rr e n t Ge n r eL i s t = f . _5/ ( t a g , s c o r e ) f . _3c u rr e n t Ra t e = f . _6 . a s I n s t a n ceOf j a v a .ma t h . B i gDec ima l . doVa l u e (
15、) ma ndMov i e s = mov i eCon e t e n t Tmp .ma pff =v a l v a l v a l v a l v a lt a gS imi = g e t Co s Ta g s ( c u rr e n t Ta gL i s t , ff . _2 )titl e S imi = g e t Co s L i s t ( c u rr e n t T itl eWo r l dL s t , ff .)g e n r e S imi = g e t Co s L i s t ( c u rr e n t Ge n r eL i s t , f_
16、5 )y ea r S imir a t e S imi= g e t Yea r S imi ( c u rr e n t Yea r , ff . _4 )= g e t Ra t e S imi (ff . _6 . a s I n s t a n ceOf j a v at h B gDec ima l . doub l eVa l u e () v a l0 . 2* r a t e S imis c o r e =0 . 4*g e n r e S imi + 0 . 25* t a gS i i + 0 . 1r S imi + 0 . 05* titl e S imi(ff .
17、 _1 , s c o r e ) . t oL i s t . s o r t By ( k=k . _2 ) . r e v e r s e . t a k e ( 20 )( c udMov i ie . f l a tMa p (f = f . _2 .ma p ( k= (f . _1 , k _1 , k . _2 ) .ma p (f =Row. _1 , f . _2 , f . _3 ) 最后,將結(jié)果存入 Hive 中,Hive 中提前建好結(jié)果表/先進(jìn)Da t a F r ame格式化v a ls c h ema S t r i ng2 = mov i e i d mov i
18、v a ls c h emaCon t e n t Ba s e =r u c t ype ( s crddo r e g2 . s p lit ( )(f i e l dName . e qu a l s ( s c o r e ) Doub l eTyp e.ma p (f i e l dName=S t r u c t F if i e l dName , i fe l s eS t r i ngTyp e , t r u e ) ) ) v a l mov i eCon t e n t Ba s e a t a F r ame maCon t e n t Ba s e )/ /將結(jié)果存入h i v e , 需要先進(jìn)臨時表= s pe. c r ea t eDa t a F r ame (mov i eCon t e n t Ba s e , s c h e建v a lu s e r Ta gTmpTme = mit e _ ce n t _b a s e _ tmp v a lu s e r Ta gTaeName = m8 .mit e _ c on t e n t _b a s e _ r ec o e r TempTa b l e ( u s
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)村出售地皮合同范本
- 出口定金合同范本
- 業(yè)務(wù)用車租賃合同范本
- 入股果園合同范例
- 第五單元第14課文藝復(fù)興運(yùn)動2023-2024學(xué)年九年級上冊歷史同步教學(xué)設(shè)計(jì)(部編版)
- 專利實(shí)施使用合同范本
- epc項(xiàng)目銷售合同范本
- 2024年溫州龍港農(nóng)商銀行招聘筆試真題
- 借條合同范本范文
- 保安顧問合同范本
- 【初中+數(shù)學(xué)】+專題復(fù)習(xí)課+圓中的折疊課件+蘇科版數(shù)學(xué)九年級上冊
- 部編六年級下冊語文《1 北京的春節(jié)》課件
- (正式版)JB∕T 14732-2024 中碳和中碳合金鋼滾珠絲杠熱處理技術(shù)要求
- 2024年食堂經(jīng)理年終總結(jié)5篇
- 第22課 現(xiàn)代科技革命和產(chǎn)業(yè)發(fā)展(課件)-【中職專用】《世界歷史》(高教版2023基礎(chǔ)模塊)
- 2024年南京科技職業(yè)學(xué)院單招職業(yè)適應(yīng)性測試題庫完整
- 家長會課件:小學(xué)三年級家長會 課件
- 醫(yī)院專業(yè)技術(shù)年度考核總結(jié)報(bào)告
- 2024中考道法時政熱點(diǎn)《中國外交大事大盤點(diǎn)》課件
- 小學(xué)生國家文化安全教育
- 2024年消防初級考試模擬試題和答案
評論
0/150
提交評論