一个色的导航资源精品在线观看|手机看片在线精品视频|伊人亚洲成人电影|亚洲欧美在线男女|无码无码在线观看五月精品视频在线|超碰日韩欧美在线|午夜精品蜜桃一区二区久久久|91欧美动态国产精品女主播|色欲色香天天天综合网在线观看免费|伊人春色在线伊人

薩摩耶要人陪才睡

時間:2025-01-07 22:35 人氣:0 編輯:招聘街

一、薩摩耶要人陪才睡

如何訓(xùn)練你的薩摩耶要人陪才睡?

如果你是一名薩摩耶犬的主人,你可能曾經(jīng)遇到過一些挑戰(zhàn),其中一個常見的問題就是他們需要人陪著才睡覺。這種行為常常會讓主人感到困惑,但通過正確的訓(xùn)練和處理,你可以幫助你的薩摩耶建立更健康的睡眠習(xí)慣。在本文中,我們將分享一些關(guān)于如何訓(xùn)練你的薩摩耶犬獨立入睡的技巧。

薩摩耶的睡眠需求

了解你的薩摩耶的睡眠需求是訓(xùn)練的第一步。薩摩耶是一種活潑好動的犬種,他們需要充足的活動量來消耗體力。如果你的薩摩耶沒有得到足夠的運動,他們可能會變得焦躁不安,需要依賴人陪才能入睡。

此外,薩摩耶也是一種非常親近主人的犬種,他們喜歡與主人建立密切的關(guān)系。這種親近傾向可能會表現(xiàn)在需要人陪才能安心入睡的行為中。因此,訓(xùn)練薩摩耶獨立入睡需要結(jié)合他們的體能需求和情感需求。

建立固定的睡眠環(huán)境

為了幫助你的薩摩耶獨立入睡,你需要建立一個固定的睡眠環(huán)境。這包括為你的薩摩耶選擇一個舒適的睡眠地點,比如一個柔軟的狗床或者專門的睡眠區(qū)域。這個地方應(yīng)該安靜、舒適,最好遠離外界干擾。

另外,為了營造助眠的氛圍,你可以為薩摩耶準備一些安撫的玩具或者盲目,幫助他們放松身心。在這個固定的睡眠環(huán)境中,讓你的薩摩耶逐漸習(xí)慣獨立入睡,而不依賴人陪。

漸進式訓(xùn)練

訓(xùn)練薩摩耶獨立入睡是一個漸進式的過程,你需要耐心和持之以恒。一開始,你可以在睡前與他親密接觸,給予他安慰和安撫,然后逐漸減少這種依賴性的行為。

你可以逐漸延長與他分開的時間,讓他習(xí)慣獨自入睡。如果你的薩摩耶在夜晚醒來,試圖依賴人陪才能再次入睡,你可以嘗試慢慢減少這種響應(yīng),幫助他建立更獨立的睡眠能力。

積極的強化訓(xùn)練

在訓(xùn)練過程中,你可以使用積極的強化方法來幫助你的薩摩耶建立獨立入睡的習(xí)慣。比如,當(dāng)他能夠在沒有人陪的情況下入睡時,你可以給予他獎勵,比如零食或者表揚。

通過積極的強化訓(xùn)練,你可以增強你的薩摩耶與獨立入睡之間的聯(lián)系,幫助他建立更穩(wěn)定的行為模式。記住,訓(xùn)練過程中要注意及時給予獎勵和正面反饋,以幫助他更好地理解你的期望。

關(guān)注健康和情緒問題

最后,如果你的薩摩耶始終需要人陪才能入睡,可能是因為他們存在一些健康或者情緒問題。在這種情況下,你應(yīng)該及時咨詢獸醫(yī)或者專業(yè)的狗行為專家,以找出根本原因并制定合適的治療方案。

有時候,薩摩耶需要人陪才能入睡可能是因為他們感到焦慮或者害怕,需要更多的安慰和支持。了解你的薩摩耶并給予他們足夠的關(guān)愛和照顧是培養(yǎng)健康睡眠習(xí)慣的關(guān)鍵。

結(jié)語

總的來說,訓(xùn)練薩摩耶獨立入睡需要耐心、理解和持之以恒。通過建立固定的睡眠環(huán)境、漸進式訓(xùn)練、積極的強化和關(guān)注健康問題,你可以幫助你的薩摩耶建立更健康、更獨立的睡眠習(xí)慣。記住,與你的寵物建立良好的關(guān)系是培養(yǎng)積極行為的基礎(chǔ),而理解他們的需求和情感是實現(xiàn)成功訓(xùn)練的關(guān)鍵。

