本發明涉及數據挖掘技術領域,更具體地說,涉及一種信息推送方法及裝置。
背景技術:
信息推送就是通過一定的技術標準或協議,在互聯網上通過定期傳送用戶需要的信息來減少信息過載的一項新技術。
現有技術中主要是通過機器學習來實現信息推送的,具體來說,預先獲取預設量的信息,對這部分信息的趣味值進行標注,訓練出對應的分類器;當出現新的信息時,將新的信息作為分類器的輸入,即可輸出信息的趣味值,進而基于該趣味值對信息進行推送。但是這種方式只適用于具有與訓練分類器時所使用的信息相同趣味值的信息,對于其他信息則并不適用,因此,難以滿足信息推送的應用場景需求。
綜上所述,現有技術中的信息推送方案存在僅針對部分信息,不具有通用性的問題。
技術實現要素:
本發明的目的是提供一種信息推送方法及裝置,以解決現有技術中的信息推送方案存在的僅針對部分信息,不具有通用性的問題。
為了實現上述目的,本發明提供如下技術方案:
一種信息推送方法,包括:
利用分布式爬蟲技術由互聯網上采集數據信息,所述數據信息包括互聯網文章及對應的文章評論;
利用K最臨近回歸算法對所述數據信息進行詞法分析及語法分析,得到所述數據信息中包含的關鍵描述短語及每個關鍵描述短語對應的情感極性強度值;
基于每個所述關鍵描述短語對應的情感極性強度值確定出所述數據信息的總情感極性強度值,將符合預設要求的總情感極性強度值對應的數據信息推送至指定推薦類應用。
優選的,利用分布式爬蟲技術由互聯網上采集數據信息,包括:
預先在不同地域部署第一預設數量的服務器,并在每臺服務器上使用虛擬機技術創建第二預設數量個容器;
將數據采集任務劃分為多個子任務,并將所述多個子任務分配到各個容器上,利用各個容器上的爬蟲程序由互聯網上采集與被分配到的子任務對應的數據信息。
優選的,對所述數據信息進行詞法分析及語法分析之前,還包括:
通過JSOUP將采集到的HTML格式的數據信息轉換為JSON格式的數據信息。
優選的,利用K最臨近回歸算法得出每個關鍵描述短語對應的情感極性強度值之前,還包括:
確定預先設置的用戶詞典中是否存在與所述關鍵描述短語一致的信息,如果是,則確定該信息對應的情感極性強度值為所述關鍵描述短語的情感極性強度值,如果否,則執行利用K最臨近回歸算法得到每個關鍵描述短語對應的情感極性強度值的步驟,并將所述關鍵描述短語及對應的情感極性強度值加入所述用戶詞典中。
優選的,將符合預設要求的總情感極性強度值對應的數據信息推送至指定推薦類應用,包括:
選取出最高及最低的總情感極性強度值,并將選取出的總情感極性強度值對應的互聯網文章推送至所述指定推薦類應用。
一種信息推送裝置,包括:
采集模塊,用于利用分布式爬蟲技術由互聯網上采集數據信息,所述數據信息包括互聯網文章及對應的文章評論;
分析模塊,用于利用K最臨近回歸算法對所述數據信息進行詞法分析及語法分析,得到所述數據信息中包含的關鍵描述短語及每個關鍵描述短語對應的情感極性強度值;
計算模塊,用于基于每個所述關鍵描述短語對應的情感極性強度值確定出所述數據信息的總情感極性強度值,將符合預設要求的總情感極性強度值對應的數據信息推送至指定推薦類應用。
優選的,所述采集模塊包括:
部署單元,用于預先在不同地域部署第一預設數量的服務器,并在每臺服務器上使用虛擬機技術創建第二預設數量個容器;
采集單元,用于將數據采集任務劃分為多個子任務,并將所述多個子任務分配到各個容器上,利用各個容器上的爬蟲程序由互聯網上采集與被分配到的子任務對應的數據信息。
優選的,還包括:
預處理模塊,用于通過JSOUP將采集到的HTML格式的數據信息轉換為JSON格式的數據信息。
優選的,還包括:
判別模塊,用于確定預先設置的用戶詞典中是否存在與所述關鍵描述短語一致的信息,如果是,則確定該信息對應的情感極性強度值為所述關鍵描述短語的情感極性強度值,如果否,則執行利用K最臨近回歸算法得到每個關鍵描述短語對應的情感極性強度值的步驟,并將所述關鍵描述短語及對應的情感極性強度值加入所述用戶詞典中。
優選的,所述計算模塊包括:
推送單元,用于選取出最高及最低的總情感極性強度值,并將選取出的總情感極性強度值對應的互聯網文章推送至所述指定推薦類應用。本發明提供了一種信息推送方法及裝置,其中該方法包括:利用分布式爬蟲技術由互聯網上采集數據信息,所述數據信息包括互聯網文章及對應的文章評論;利用K最臨近回歸算法對數據信息進行詞法分析及語法分析,得到數據信息中包含的關鍵描述短語及每個關鍵描述短語對應的情感極性強度值;基于每個所述關鍵描述短語對應的情感極性強度值確定出所述數據信息的總情感極性強度值,將符合預設要求的總情感極性強度值對應的數據信息推送至指定推薦類應用。本申請公開的上述技術特征中,通過爬蟲技術獲取數據信息,進而利用利用K最臨近回歸算法對數據信息進行詞法分析及語法分析得到數據信息中包含的關鍵描述短語及每個關鍵描述短語對應的情感極性強度值,基于每個關鍵描述短語的情感極性強度值計算出數據信息的總情感極性強度值,以根據該總情感極性強度值對數據信息進行推送。可見,本申請公開的上述技術方案并未對被推送的數據信息有所限定,即可以應用于全部數據信息,因此具有通用性。
附圖說明
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據提供的附圖獲得其他的附圖。
圖1為本發明實施例提供的一種信息推送方法的流程圖;
圖2為本發明實施例提供的一種信息推送方法中文本標記引擎的結構示意圖;
圖3為本發明實施例提供的一種信息推送裝置的結構示意圖。
具體實施方式
下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
請參閱圖1,其示出了本發明實施例提供的一種信息推送方法的流程圖,可以包括以下步驟:
S11:利用分布式爬蟲技術由互聯網上采集數據信息,數據信息包括互聯網文章及對應的文章評論。
本申請中獲取的數據信息為由互聯網上采集的數據,并非來自系統內部,因此可以稱之為互聯網數據。本申請中獲取到的數據信息可以包括由社交媒體和新聞門戶等獲取的互聯網文章及對應的文章評論,具體來說,獲取的互聯網文章可以為多篇,而互聯網文章具體可以為新聞等文章。另外,爬蟲技術是一種按照一定規則從互聯網中抓取需獲取的信息的技術,在這里爬蟲技術構建于輕量級虛擬機之上,它通過多個輕量級虛擬機之間的分布式協同,實現更快速的信息獲取。
S12:利用K最臨近回歸算法對數據信息進行詞法分析及語法分析,得到數據信息中包含的關鍵描述短語及每個關鍵描述短語對應的情感極性強度值。
利用K最臨近回歸算法實現上述詞法分析及語法分析分析的過程具體可以包括:先對數據信息進行中文分詞處理,得到該數據信息包含的多個短語,然后統計這些短語中一至三階共現,即一至三個詞組成的短語在文章中出現的頻次,并對此頻次進行互信息權重和左右信息熵算法的計算(該計算步驟與現有技術中對應概念的實現原理一致,在此不再贅述),得到兩個詞或者三個詞最可能組成的短語的頻率大小,最終提取出頻率最大的短語作為關鍵描述短語,如數據信息為“在這我只想說,這部引人入勝的電影真的太好看啦!”,從中提取出的關鍵描述短語為“引人入勝”、“太好看”。對應的,該例中計算出的“引人入勝”及“太好看”的情感極性強度值均為+2。
S13:基于每個關鍵描述短語對應的情感極性強度值確定出數據信息的總情感極性強度值,將符合預設要求的總情感極性強度值對應的數據信息推送至指定推薦類應用。
基于每個關鍵描述短語對應的情感極性強度值確定出數據信息的總情感極性強度值,或者稱之為趣味值,具體可以是確定與每個關鍵描述短語對應的權重,將任一關鍵描述短語的情感極性強度值與其權重做乘法計算得到對應的加法因子,再將全部關鍵描述短語對應的加法因子進行加法計算得到數據信息的總情感極性強度值。最后將符合預設要求的總情感極性強度值(如總情感極性強度值大于預先設定的值)對應數據信息推送至指定推薦類應用。其中指定推薦類應用可以為根據實際需要設定的推薦類應用,如供該推薦類應用將獲取的數據信息進行推薦使用。
本申請公開的上述技術特征中,通過爬蟲技術獲取數據信息,進而利用利用K最臨近回歸算法對數據信息進行詞法分析及語法分析得到數據信息中包含的關鍵描述短語及每個關鍵描述短語對應的情感極性強度值,基于每個關鍵描述短語的情感極性強度值計算出數據信息的總情感極性強度值,以根據該總情感極性強度值對數據信息進行推送。可見,本申請公開的上述技術方案并未對被推送的數據信息有所限定,即可以應用于全部數據信息,因此具有通用性。
另外,本發明提供的上述技術方案具體可以是按照總情感極性強度值按照大小進行排序,進而根據排序得到的序列選取中符合預設要求的一篇或者多篇文章推送至指定推薦類應用,且本申請中上述采集、分析及推送流程是實時更新的,計算速度極快,數秒內完成。
具體來說,本申請中實現利用K最臨近回歸算法對數據信息進行詞法分析及語法分析,得到數據信息中包含的關鍵描述短語及每個關鍵描述短語對應的情感極性強度值中所使用到的情感分析算法的核心可以為可插拔式通用文本標記引擎,如圖2所示。該引擎結合K-最臨近算法(KNN)和回歸分析,提出一種基于回歸分析的KNN算法(KNNR,K最鄰近回歸算法),借助內含的閔可夫斯基距離計算器(MDC),對數據信息進行詞法和語法分析,在分析過程中,KNN算法首先根據選定的多個實體名詞在一段長文字中選擇錨點(核心點),再以任意兩個字的位置偏移量作為距離,計算每個實體名詞與周圍兩個錨點的距離,進而根據通過訓練所得的閾值表劃分每個實體名詞的實體歸屬。例如,有實體A與B,在經過KNN算法之后,則變為<A,情感屬性>,<B,情感屬性>。完成上述KNN算法之后,將錨點實體名詞作為被解釋變量,圍繞實體名詞的多個情感屬性的變量作為解釋變量,根據情感極性強度來實現錨點的回歸,回歸之后就可以確定該實體名詞的符合正態分布的情感屬性。
其中,標簽壓縮器是將多個近似情感屬性的標簽整合為一個標簽的程序,減少情感指數回歸運算時的計算復雜度,從而加速整個運算過程。以上過程結合標簽壓縮器,在完成KNNR之后得到一系列摘要性的關鍵標簽,將這些標簽與多種可插拔式的特征庫進行匹配,如用戶特征庫、程度特征庫等,匹配的過程是一種特征詞典查詢過程。匹配后得到的結果存入到標簽庫(即MySQL數據庫),最后輸出到應用層。與此同時,將標簽庫的數據附加時間的維度,然后存入到標簽倉庫(即NoSQL數據庫),起到標簽歸檔作用。利用KNNR算法計算文章的情感極性強度值并持久化存儲。新聞推送類應用可根據需要從持久化存儲中選擇合適的內容,如選出極具正能量和極具負能量的文章用以推送。
需要說明的是,可插拔性是本引擎的一個特點,所謂可插拔性,即算法或者服務可以在運行過程中通過配置動態增加、移除或者調整。可插拔通過配置文件實現。配置文件是一個位圖,每一位表示一個組件,當標記為1的時候,則表示該組件啟用,反之棄用。在程序中,所有子模塊都會被默認集成,每個子模塊都會首先讀取配置表來確定是否被執行。當需要動態調整程序算法時,本引擎通過熱編譯以及微服務實現秒級的服務停止、修改、重啟步驟。本引擎包含多項服務及算法,大部分服務可插拔、算法可插拔,這種高度的可插拔性能夠滿足組件按需調用的敏捷需求,在情感分析算法應用場景中極為適用。圖2中的標簽壓縮器也為可插拔,當需要時,只需手工配置相關文件即可完成壓縮能力的變動。基于回歸分析的K最臨近回歸算法(KNNR)也可插拔,可實現文本回歸區域大小的靈活變動。
本發明實施例提供的一種信息推送方法,利用分布式爬蟲技術由互聯網上采集數據信息,可以包括:
預先在不同地域部署第一預設數量的服務器,并在每臺服務器上使用虛擬機技術創建第二預設數量個容器;
將數據采集任務劃分為多個子任務,并將多個子任務分配到各個容器上,利用各個容器上的爬蟲程序由互聯網上采集與被分配到的子任務對應的數據信息。
其中,爬蟲程序即為實現爬蟲技術的程序,虛擬技術具體可以為Docker輕量級虛擬機技術,而第一預設數量和第二預設數量可以根據實際需要進行確定,在此不做具體限定。分布式爬蟲技術可以簡單理解為將采集任務進行分布式處理,具體如上述步驟中,預先建立分布式爬蟲系統,即上述包含有第一預設數量的服務器的服務器系統,進而將數據采集任務劃分為多個子任務,實現分布式處理。具體來說,將數據采集任務劃分為多個子任務可以是按照預先設定的任意規則進行劃分的,如按照所需采集的互聯網位置不同進行劃分等,劃分完成后可以構建對應的子任務隊列,然后通過多地多容器協同的任務調度機制將子任務按需分配至各個容器上執行,從而實現超高并發的分布式爬蟲,提高了數據采集效率。
本發明實施例提供的一種信息推送方法,對數據信息進行詞法分析及語法分析之前,還包括:
通過JSOUP將采集到的HTML格式的數據信息轉換為JSON格式的數據信息。
如果數據信息采集自結構化混亂的網頁文本,通過上述方式將數據信息轉換為JSON格式的數據信息,能夠將將需要分析的數據信息提取出來,而將無關的如HTML標簽、JavaScript代碼等數據信息都去掉,從而通過上述方式實現對數據信息的預處理,保證了后續對于數據信息的處理效率。
本發明實施例提供的一種信息推送方法,利用K最臨近回歸算法得出每個關鍵描述短語對應的情感極性強度值之前,還可以包括:
確定預先設置的用戶詞典中是否存在與所述關鍵描述短語一致的信息,如果是,則確定該信息對應的情感極性強度值為所述關鍵描述短語的情感極性強度值,如果否,則執行利用K最臨近回歸算法得到每個關鍵描述短語對應的情感極性強度值的步驟,并將所述關鍵描述短語及對應的情感極性強度值加入所述用戶詞典中。
由此,通過預先設置用戶詞典的方式保存關鍵描述短語及情感極性強度值之間的對應的關系,其中一致即為完全相同,由此,方便快捷的實現關鍵描述短語的情感極性強度值的確定。
本發明實施例提供的一種信息推送方法,將符合預設要求的總情感極性強度值對應的數據信息推送至指定推薦類應用,可以包括:
選取出最高及最低的總情感極性強度值,并將選取出的總情感極性強度值對應的互聯網文章推送至指定推薦類應用。
可以按照總情感極性強度值由高到低對其進行排列,然后選取出最高及最低的總情感極性強度值,其對應的數據信息即為被認為為極富情感價值的選擇,從而保證了信息推送的情感準確性。
本發明實施例還提供了一種信息推送裝置,如圖3所示,可以包括:
采集模塊11,用于利用分布式爬蟲技術由互聯網上采集數據信息,數據信息包括互聯網文章及對應的文章評論;
分析模塊12,用于利用K最臨近回歸算法對數據信息進行詞法分析及語法分析,得到數據信息中包含的關鍵描述短語及每個關鍵描述短語對應的情感極性強度值;
計算模塊13,用于基于每個關鍵描述短語對應的情感極性強度值確定出數據信息的總情感極性強度值,將符合預設要求的總情感極性強度值對應的數據信息推送至指定推薦類應用。
本發明實施例提供的一種信息推送裝置,采集模塊可以包括:
部署單元,用于預先在不同地域部署第一預設數量的服務器,并在每臺服務器上使用虛擬機技術創建第二預設數量個容器;
采集單元,用于將數據采集任務劃分為多個子任務,并將多個子任務分配到各個容器上,利用各個容器上的爬蟲程序由互聯網上采集與被分配到的子任務對應的數據信息。
本發明實施例提供的一種信息推送裝置,還可以包括:
預處理模塊,用于通過JSOUP將采集到的HTML格式的數據信息轉換為JSON格式的數據信息。
本發明實施例提供的一種信息推送裝置,還可以包括:
匹配單元,用于確定預先設置的用戶詞典中與關鍵描述短語匹配的信息,并確定該信息對應的情感極性強度值為關鍵描述短語的情感極性強度值。
本發明實施例提供的一種信息推送裝置,計算模塊可以包括:
判別模塊,用于確定預先設置的用戶詞典中是否存在與所述關鍵描述短語一致的信息,如果是,則確定該信息對應的情感極性強度值為所述關鍵描述短語的情感極性強度值,如果否,則執行利用K最臨近回歸算法得到每個關鍵描述短語對應的情感極性強度值的步驟,并將所述關鍵描述短語及對應的情感極性強度值加入所述用戶詞典中。
本發明實施例提供的一種信息推送裝置中相關部分的說明請參見本發明實施例提供的一種信息推送方法中對應部分的詳細說明,在此不再贅述。
對所公開的實施例的上述說明,使本領域技術人員能夠實現或使用本發明。對這些實施例的多種修改對本領域技術人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發明的精神或范圍的情況下,在其它實施例中實現。因此,本發明將不會被限制于本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的范圍。