二、壽險自然死亡才陪嗎

壽險自然死亡才陪嗎

壽險是一種人們寄托著對未來的期望的保險產(chǎn)品,它能夠提供保障和經(jīng)濟支持,確保我們的家人在我們離開后能夠有一個安全的生活。然而,很多人對于壽險的保險賠償有著一些疑問,特別是當(dāng)被保險人是因自然死亡而離世時。

自然死亡對壽險賠付的影響

壽險一般分為兩種類型:自然死亡保險和意外身故保險。其中,自然死亡保險是指當(dāng)被保險人因自然原因而去世時,壽險公司會向受益人支付保險金額。相比之下,意外身故保險則是在被保險人因意外事故而喪命時進行賠付。

對于自然死亡保險,壽險公司會根據(jù)合同中的條款和條件來確定賠付金額。通常情況下,壽險合同中會明確規(guī)定壽險賠償?shù)姆秶蜅l件。一般來說,壽險保單在自然死亡的情況下是可以獲得賠償?shù)?,但具體的賠償金額會根據(jù)保單的條款而有所不同。

壽險賠付的條件

針對壽險自然死亡賠付的條件,通常包括以下幾個方面:

  1. 保險合同有效:保險合同必須在有效期內(nèi),且保費已按時繳納。否則,在保險合同失效或未按時繳費的情況下,壽險公司不承擔(dān)賠償責(zé)任。
  2. 自然死亡范圍:保險合同中會對自然死亡的范圍進行定義和解釋。自然死亡一般指因自身健康因素或年老體衰導(dǎo)致的死亡,例如疾病、自然衰老等。在這些情況下,被保險人的死亡符合自然死亡保險的賠付條件。
  3. 合同約定期限:壽險合同中會約定一定的等待期或免責(zé)期。在免責(zé)期內(nèi),被保險人的自然死亡將不獲得賠償。等待期是為了防止投保人為了獲取保險金而故意偽造的情況。

保險公司態(tài)度和政策

不同的保險公司在對壽險自然死亡賠付問題上可能存在差異。有些保險公司對自然死亡條件較為寬松,而有些則會對自然死亡進行更嚴格的界定。

因此,投保人在購買壽險產(chǎn)品時應(yīng)該仔細閱讀合同內(nèi)容,了解保險公司對于自然死亡的定義以及賠付條件的具體規(guī)定。如果對合同中的某些條款存在疑問,可以咨詢專業(yè)人士或聯(lián)系保險公司的客服進行咨詢。

關(guān)于壽險自然死亡賠付的常見問題

以下是一些關(guān)于壽險自然死亡賠付的常見問題及答案:

  1. 1. 如果被保險人因意外事故但非即時身故,是否可獲得賠付?
  2. 根據(jù)壽險合同的約定,如果被保險人因意外事故而導(dǎo)致傷殘或暫時停工,但并非即時身故,一般是不符合壽險賠付條件的。自然死亡保險主要是針對被保險人的身故情況。

  3. 2. 壽險自然死亡保險是否包括自殺賠付?
  4. 大多數(shù)壽險合同會規(guī)定自殺在一定期限內(nèi)是不會進行賠付的。通常在自殺時間起兩年內(nèi),保險公司不承擔(dān)賠償責(zé)任。自殺在保險合同中是一種特殊情況,需要謹慎對待。

  5. 3. 壽險自然死亡保險是否需要體檢?
  6. 壽險自然死亡保險一般需要被保險人進行體檢,以確認其身體狀況是否適合購買該保險產(chǎn)品。因為保險公司需要評估被保險人的風(fēng)險,從而確定保險費和賠付條件。

總之,在購買壽險自然死亡保險時,我們需要詳細了解合同條款,確保自己對賠付條件有清晰的認識。如果對合同內(nèi)容有任何疑問,建議及時咨詢律師或保險公司的專業(yè)人員。

三、美女陪導(dǎo)演睡完才知道他說

近日,一則關(guān)于美女陪導(dǎo)演睡完才知道他說的新聞引起了廣泛關(guān)注。這個事件引發(fā)了許多人的思考和討論,對于娛樂圈的黑暗面再次引起了人們的擔(dān)憂。

背后的故事

據(jù)報道,一位美女模特聲稱自己被一位知名導(dǎo)演邀請到他的家中陪睡。在陪睡的過程中,這位模特才發(fā)現(xiàn)導(dǎo)演其實并不會說他所聲稱的流利英語,而是一直使用自己的母語與她交流。這對于那位模特來說,是一個巨大的震驚和打擊。

娛樂圈黑暗面再次曝光

雖然這件事情只是個別案例,但它再次引起了人們對于娛樂圈黑暗面的關(guān)注。導(dǎo)演與演員之間的關(guān)系向來備受關(guān)注,有時候會因為一些不道德的行為而引發(fā)爭議。這次事件的曝光,讓人們對于娛樂圈亂象感到憤慨和失望。

在娛樂圈,有一些不法之徒利用自己的職權(quán)和地位,對待演員不公正。他們以提供資源和機會為借口,去滿足自己的私欲和欺騙他人。這種行為不僅傷害了受害者的利益,也敗壞了整個娛樂行業(yè)的形象。

呼喚行業(yè)規(guī)范和法律保護

為了避免這種事件的發(fā)生,娛樂業(yè)需要更加完善的規(guī)范和法律保護機制。首先,要建立嚴格的審核機制,確保電影、電視劇的制作過程中不發(fā)生任何不合理的行為。同時,演員們也需要加強法律意識,學(xué)會保護自己的合法權(quán)益。

其次,我們需要加大對于娛樂圈的監(jiān)管力度。只有加強對于導(dǎo)演、制片人等行業(yè)人士的監(jiān)督,才能有效地遏制他們的不當(dāng)行為。同時,對于違法違規(guī)行為要進行嚴厲的處罰,以起到震懾作用。

此外,社會的監(jiān)督也起到了至關(guān)重要的作用。公眾應(yīng)該保持對于娛樂圈的關(guān)注和聲音,通過輿論的力量推動整個行業(yè)向更加規(guī)范和健康的方向發(fā)展。

演員自救與整改

對于演員來說,保護自己的權(quán)益同樣重要。他們需要學(xué)會如何判斷一個機會是真實可信還是陷阱。要了解每個合作方的背景和信譽,對于不合理的要求和行為要果斷拒絕。

同時,演員也需要通過自身的努力和能力來提高自己的地位和話語權(quán)。只有真正擁有了實力和獨立思考能力的演員,才能避免成為他人的玩物。

引起社會關(guān)注的價值

這次事件引起了廣泛的社會關(guān)注,有助于推動娛樂圈更好地規(guī)范自身。通過這種曝光,公眾對于問題和亂象有了更深入的了解,同時也給了受害者更多的關(guān)注和支持。

娛樂圈作為一個特殊的行業(yè),需要承擔(dān)起對社會的責(zé)任。不僅要創(chuàng)造出優(yōu)秀的作品,還要為整個社會樹立正確的價值觀和道德標準。只有這樣,我們才能共同努力,讓娛樂圈成為真正美好的世界。

四、怎么陪貓咪玩它才高興?

陪貓咪玩耍是與它建立互動和增進關(guān)系的好方式。以下是一些可以讓貓咪高興的玩耍方法:

1. 提供適合的玩具:給貓咪提供各種適合它的玩具,如羽毛棒、小球、貓爪板等。貓咪喜歡追逐、抓捕和攻擊的游戲,這些玩具可以激發(fā)它們的獵食本能。

2. 使用互動玩具:與貓咪一起使用互動玩具,如激光筆或線繩,讓貓咪追逐其中的光點或物體。確保在使用激光筆時不要直接照射到貓咪身體或眼睛。

3. 增加運動和追逐:利用長走廊或開闊的空間,與貓咪一起玩追逐游戲。你可以使用玩具或紙球引導(dǎo)貓咪追逐,并給予它鼓勵和贊美。

4. 制作隱藏和尋找游戲:將貓咪的零食或玩具藏在不同的地方,讓貓咪通過嗅覺和探索找到它們。這可以激發(fā)貓咪的智力和探索欲望。

5. 定期互動和玩耍時間:確保每天有一段專門的時間與貓咪互動和玩耍。這可以增進你們之間的關(guān)系,并滿足貓咪的需求。

6. 觀察貓咪的喜好:觀察貓咪的喜好和行為,了解它最喜歡的玩耍方式。有些貓咪喜歡攀爬,你可以為它提供攀爬架或樹枝;有些貓咪喜歡追逐,你可以使用快速移動的玩具引起它們的興趣。

重要的是,尊重貓咪的邊界和需求。如果貓咪不感興趣或表現(xiàn)出不喜歡的行為,就停止相應(yīng)的游戲或活動。每只貓咪的個性和喜好都有所不同,耐心地了解和適應(yīng)貓咪的喜好,與它們建立更深入的互動和關(guān)系。

五、怎么陪狗狗玩才不孤獨?

有很多玩的,撓癢癢,撿球球,。。。。。

六、怎樣陪孩子讀書才最有效?

1、 大聲朗讀

在孩子還沒有認字的情況下,或者說還不能夠獨立的完成閱讀的情況下,父母在陪伴孩子讀書的時候,可以大聲的朗讀出來。

為什么呢?因為這個時候孩子還沒有認識字,不能通過識別文字來觸發(fā)自己的大腦進行思考。但是,他能夠辨識聲音和一些簡單的語言,那么當(dāng)我們大聲的朗讀的時候,孩子可以根據(jù)聲音語和言當(dāng)去想象、去判斷我們所要表達的意思。

在這樣的整個過程下來,孩子可以欣賞我們聲音的同時,他自己的想象力、判斷力,以及語言能力都能夠得到一定的鍛煉,從而提升大腦的活躍程度。

2、 尊重孩子

親子閱讀最重要的主角還是孩子。我們要站在孩子的角度去閱讀,去完成這一過程,用孩子的思考方式進行思考。

比如說,琳琳的孩子快兩歲了,平時有空的時候總會叫媽媽給他講故事,而且最喜歡的就是講龜兔賽賽跑的故事。

琳琳覺得這個故事已經(jīng)講了很多遍了,一直跟孩子說要換一個故事,但是孩子總是不肯,就是要聽這個故事才開心。

其實,孩子還小,他的記憶能力還是比較弱的,基本上是處于于機械記憶的階段,不能進行邏輯的分析的。

不斷重復(fù)的聲音、語言、動作可以和他大腦當(dāng)中先前的的簡單記憶進行快速的聯(lián)系,這樣會讓孩子感覺到輕松、安全和愉悅。

所以孩子會不厭其煩的想去重復(fù)一些行為。往往在這個時候我們一定要尊重孩子的選擇,畢竟,對于大人來說很簡單的事情,對孩子來說就不簡單了。

3、 合適的繪本

想要進行閱讀,首先我們必須得選擇繪本,在繪本的選擇上,必須是以孩子為主體,選擇適合孩子年齡階段和成長規(guī)律的繪本,萬不可盲目選讀。

我們陪孩子讀書時,注意遵從先單字再到詞語、詞組,最后到語句這一個過程來。

那么根據(jù)這樣的規(guī)律,我們要選擇相對應(yīng)的合適的繪本。開始孩子還小的時候,才剛剛學(xué)會說話,我們要選擇一些只有單字的繪本,隨著孩子年齡的不斷增長,我們要選擇詞語繪本,再后面才到語句繪本,以及小小故事書。

父母千萬不能操之過急。選擇超越孩子成長階段的繪本不僅不利于培養(yǎng)孩子的閱讀能力,有可能還會使孩子對閱讀產(chǎn)生抵觸情緒。

七、陪診視頻怎么發(fā)才不違規(guī)?

1 醫(yī)療類的視頻可以拍攝,但需要遵守相關(guān)的法律法規(guī)及行業(yè)規(guī)范,不能違規(guī)。2 醫(yī)療類的視頻屬于特殊領(lǐng)域,需要注意的問題比較多。在拍攝前要先進行前期準備,明確拍攝的目的和范圍。拍攝時需要遵守隱私保護和知情同意的原則,不得發(fā)布病人信息和病歷資料等敏感信息。另外,在拍攝醫(yī)療手術(shù)過程時一定要注意衛(wèi)生和安全,保證醫(yī)護人員和病人的生命安全。3 為了不違規(guī),建議在拍攝前及時咨詢相關(guān)專業(yè)人士或機構(gòu),了解相關(guān)法規(guī)和規(guī)范,確保拍攝過程和內(nèi)容合法合規(guī)。同時,在拍攝過程中也應(yīng)該注重輿論導(dǎo)向和宣傳效果,避免敏感信息的泄漏和不良影響的產(chǎn)生。

八、為什么睡覺有人陪才睡得香?

睡覺有人陪著睡得香,因為有人在身邊心里覺得踏實有安全感。尤其是女性,天生膽子小,一個人孤單單的睡在床上很容易會失眠,特別是在寒冷冬天的夜里,又冷又黑,一個人翻來覆去睡不著,總感覺屋里有東西,各種奇怪的聲音,燈開了關(guān),關(guān)了開,如果有個人陪著睡得就會踏實多了

九、如何賠陪大的陪

如何賠陪大的陪

如何賠陪大的陪

在生活中,我們常常會面臨需要賠償別人損失的情況。不論是因為意外事故、醫(yī)療過失還是其他原因造成的損害,賠償是維護社會公正和平衡的重要環(huán)節(jié)。其中,賠償金額的確定是一個復(fù)雜的問題,需要綜合考慮多個因素。

概述

賠償?shù)哪康氖鞘故軗p方能夠獲得合理的經(jīng)濟補償,以彌補因種種原因?qū)е碌膿p失。盡管賠償金額的確定存在一定的法律依據(jù),但具體的計算方式因案件而異。以下是一些常見的因素,可能影響賠償金額:

  • 醫(yī)療費用:包括就診、手術(shù)、藥物等費用。
  • 損失工作能力:由于意外事故或其他原因?qū)е碌膫麣?,可能影響受害人的工作能力,進而導(dǎo)致收入減少。
  • 精神痛苦:受害人在事故或事件中遭受的心理創(chuàng)傷。
  • 家庭生活受損:受害人的家庭生活因事件發(fā)生而受到了負面影響。
  • 法律成本:包括律師費用和司法程序的花費。
  • 其他相關(guān)費用:如殘疾人適應(yīng)性設(shè)施調(diào)整、康復(fù)成本等。

賠償?shù)挠嬎惴椒?/h2>

賠償?shù)挠嬎惴椒ㄒ驀液偷貐^(qū)而異。一些地方遵循傳統(tǒng)的損害賠償計算方法,主要根據(jù)受害人的經(jīng)濟損失和痛苦來確定賠償金額。其他地方則使用更為復(fù)雜的計算方法,將經(jīng)濟損失、社會影響、公平等因素綜合考慮。

經(jīng)濟損失計算

經(jīng)濟損失計算是賠償金額計算中最為重要的一部分。它通常包括以下幾個方面:

  • 直接經(jīng)濟損失:指因意外事故或其他原因造成的直接經(jīng)濟損失,如醫(yī)療費用、車輛損壞修理費等。
  • 間接經(jīng)濟損失:指因受害人的傷殘或住院治療等原因?qū)е碌氖杖霚p少、生活費用增加等間接損失。
  • 未來損失:對受害人未來可能發(fā)生的經(jīng)濟損失進行合理估計,如未來就醫(yī)費用、康復(fù)費用等。

非經(jīng)濟損失計算

除了經(jīng)濟損失之外,還有一些賠償項是用于彌補非經(jīng)濟損失,如精神痛苦、家庭生活受損等。對于這些損失的計算較為困難,常常需要綜合考慮以下因素:

  • 創(chuàng)傷嚴重程度:創(chuàng)傷對受害人的生活造成了怎樣的影響。
  • 持續(xù)時間:創(chuàng)傷對受害人的影響能夠持續(xù)多長時間。
  • 醫(yī)療證明:是否存在醫(yī)療證明來證實受害人的精神痛苦。
  • 社會認可度:對于類似事件的賠償金額,社會是否普遍認可。

公平原則

賠償金額的計算中,公平原則是一個非常重要的考慮因素。公平主要包括以下幾個方面:

  • 社會公正:賠償金額是否符合社會公眾的期望和要求。
  • 盡職調(diào)查:是否充分調(diào)查受害人的損失和需求,以確保賠償金額的合理性。
  • 參考依據(jù):是否借鑒了類似案件的賠償金額作為參考依據(jù)。

結(jié)論

賠償金額的計算是一個復(fù)雜而重要的問題。在確定賠償金額時,必須綜合考慮受害人的經(jīng)濟損失、非經(jīng)濟損失以及公平原則。只有在充分考慮了這些因素后,才能確定一個合理的賠償金額,使受害人能夠獲得相應(yīng)的補償。

無論是受害人還是賠償方,都可以通過專業(yè)的律師咨詢來了解賠償計算的具體細節(jié)和法律依據(jù),以確保自身權(quán)益的合理維護。只有通過合理有效的賠償計算,才能達到賠償?shù)墓秸x,以及法律的公信力的維護。

十、mahout面試題?

之前看了Mahout官方示例 20news 的調(diào)用實現(xiàn);于是想根據(jù)示例的流程實現(xiàn)其他例子。網(wǎng)上看到了一個關(guān)于天氣適不適合打羽毛球的例子。

訓(xùn)練數(shù)據(jù):

Day Outlook Temperature Humidity Wind PlayTennis

D1 Sunny Hot High Weak No

D2 Sunny Hot High Strong No

D3 Overcast Hot High Weak Yes

D4 Rain Mild High Weak Yes

D5 Rain Cool Normal Weak Yes

D6 Rain Cool Normal Strong No

D7 Overcast Cool Normal Strong Yes

D8 Sunny Mild High Weak No

D9 Sunny Cool Normal Weak Yes

D10 Rain Mild Normal Weak Yes

D11 Sunny Mild Normal Strong Yes

D12 Overcast Mild High Strong Yes

D13 Overcast Hot Normal Weak Yes

D14 Rain Mild High Strong No

檢測數(shù)據(jù):

sunny,hot,high,weak

結(jié)果:

Yes=》 0.007039

No=》 0.027418

于是使用Java代碼調(diào)用Mahout的工具類實現(xiàn)分類。

基本思想:

1. 構(gòu)造分類數(shù)據(jù)。

2. 使用Mahout工具類進行訓(xùn)練,得到訓(xùn)練模型。

3。將要檢測數(shù)據(jù)轉(zhuǎn)換成vector數(shù)據(jù)。

4. 分類器對vector數(shù)據(jù)進行分類。

接下來貼下我的代碼實現(xiàn)=》

1. 構(gòu)造分類數(shù)據(jù):

在hdfs主要創(chuàng)建一個文件夾路徑 /zhoujainfeng/playtennis/input 并將分類文件夾 no 和 yes 的數(shù)據(jù)傳到hdfs上面。

數(shù)據(jù)文件格式,如D1文件內(nèi)容: Sunny Hot High Weak

2. 使用Mahout工具類進行訓(xùn)練,得到訓(xùn)練模型。

3。將要檢測數(shù)據(jù)轉(zhuǎn)換成vector數(shù)據(jù)。

4. 分類器對vector數(shù)據(jù)進行分類。

這三步,代碼我就一次全貼出來;主要是兩個類 PlayTennis1 和 BayesCheckData = =》

package myTesting.bayes;

import org.apache.hadoop.conf.Configuration;

import org.apache.hadoop.fs.FileSystem;

import org.apache.hadoop.fs.Path;

import org.apache.hadoop.util.ToolRunner;

import org.apache.mahout.classifier.naivebayes.training.TrainNaiveBayesJob;

import org.apache.mahout.text.SequenceFilesFromDirectory;

import org.apache.mahout.vectorizer.SparseVectorsFromSequenceFiles;

public class PlayTennis1 {

private static final String WORK_DIR = "hdfs://192.168.9.72:9000/zhoujianfeng/playtennis";

/*

* 測試代碼

*/

public static void main(String[] args) {

//將訓(xùn)練數(shù)據(jù)轉(zhuǎn)換成 vector數(shù)據(jù)

makeTrainVector();

//產(chǎn)生訓(xùn)練模型

makeModel(false);

//測試檢測數(shù)據(jù)

BayesCheckData.printResult();

}

public static void makeCheckVector(){

//將測試數(shù)據(jù)轉(zhuǎn)換成序列化文件

try {

Configuration conf = new Configuration();

conf.addResource(new Path("/usr/local/hadoop/conf/core-site.xml"));

String input = WORK_DIR+Path.SEPARATOR+"testinput";

String output = WORK_DIR+Path.SEPARATOR+"tennis-test-seq";

Path in = new Path(input);

Path out = new Path(output);

FileSystem fs = FileSystem.get(conf);

if(fs.exists(in)){

if(fs.exists(out)){

//boolean參數(shù)是,是否遞歸刪除的意思

fs.delete(out, true);

}

SequenceFilesFromDirectory sffd = new SequenceFilesFromDirectory();

String[] params = new String[]{"-i",input,"-o",output,"-ow"};

ToolRunner.run(sffd, params);

}

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

System.out.println("文件序列化失?。?#34;);

System.exit(1);

}

//將序列化文件轉(zhuǎn)換成向量文件

try {

Configuration conf = new Configuration();

conf.addResource(new Path("/usr/local/hadoop/conf/core-site.xml"));

String input = WORK_DIR+Path.SEPARATOR+"tennis-test-seq";

String output = WORK_DIR+Path.SEPARATOR+"tennis-test-vectors";

Path in = new Path(input);

Path out = new Path(output);

FileSystem fs = FileSystem.get(conf);

if(fs.exists(in)){

if(fs.exists(out)){

//boolean參數(shù)是,是否遞歸刪除的意思

fs.delete(out, true);

}

SparseVectorsFromSequenceFiles svfsf = new SparseVectorsFromSequenceFiles();

String[] params = new String[]{"-i",input,"-o",output,"-lnorm","-nv","-wt","tfidf"};

ToolRunner.run(svfsf, params);

}

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

System.out.println("序列化文件轉(zhuǎn)換成向量失?。?#34;);

System.out.println(2);

}

}

public static void makeTrainVector(){

//將測試數(shù)據(jù)轉(zhuǎn)換成序列化文件

try {

Configuration conf = new Configuration();

conf.addResource(new Path("/usr/local/hadoop/conf/core-site.xml"));

String input = WORK_DIR+Path.SEPARATOR+"input";

String output = WORK_DIR+Path.SEPARATOR+"tennis-seq";

Path in = new Path(input);

Path out = new Path(output);

FileSystem fs = FileSystem.get(conf);

if(fs.exists(in)){

if(fs.exists(out)){

//boolean參數(shù)是,是否遞歸刪除的意思

fs.delete(out, true);

}

SequenceFilesFromDirectory sffd = new SequenceFilesFromDirectory();

String[] params = new String[]{"-i",input,"-o",output,"-ow"};

ToolRunner.run(sffd, params);

}

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

System.out.println("文件序列化失敗!");

System.exit(1);

}

//將序列化文件轉(zhuǎn)換成向量文件

try {

Configuration conf = new Configuration();

conf.addResource(new Path("/usr/local/hadoop/conf/core-site.xml"));

String input = WORK_DIR+Path.SEPARATOR+"tennis-seq";

String output = WORK_DIR+Path.SEPARATOR+"tennis-vectors";

Path in = new Path(input);

Path out = new Path(output);

FileSystem fs = FileSystem.get(conf);

if(fs.exists(in)){

if(fs.exists(out)){

//boolean參數(shù)是,是否遞歸刪除的意思

fs.delete(out, true);

}

SparseVectorsFromSequenceFiles svfsf = new SparseVectorsFromSequenceFiles();

String[] params = new String[]{"-i",input,"-o",output,"-lnorm","-nv","-wt","tfidf"};

ToolRunner.run(svfsf, params);

}

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

System.out.println("序列化文件轉(zhuǎn)換成向量失??!");

System.out.println(2);

}

}

public static void makeModel(boolean completelyNB){

try {

Configuration conf = new Configuration();

conf.addResource(new Path("/usr/local/hadoop/conf/core-site.xml"));

String input = WORK_DIR+Path.SEPARATOR+"tennis-vectors"+Path.SEPARATOR+"tfidf-vectors";

String model = WORK_DIR+Path.SEPARATOR+"model";

String labelindex = WORK_DIR+Path.SEPARATOR+"labelindex";

Path in = new Path(input);

Path out = new Path(model);

Path label = new Path(labelindex);

FileSystem fs = FileSystem.get(conf);

if(fs.exists(in)){

if(fs.exists(out)){

//boolean參數(shù)是,是否遞歸刪除的意思

fs.delete(out, true);

}

if(fs.exists(label)){

//boolean參數(shù)是,是否遞歸刪除的意思

fs.delete(label, true);

}

TrainNaiveBayesJob tnbj = new TrainNaiveBayesJob();

String[] params =null;

if(completelyNB){

params = new String[]{"-i",input,"-el","-o",model,"-li",labelindex,"-ow","-c"};

}else{

params = new String[]{"-i",input,"-el","-o",model,"-li",labelindex,"-ow"};

}

ToolRunner.run(tnbj, params);

}

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

System.out.println("生成訓(xùn)練模型失??!");

System.exit(3);

}

}

}

package myTesting.bayes;

import java.io.IOException;

import java.util.HashMap;

import java.util.Map;

import org.apache.commons.lang.StringUtils;

import org.apache.hadoop.conf.Configuration;

import org.apache.hadoop.fs.Path;

import org.apache.hadoop.fs.PathFilter;

import org.apache.hadoop.io.IntWritable;

import org.apache.hadoop.io.LongWritable;

import org.apache.hadoop.io.Text;

import org.apache.mahout.classifier.naivebayes.BayesUtils;

import org.apache.mahout.classifier.naivebayes.NaiveBayesModel;

import org.apache.mahout.classifier.naivebayes.StandardNaiveBayesClassifier;

import org.apache.mahout.common.Pair;

import org.apache.mahout.common.iterator.sequencefile.PathType;

import org.apache.mahout.common.iterator.sequencefile.SequenceFileDirIterable;

import org.apache.mahout.math.RandomAccessSparseVector;

import org.apache.mahout.math.Vector;

import org.apache.mahout.math.Vector.Element;

import org.apache.mahout.vectorizer.TFIDF;

import com.google.common.collect.ConcurrentHashMultiset;

import com.google.common.collect.Multiset;

public class BayesCheckData {

private static StandardNaiveBayesClassifier classifier;

private static Map<String, Integer> dictionary;

private static Map<Integer, Long> documentFrequency;

private static Map<Integer, String> labelIndex;

public void init(Configuration conf){

try {

String modelPath = "/zhoujianfeng/playtennis/model";

String dictionaryPath = "/zhoujianfeng/playtennis/tennis-vectors/dictionary.file-0";

String documentFrequencyPath = "/zhoujianfeng/playtennis/tennis-vectors/df-count";

String labelIndexPath = "/zhoujianfeng/playtennis/labelindex";

dictionary = readDictionnary(conf, new Path(dictionaryPath));

documentFrequency = readDocumentFrequency(conf, new Path(documentFrequencyPath));

labelIndex = BayesUtils.readLabelIndex(conf, new Path(labelIndexPath));

NaiveBayesModel model = NaiveBayesModel.materialize(new Path(modelPath), conf);

classifier = new StandardNaiveBayesClassifier(model);

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

System.out.println("檢測數(shù)據(jù)構(gòu)造成vectors初始化時報錯。。。。");

System.exit(4);

}

}

/**

* 加載字典文件,Key: TermValue; Value:TermID

* @param conf

* @param dictionnaryDir

* @return

*/

private static Map<String, Integer> readDictionnary(Configuration conf, Path dictionnaryDir) {

Map<String, Integer> dictionnary = new HashMap<String, Integer>();

PathFilter filter = new PathFilter() {

@Override

public boolean accept(Path path) {

String name = path.getName();

return name.startsWith("dictionary.file");

}

};

for (Pair<Text, IntWritable> pair : new SequenceFileDirIterable<Text, IntWritable>(dictionnaryDir, PathType.LIST, filter, conf)) {

dictionnary.put(pair.getFirst().toString(), pair.getSecond().get());

}

return dictionnary;

}

/**

* 加載df-count目錄下TermDoc頻率文件,Key: TermID; Value:DocFreq

* @param conf

* @param dictionnaryDir

* @return

*/

private static Map<Integer, Long> readDocumentFrequency(Configuration conf, Path documentFrequencyDir) {

Map<Integer, Long> documentFrequency = new HashMap<Integer, Long>();

PathFilter filter = new PathFilter() {

@Override

public boolean accept(Path path) {

return path.getName().startsWith("part-r");

}

};

for (Pair<IntWritable, LongWritable> pair : new SequenceFileDirIterable<IntWritable, LongWritable>(documentFrequencyDir, PathType.LIST, filter, conf)) {

documentFrequency.put(pair.getFirst().get(), pair.getSecond().get());

}

return documentFrequency;

}

public static String getCheckResult(){

Configuration conf = new Configuration();

conf.addResource(new Path("/usr/local/hadoop/conf/core-site.xml"));

String classify = "NaN";

BayesCheckData cdv = new BayesCheckData();

cdv.init(conf);

System.out.println("init done...............");

Vector vector = new RandomAccessSparseVector(10000);

TFIDF tfidf = new TFIDF();

//sunny,hot,high,weak

Multiset<String> words = ConcurrentHashMultiset.create();

words.add("sunny",1);

words.add("hot",1);

words.add("high",1);

words.add("weak",1);

int documentCount = documentFrequency.get(-1).intValue(); // key=-1時表示總文檔數(shù)

for (Multiset.Entry<String> entry : words.entrySet()) {

String word = entry.getElement();

int count = entry.getCount();

Integer wordId = dictionary.get(word); // 需要從dictionary.file-0文件(tf-vector)下得到wordID,

if (StringUtils.isEmpty(wordId.toString())){

continue;

}

if (documentFrequency.get(wordId) == null){

continue;

}

Long freq = documentFrequency.get(wordId);

double tfIdfValue = tfidf.calculate(count, freq.intValue(), 1, documentCount);

vector.setQuick(wordId, tfIdfValue);

}

// 利用貝葉斯算法開始分類,并提取得分最好的分類label

Vector resultVector = classifier.classifyFull(vector);

double bestScore = -Double.MAX_VALUE;

int bestCategoryId = -1;

for(Element element: resultVector.all()) {

int categoryId = element.index();

double score = element.get();

System.out.println("categoryId:"+categoryId+" score:"+score);

if (score > bestScore) {

bestScore = score;

bestCategoryId = categoryId;

}

}

classify = labelIndex.get(bestCategoryId)+"(categoryId="+bestCategoryId+")";

return classify;

}

public static void printResult(){

System.out.println("檢測所屬類別是:"+getCheckResult());

}

}

相關(guān)資訊
熱門頻道

Copyright © 2024 招聘街 滇ICP備2024020316號-38