基于人工智能的數據采集方法及系統的制作方法
【專利摘要】本發明提出了一種基于人工智能的數據采集方法及系統,包括:根據預設的爬取鏈接數量或爬取的URL層數,采用多線程方式從互聯網上爬取多個網頁的URL地址,將獲取的URL地址放入隊列,讀取URL地址和DNS解析以下載URL地址對應網頁的數據信息,將已下載的網頁的數據信息存儲至已下載網頁庫;將數據信息輸入至預設的人工智能的機器學習訓練集,以對數據信息自動機器學習訓練以區分數據信息的屬性,對數據信息進行分類并設置對應的標簽;將機器學習分類后的數據信息存儲到云端服務器,其中,云端服務器采用Hadoop和NoSQL的云存儲方式。本發明可以基于人工智能機器學習的方式,采用多線程執行方式,提高數據采集的效率。
【專利說明】
基于人工智能的數據采集方法及系統
技術領域
[0001]本發明涉及互聯網技術領域,特別涉及一種基于人工智能的數據采集方法及系統。
【背景技術】
[0002]在互聯網上多數網頁都有超鏈接的存在。這些超鏈接將各個網頁鏈接起來構成了一個龐大的網絡,也就是超鏈接網絡。數據采集系統作為一種網絡程序從一些網頁出發,保存網頁的內容,尋找網頁當中的超鏈接,然后訪問這些超鏈接,并重復以上過程,這個過程可以不斷進行下去。
[0003]面對大數據時代的到來,如果想對數據進行定量的分析,數據采集系統的重要性越來越高。然而,目前市面上的數據采集系統多為第一代數據采集系統,第一代數據采集是利用計算機做重復性工作的優勢,將數據分析師制作好的模板,進行批量的采集和處理。
[0004]因此,如果原網站改版,則配置好的模板就會失效,需要數據分析師重新制作模塊,而且對于網站文章的重復性問題也沒有很好的規避,同時需要大量的數據分析師的介入,花費了大量的時間和精力,且采集效率也不高。
【發明內容】
[0005]本發明的目的旨在至少解決所述技術缺陷之一。
[0006]為此,本發明的目的在于提出一種基于人工智能的數據采集方法及系統,可以基于人工智能機器學習的方式,采用多線程執行方式,提高數據采集的效率。
[0007]為了實現上述目的,本發明一方面的實施例提供一種基于人工智能的數據采集方法,包括如下步驟:
[0008]步驟SI,根據預設的爬取鏈接數量或爬取的URL層數,采用多線程方式從互聯網上爬取多個網頁的URL地址,將獲取的URL地址放入隊列,讀取URL地址和DNS解析以下載所述URL地址對應網頁的數據信息,將已下載的網頁的數據信息存儲至已下載網頁庫;
[0009]步驟S2,將所述步驟SI的數據信息輸入至預設的人工智能的機器學習訓練集,以對所述數據信息自動機器學習訓練以區分所述數據信息的屬性,對所述數據信息進行分類并設置對應的標簽;
[0010]步驟S3,將機器學習分類后的數據信息存儲到云端服務器,其中,所述云端服務器米用Hadoop和NoSQL的云存儲方式。
[0011]進一步,在所述步驟SI中,
[0012]配置一個或多個種子URL地址,以每個所述種子URL地址作為起點進行數據采集;
[0013]根據預設的采集時間參數獲取這段時間內的網站上的數據;
[0014]配置采集類別、主題、時長和相關度的閾值;
[0015]刪除與所述主題無關的網頁內容。
[0016]進一步,計算爬取鏈接與預設主題的相關度,選取相關度大于所述相關度的閾值的URL地址,將上述URL地址放入已抓取的URL隊列中。
[0017]進一步,所述步驟SI,還包括如下步驟:實時監控采集過程的當前執行動作、采集數據量、采集時長、采集服務器的工作狀態,并生成系統日志和用戶日志。
[0018]進一步,在所述步驟SI中,當檢測到待爬取的網頁需要輸入驗證碼時,對驗證碼圖片進行預處理和圖像識別,提取圖像特征值,采用基于神經網絡的學習方法對所述圖像特征值進行計算以識別出所述驗證碼并自動輸入,在輸入驗證碼后并進入網頁后,繼續執行對該網頁的數據采集。
[0019]進一步,在所述步驟S2中,采用規則歸納的機械學習方法對所述網頁的數據信息進行機器學習訓練。
[0020]進一步,當檢測到數據采集異常、云端服務器異常或網絡異常時,記錄異常發生時最后抓取的URL地址,并在系統重啟后,自動從該記錄的URL地址開始恢復爬取。
[0021]本發明另一方面的實施例提供一種基于人工智能的數據采集系統,包括:數據采集子系統和云存儲子系統,
[0022]所述數據采集子系統包括:多臺采集服務器,每臺采集服務器與網頁服務器進行通信,用于根據預設的爬取鏈接數量或爬取的URL層數,采用多線程方式從互聯網上爬取多個網頁的URL地址,將獲取的URL地址放入隊列,讀取URL地址和DNS解析以下載所述URL地址對應網頁的數據信息,將已下載的網頁的數據信息存儲至已下載網頁庫,以及將數據信息輸入至預設的人工智能的機器學習訓練集,以對所述數據信息自動機器學習訓練以區分所述數據信息的屬性,對所述數據信息進行分類并設置對應的標簽,并將機器學習訓練后的數據信息發送至所述云存儲子系統;所述云存儲子系統包括:多個存儲節點服務器、光纖路由器和主控服務器,其中,每個所述存儲節點服務器用于接收來自所述數據采集子系統的采集服務器的數據信息,并將所述數據信息通過所述光線路由器發送至所述主控服務器,由所述主控服務器采用Hadoop和NoSQL的云存儲方式,運行HDFS分布式文件系統,對來自每個所述采集服務器的數據信息作為一個節點進行存儲,并發送至遠程監控服務器,以由管理員對數據采集過程進行監控。
[0023]進一步,所述云存儲子系統還包括:數據壓縮模塊,所述數據壓縮模塊用于將來自所述數據采集子系統的數據信息,采用基于字典的數據壓縮算法進行壓縮后,再發送至所述光線路由器,由所述光纖路由器轉發至所述主控服務器。
[0024]進一步,還包括:備份節點服務器,所述備份節點服務器與所述主控服務器進行通信,以對所述數據采集子系統采集的數據信息進行備份存儲。
[0025]根據本發明實施例的基于人工智能的數據采集方法及系統,采用基于人工智能機器學習的方式,從優化下載量、過濾與主題不相關的URL機制和本地多線程架構這幾個角度入手,綜合了時間與速度的開銷。利用機器學習的方法為數據打標簽,篩選掉與主題不相關的鏈接,通過人工智能的神經網絡算法來識別常見的驗證碼,以實現自動采集數據功能。并且,本發明運用Hadoop和NoSQL結合的方式,分布式爬取和存儲海量數據,并加入了高性能的數據壓縮算法對原數據進行壓縮。此外,本發明采用創新性數據采集分析方案,將中文處理模塊加入數據采集系統中,實現中文的自動分詞,停用詞去除等功能,增加的檢索效率,并在完成對數據整理后,為了實現后續需求,完成了給數據設置標簽的功能。并且,通過采用多線程采集方式,并加入了控制、監控模塊、采集配置、智能守護的異常處理等功能,使得采集工作可以更好地執行,并在具有良好的容錯性。本發明還可以實現數據采集的大并發量、自動適應網站改版、自動配置代理地址和自動重啟程序。
[0026]本發明附加的方面和優點將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本發明的實踐了解到。
【附圖說明】
[0027]本發明的上述和/或附加的方面和優點從結合下面附圖對實施例的描述中將變得明顯和容易理解,其中:
[0028]圖1為根據本發明實施例的基于人工智能的數據采集方法的流程圖;
[0029]圖2為根據本發明實施例的URL地址的采集過程示意圖;
[0030]圖3為根據本發明實施例的驗證碼識別流程圖;
[0031 ]圖4為根據本發明實施例的基于人工智能的數據采集系統的結構圖;
[0032]圖5為根據本發明實施例的數據采集子系統的結構圖;
[0033]圖6為根據本發明實施例的云存儲子系統的結構圖;
[0034]圖7為根據本發明實施例的主控制器的存儲示意圖。
【具體實施方式】
[0035]下面詳細描述本發明的實施例,所述實施例的示例在附圖中示出,其中自始至終相同或類似的標號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實施例是示例性的,旨在用于解釋本發明,而不能理解為對本發明的限制。
[0036]如圖1所示,本發明實施例的基于人工智能的數據采集方法,包括如下步驟:
[0037]步驟SI,根據預設的爬取鏈接數量或爬取的URL層數,采用多線程方式從互聯網上爬取多個網頁的URL地址,將獲取的URL地址放入隊列,讀取URL地址和DNS解析以下載URL地址對應網頁的數據信息,將已下載的網頁的數據信息存儲至已下載網頁庫。
[0038]需要說明的是,用于完成數據采集的采集服務器都布置在私有云上,從而當采集數據量增加時,可以動態的增加采集服務器而不影響整個系統的運行。其中,對采集服務器自動設置IP代理功能,輪換使用代理服務器來訪問采集網站。
[0039]具體地,配置一個或多個種子URL地址,以每個種子URL地址作為起點進行數據采集。即,通過定義幾個網站的首頁作為網絡爬蟲爬取數據的種子頁面,以這些頁面為起點,展開數據采集工作。
[0040]根據預設的采集時間參數獲取這段時間內的網站上的數據。自動化配置采集類另IJ、主題、時長和相關度的閾值,然后刪除與主題無關的網頁內容。具體地,確定網絡爬蟲采集數據時的偏好設置,去掉廣告、導航條、友情鏈接等與主題內容無關的鏈接、文本、圖片、動畫、視頻。
[0041 ]在完成上述配置后,從一個或多個種子URL地址開始,獲得初始網頁上的URL,在抓取網頁的過程中,以爬取鏈接數量或者爬取的URL的層數等因素作為限制條件,不斷從當前頁面上抽取新的URL放入隊列,直到滿足系統的限制條件時停止。
[0042]具體地,參考圖2,計算爬取鏈接與預設主題的相關度,選取相關度大于相關度的閾值的URL地址,將上述URL地址放入已抓取的URL隊列中。
[0043]計算爬取鏈接與主題的相關度,篩選過濾與所爬取的主題相關度小于閾值的鏈接,保留下與主題相關的URL并將其放入已抓取的URL隊列中。然后,根據某種的搜索條件從已抓取的隊列中抽取出新的URL放入待抓取URL隊列進行下一層的抓取。重復以上過程,直到滿足系統的限制條件時停止。此方法可以盡可能多的采集與主題相關的頁面,減少與主題不相關的頁面的采集,使得數據采集系統更加高效。
[0044]步驟SI,還包括如下步驟:實時監控采集過程的當前執行動作、采集數據量、采集時長、采集服務器的工作狀態,并生成系統日志和用戶日志。
[0045]具體地,實時監控整個采集過程,包括實時獲得數據采集過程的情況,例如:數據采集進行到的步驟、采集得到數據量、采集總共所用的時間、采集服務器是否還在繼續工作等。如果采集服務器沒有繼續工作,則將該采集服務器上的運行的任務交給其他采集服務器,然后給用戶提供異常報警服務。上述采集監控信息均生成相應的系統日志和用戶日志,以供系統及用戶后續分析查看。
[0046]在步驟SI中,當檢測到待爬取的網頁需要輸入驗證碼時,對驗證碼圖片進行預處理和圖像識別,提取圖像特征值,采用基于神經網絡的學習方法對圖像特征值進行計算以識別出驗證碼并自動輸入,在輸入驗證碼后并進入網頁后,繼續執行對該網頁的數據采集。
[0047]參考圖3,當目標網站中需要輸入驗證碼才能訪問時,通過數字圖像處理中的驗證碼識別技術可以將自動獲得驗證碼,確保采集服務器可以繼續采集數據。
[0048]在本發明的一個實施例中,本步驟采用基于神經網絡的學習方法用來識別驗證碼。具體地,神經網絡(Artificial Neural Networks)是模擬人類大腦神經突出的連接結構進行信息傳遞和信息處理的一種數學模型。神經網絡包括大量的節點和相互之前連接結構。每一個節點表示一種類型的輸出函數,節點之間的連接代表通過該渠道信號的加權值。通過不斷的修改其內部節點中的連接關系找到最優解,從而達到處理輸入信息的目的。
[0049]在本步驟中,通過人工智能的神經網絡算法,識別常見的驗證碼。例如,網站中圖片的驗證碼包括大寫字母、小寫字母、數字等三個部分。下面對這三個部分采用三個神經網絡子網進行識別的過程進行說明。
[0050]如圖3所示,首先識別到驗證碼圖片,然后對識別出的驗證碼圖片進行預處理操作。其后對驗證碼進行識別和分割,并分別利用預設的大寫字母神經網絡、小寫字母神經網絡和數字神經網絡,對驗證碼圖片進行特征值提取,建立單個字符樣本數據,確定好輸入數據,然后隨機初始化各個節點間權重,運用神經網絡輸入數據計算輸出結果并計算其誤差,通過反復調整各個節點間的權重值直到計算出的誤差與預測輸出結果偏差縮小到一定范圍內,則系統達到理想的效果,完成整個神經網絡學習過程。利用模板匹配技術建立驗證碼圖內容的數據庫。具體地模板匹配是計算機圖形學中的一種重要的圖像處理技術。模板匹配需要建立一個或多個模板庫,將匹配的圖像與模板庫進行一一對比,找到與圖像最匹配的模板得到匹配結果。由于當前網站的驗證碼圖片字符和大小相對固定,可以設置各個字母與數字對應的模板庫,把相關的配置字段存儲到數據庫中,通過模板匹配的方法對驗證碼的內容進行匹配,從而識別出驗證碼圖片中的大寫字母、小寫字母和數字。
[0051 ]進而,根據驗證碼圖片的識別結果,自動輸入驗證碼,進入網頁,實現對網頁數據信息的爬取。
[0052]在網頁的爬取過程中,當遇到網頁中的中文詞匯時,采用中文自動分詞功能。具體地,由于原始數據包括公告,統計表格等不同形式,為了得到一致的半結構化以及結構化數據,需要將原始數據中的有效數據進行提取。為了實現上述目標,需對原始數據進行分詞,從而將其中所需要的數據切分出來。中文分詞就是將句子中的詞匯按照使用時的意義劃分出來。由于漢語詞與詞之間沒有空格,因此對于漢語文檔信息的提取無法向英語那樣直接。因此數據切分首先面臨的問題是漢語的自動分詞。
[0053]本發明采用的中文分詞算法為將統計的方法與詞典的方法進行結合,對原始數據中的有效數據進行提取,得到整理后的半結構化以及結構化數據。
[0054]為了提高節省存儲空間和提高處理效率,在進行中文自動分詞之前需要過濾掉某些字或者詞匯,這些便成為停用詞,在文本處理中如果遇到這些停用詞便要立刻停止,將其扔掉,從而減少了數據的索引量,增加了檢索效率。在完成對數據整理后,為了實現后續需求,需對不同數據進行分類,即為數據設置標簽。
[0055]需要說明的是,本發明采用多線程方式實現對網頁的爬取。其中,多線程包括:一個主線程和多個子線程。主線程進行總體控制,多個子線程協同完成。具體地,主線程可以檢測所有子線程是否全部休眠、是否為空以及是否被鎖定等問題,從而使得整個數據采集工作可以順利向下進行。這種多線程的方式,可以提高數據采集的效率。
[0056]步驟S2,將步驟SI的數據信息輸入至預設的人工智能的機器學習訓練集,以對數據信息自動機器學習訓練以區分數據信息的屬性,對數據信息進行分類并設置對應的標簽。
[0057]在本發明的一個實施例中,采用規則歸納的機械學習(MachineLearning)方法對網頁的數據信息進行機器學習訓練。
[0058]具體地,機器學習是一種使獲取知識自動化的計算方法的學習。目的是使計算機獲取新的知識或技能,從而不斷改善自身的性能。機器學習技術被廣泛用于分類(classificat1n)、預測(predict1n)、關聯(associat1n)以及偵查(detect1n)等目的。
[0059]本步驟中采用的是規則歸納(RuleInduct1n)的機器學習方法,該技術利用訓練集中產生的一棵決策樹或一組決策規則來進行分類,具有易于處理大型數據,適合進行分類和預測的優點。對于整理后的不同數據,其數據間有明確以及清晰的分類標準。因此,利用機器學習技術中的規則歸納方法,先人工整理并提取數據,準備相關分類的訓練集文本放置到相應的目錄下,自動機器學習訓練并借此來確定用來區分的屬性。當分類屬性確定好后,可以通過分析對新的數據進行合適的分類,為數據打上標簽。
[0060]步驟S3,將機器學習分類后的數據信息存儲到云端服務器,其中,云端服務器采用Hadoop和NoSQL的云存儲方式。
[0061 ]具體地,將爬取下來經過機器學習的數據信息,保存到云端服務器中。
[0062]需要說明的是,在將數據信息存儲到云端服務器之前,需要先對數據信息進行壓縮。即,運用高強度的數據壓縮算法對源數據進行壓縮,壓縮比例50%左右。數據壓縮是用最少的代碼來表示原始數據,將一種數據的表示方式轉變為另一種表示方式,但長度卻比原來短。
[0063]在本發明的一個實施例中,采用基于字典的數據壓縮算法對數據信息進行壓縮,其基本思想是用比較短的數字和符號對各種可能出現的較長的字符串進行組合編碼,并將各種編碼以及它們對應的數據都記錄在字典中構成字典的數據項。在數據壓縮過程中從原數據中讀入數據,并將其與字典中記錄的數據進行匹配,輸出相應的編碼,使得數據所占用空間被大大壓縮。
[0064]在完成上述數據壓縮后,將壓縮后的數據信息傳輸至云端服務器。由于云端服務器采用Hadoop和NoSQL的云存儲方式,可以構造海量數據的解決方案,可以實現系統的可擴展性,并提高存儲效率。
[0065]NoSQL指的是非關系型的數據庫,它是為了解決多重數據種類及大數據而產生的,適用于以下幾種情況:1)數據模型較為簡單;2)對數據庫性能要求較高;3)不需要高度的數據一致性;4)對于給定的關鍵字,映射復雜值較為容易;5)需要靈活性強的IT系統。
[0066]NoSQL采用Key-Value的方式存儲,其中關鍵字Key由一級主要關鍵字和二級次要關鍵字組成。并且,可對NoSQL數據庫編寫SQL查詢和連接關系表。同時它還支持Hadoop以及Apache的map-reduce技術,具有數據模型簡單、擴展性強、行為可預測性強、可用性高、管理與維護方便等特點。
[0067]此外,云端服務器采用分布式數據采集系統架構,在hadoop上運行分布式的數據采集程序。分布式數據采集基于web的hadoop方式,其存儲采用HDFS分布式文件系統,用于計算各個節點上存儲的數據,并提供對數據讀寫的較高的容錯性;計算邏輯采用mapreduce計算框架,其能夠將應用程序分割成很多小的工作單元,每個工作單元可以在任何服務器集群節點上執行。
[0068]在本發明的一個實施例中,當檢測到數據采集異常、云端服務器異常或網絡異常時,記錄異常發生時最后抓取的URL地址,并在系統重啟后,自動從該記錄的URL地址開始恢復爬取。
[0069]具體地,當采集過程中出現網絡中斷、服務器異常停止、數據采集系統異常中斷等不可抗力宕機時,及時保護現場參數,記錄停止或線程死掉時最后抓取的URL地址,然后自動重啟系統,再次運行程序時從上次記錄的URL地址開始爬取,使得系統可以恢復之前抓取數據的進度。然后,在故障排除時,可以以上次記錄的URL地址為起點,繼續執行數據爬取過程。
[0070]如圖4所示,本發明實施例還提出一種基于人工智能的數據采集系統,包括:數據采集子系統I和云存儲子系統2。
[0071]具體地,如圖5所示,數據采集子系統I包括:多臺采集服務器,每臺采集服務器與網頁服務器進行通信,用于根據預設的爬取鏈接數量或爬取的URL層數,采用多線程方式從互聯網上爬取多個網頁的URL地址,將獲取的URL地址放入隊列,讀取URL地址和DNS解析以下載URL地址對應網頁的數據信息,將已下載的網頁的數據信息存儲至已下載網頁庫。
[0072]需要說明的是,用于完成數據采集的采集服務器都布置在私有云上,從而當采集數據量增加時,可以動態的增加采集服務器而不影響整個系統的運行。其中,對采集服務器自動設置IP代理功能,輪換使用代理服務器來訪問采集網站。
[0073]具體地,配置一個或多個種子URL地址,以每個種子URL地址作為起點進行數據采集。即,通過定義幾個網站的首頁作為網絡爬蟲爬取數據的種子頁面,以這些頁面為起點,展開數據采集工作。
[0074]根據預設的采集時間參數獲取這段時間內的網站上的數據。自動化配置采集類另IJ、主題、時長和相關度的閾值,然后刪除與主題無關的網頁內容。具體地,確定網絡爬蟲采集數據時的偏好設置,去掉廣告、導航條、友情鏈接等與主題內容無關的鏈接、文本、圖片、動畫、視頻。
[0075]在完成上述配置后,從一個或多個種子URL地址開始,獲得初始網頁上的URL,在抓取網頁的過程中,以爬取鏈接數量或者爬取的URL的層數等因素作為限制條件,不斷從當前頁面上抽取新的URL放入隊列,直到滿足系統的限制條件時停止。
[0076]具體地,計算爬取鏈接與預設主題的相關度,選取相關度大于相關度的閾值的URL地址,將上述URL地址放入已抓取的URL隊列中。計算爬取鏈接與主題的相關度,篩選過濾與所爬取的主題相關度小于閾值的鏈接,保留下與主題相關的URL并將其放入已抓取的URL隊列中。然后,根據某種的搜索條件從已抓取的隊列中抽取出新的URL放入待抓取URL隊列進行下一層的抓取。重復以上過程,直到滿足系統的限制條件時停止。此方法可以盡可能多的采集與主題相關的頁面,減少與主題不相關的頁面的采集,使得數據采集系統更加高效。
[0077]數據采集子系統I還可以實時監控采集過程的當前執行動作、采集數據量、采集時長、采集服務器的工作狀態,并生成系統日志和用戶日志。具體地,實時監控整個采集過程,包括實時獲得數據采集過程的情況,例如:數據采集進行到的步驟、采集得到數據量、采集總共所用的時間、采集服務器是否還在繼續工作等。如果采集服務器沒有繼續工作,則將該采集服務器上的運行的任務交給其他采集服務器,然后給用戶提供異常報警服務。上述采集監控信息均生成相應的系統日志和用戶日志,以供系統及用戶后續分析查看。
[0078]當數據采集子系統I檢測到待爬取的網頁需要輸入驗證碼時,對驗證碼圖片進行預處理和圖像識別,提取圖像特征值,采用基于神經網絡的學習方法對圖像特征值進行計算以識別出驗證碼并自動輸入,在輸入驗證碼后并進入網頁后,繼續執行對該網頁的數據米集。
[0079]當目標網站中需要輸入驗證碼才能訪問時,通過數字圖像處理中的驗證碼識別技術可以將自動獲得驗證碼,確保采集服務器可以繼續采集數據。
[0080]在本發明的一個實施例中,通過人工智能的神經網絡算法,識別常見的驗證碼。例如,網站中圖片的驗證碼包括大寫字母、小寫字母、數字等三個部分。進而,根據驗證碼圖片的識別結果,自動輸入驗證碼,進入網頁,實現對網頁數據信息的爬取。
[0081]在網頁的爬取過程中,當遇到網頁中的中文詞匯時,采用中文自動分詞功能。本發明采用的中文分詞算法為將統計的方法與詞典的方法進行結合,對原始數據中的有效數據進行提取,得到整理后的半結構化以及結構化數據。
[0082]為了提高節省存儲空間和提高處理效率,在進行中文自動分詞之前需要過濾掉某些字或者詞匯,這些便成為停用詞,在文本處理中如果遇到這些停用詞便要立刻停止,將其扔掉,從而減少了數據的索引量,增加了檢索效率。在完成對數據整理后,為了實現后續需求,需對不同數據進行分類,即為數據設置標簽。
[0083]需要說明的是,本發明采用多線程方式實現對網頁的爬取。其中,多線程包括:一個主線程和多個子線程。主線程進行總體控制,多個子線程協同完成。具體地,主線程可以檢測所有子線程是否全部休眠、是否為空以及是否被鎖定等問題,從而使得整個數據采集工作可以順利向下進行。這種多線程的方式,可以提高數據采集的效率。
[0084]采集服務器進一步將數據信息輸入至預設的人工智能的機器學習訓練集,以對數據信息自動機器學習訓練以區分數據信息的屬性,對數據信息進行分類并設置對應的標簽,并將機器學習訓練后的數據信息發送至云存儲子系統2。
[0085]在本發明的一個實施例中,采集服務器采用規則歸納的機械學習(MachineLearning)方法對網頁的數據信息進行機器學習訓練。
[0086]具體地,機器學習是一種使獲取知識自動化的計算方法的學習。目的是使計算機獲取新的知識或技能,從而不斷改善自身的性能。機器學習技術被廣泛用于分類(classificat1n)、預測(predict1n)、關聯(associat1n)以及偵查(detect1n)等目的。
[0087]采集服務器采用的是規則歸納(Rule Induct1n)的機器學習方法,該技術利用訓練集中產生的一棵決策樹或一組決策規則來進行分類,具有易于處理大型數據,適合進行分類和預測的優點。對于整理后的不同數據,其數據間有明確以及清晰的分類標準。因此,利用機器學習技術中的規則歸納方法,先人工整理并提取數據,準備相關分類的訓練集文本放置到相應的目錄下,自動機器學習訓練并借此來確定用來區分的屬性。當分類屬性確定好后,可以通過分析對新的數據進行合適的分類,為數據打上標簽。
[0088]如圖6所示,云存儲子系統2包括:多個存儲節點服務器、光纖路由器和主控服務器,其中,每個存儲節點服務器用于接收來自數據采集子系統的采集服務器的數據信息,并將數據信息通過光線路由器發送至主控服務器,由主控服務器(Master控制器)采用Hadoop和NoSQL的云存儲方式,運行HDFS分布式文件系統,對來自每個采集服務器的數據信息作為一個節點進行存儲,并發送至遠程監控服務器,以由管理員對數據采集過程進行監控。
[0089]需要說明的是,如圖7所示,主控服務器只運行名字節點,可以看作是分布式文件系統中的管理者,主要負責管理文件系統的命名空間,包括對文件系統的建立、刪除等操作和集群信息的配置、存儲塊的復制等。而每一個數據采集服務器上運行一個數據節點,是文件的基本存儲單元。主控服務器將不同數據采集服務器上共享的文件夾組織在一起,構成一個目錄樹,使得在用戶看來所有共享文件存儲在同一地點,只需訪問一個HDFS根目錄就能直接訪問分布在網絡上的文件夾。
[0090]進一步,云存儲子系統2還包括:數據壓縮模塊,數據壓縮模塊用于將來自數據采集子系統的數據信息,采用基于字典的數據壓縮算法進行壓縮后,再發送至光線路由器,由光纖路由器轉發至主控服務器。具體地,在將數據信息存儲到存儲節點服務器之前,需要先由數據壓縮模塊對數據信息進行壓縮。即,運用高強度的數據壓縮算法對源數據進行壓縮,壓縮比例50%左右。數據壓縮是用最少的代碼來表示原始數據,將一種數據的表示方式轉變為另一種表示方式,但長度卻比原來短。
[0091]在本發明的一個實施例中,數據壓縮模塊可以采用基于字典的數據壓縮算法對數據信息進行壓縮,其基本思想是用比較短的數字和符號對各種可能出現的較長的字符串進行組合編碼,并將各種編碼以及它們對應的數據都記錄在字典中構成字典的數據項。在數據壓縮過程中從原數據中讀入數據,并將其與字典中記錄的數據進行匹配,輸出相應的編碼,使得數據所占用空間被大大壓縮。
[0092]在完成上述數據壓縮后,將壓縮后的數據信息傳輸至存儲節點服務器。由于存儲節點服務器采用Hadoop和NoSQL的云存儲方式,可以構造海量數據的解決方案,可以實現系統的可擴展性,并提高存儲效率。
[0093]NoSQL指的是非關系型的數據庫,它是為了解決多重數據種類及大數據而產生的,適用于以下幾種情況:1)數據模型較為簡單;2)對數據庫性能要求較高;3)不需要高度的數據一致性;4)對于給定的關鍵字,映射復雜值較為容易;5)需要靈活性強的IT系統。
[0094]NoSQL采用Key-Value的方式存儲,其中關鍵字Key由一級主要關鍵字和二級次要關鍵字組成。并且,可對NoSQL數據庫編寫SQL查詢和連接關系表。同時它還支持Hadoop以及Apache的map-reduce技術,具有數據模型簡單、擴展性強、行為可預測性強、可用性高、管理與維護方便等特點。
[0095]此外,存儲節點服務器采用分布式數據采集系統架構,在hadoop上運行分布式的數據采集程序。分布式數據采集基于web的hadoop方式,其存儲采用HDFS分布式文件系統,用于計算各個節點上存儲的數據,并提供對數據讀寫的較高的容錯性;計算邏輯采用mapreduce計算框架,其能夠將應用程序分割成很多小的工作單元,每個工作單元可以在任何服務器集群節點上執行。
[0096]進一步,云存儲子系統還包括:備份節點服務器,備份節點服務器與主控服務器進行通信,以對數據采集子系統采集的數據信息進行備份存儲。
[0097]根據本發明實施例的基于人工智能的數據采集方法及系統,采用基于人工智能機器學習的方式,結合優化下載量、過濾與主題不相關的URL機制和本地多線程架構,綜合了時間與速度的開銷。利用機器學習的方法為數據打標簽,篩選掉與主題不相關的鏈接,通過人工智能的神經網絡算法來識別常見的驗證碼,以實現本系統的自動采集數據功能。并且,本發明運用Hadoop和NoSQL結合的方式,分布式爬取和存儲海量數據,并加入了高性能的數據壓縮算法對原數據進行壓縮。此外,本發明采用創新性數據采集分析方案,將中文處理模塊加入數據采集系統中,實現中文的自動分詞,停用詞去除等功能,增加的檢索效率,并在完成對數據整理后,為了實現后續需求,完成了給數據設置標簽的功能。并且,通過采用多線程采集方式,并加入了控制、監控模塊、采集配置、智能守護的異常處理等功能,使得采集工作可以更好地執行,并在具有良好的容錯性。本發明還可以實現數據采集的大并發量、自動適應網站改版、自動配置代理地址和自動重啟程序。
[0098]在本說明書的描述中,參考術語“一個實施例”、“一些實施例”、“示例”、“具體示例”、或“一些示例”等的描述意指結合該實施例或示例描述的具體特征、結構、材料或者特點包含于本發明的至少一個實施例或示例中。在本說明書中,對上述術語的示意性表述不一定指的是相同的實施例或示例。而且,描述的具體特征、結構、材料或者特點可以在任何的一個或多個實施例或示例中以合適的方式結合。
[0099]盡管上面已經示出和描述了本發明的實施例,可以理解的是,上述實施例是示例性的,不能理解為對本發明的限制,本領域的普通技術人員在不脫離本發明的原理和宗旨的情況下在本發明的范圍內可以對上述實施例進行變化、修改、替換和變型。本發明的范圍由所附權利要求極其等同限定。
【主權項】
1.一種基于人工智能的數據采集方法,其特征在于,包括如下步驟: 步驟SI,根據預設的爬取鏈接數量或爬取的URL層數,采用多線程方式從互聯網上爬取多個網頁的URL地址,將獲取的URL地址放入隊列,讀取URL地址和DNS解析以下載所述URL地址對應網頁的數據信息,將已下載的網頁的數據信息存儲至已下載網頁庫; 步驟S2,將所述步驟SI的數據信息輸入至預設的人工智能的機器學習訓練集,以對所述數據信息自動機器學習訓練以區分所述數據信息的屬性,對所述數據信息進行分類并設置對應的標簽; 步驟S3,將機器學習分類后的數據信息存儲到云端服務器,其中,所述云端服務器采用Hadoop和NoSQL的云存儲方式。2.如權利要求1所述的基于人工智能的數據采集方法,其特征在于,在所述步驟SI中, 配置一個或多個種子URL地址,以每個所述種子URL地址作為起點進行數據采集; 根據預設的采集時間參數獲取這段時間內的網站上的數據; 配置采集類別、主題、時長和相關度的閾值; 刪除與所述主題無關的網頁內容。3.如權利要求2所述的基于人工智能的數據采集方法,其特征在于,計算爬取鏈接與預設主題的相關度,選取相關度大于所述相關度的閾值的URL地址,將上述URL地址放入已抓取的URL隊列中。4.如權利要求1所述的基于人工智能的數據采集方法,其特征在于,所述步驟SI,還包括如下步驟:實時監控采集過程的當前執行動作、采集數據量、采集時長、采集服務器的工作狀態,并生成系統日志和用戶日志。5.如權利要求1所述的基于人工智能的數據采集方法,其特征在于,在所述步驟SI中,當檢測到待爬取的網頁需要輸入驗證碼時,對驗證碼圖片進行預處理和圖像識別,提取圖像特征值,采用基于神經網絡的學習方法對所述圖像特征值進行計算以識別出所述驗證碼并自動輸入,在輸入驗證碼后并進入網頁后,繼續執行對該網頁的數據采集。6.如權利要求1所述的基于人工智能的數據采集方法,其特征在于,在所述步驟S2中,采用規則歸納的機械學習方法對所述網頁的數據信息進行機器學習訓練。7.如權利要求1-6任一項所述的基于人工指令的數據采集方法,其特征在于,當檢測到數據采集異常、云端服務器異常或網絡異常時,記錄異常發生時最后抓取的URL地址,并在系統重啟后,自動從該記錄的URL地址開始恢復爬取。8.—種基于人工智能的數據采集系統,其特征在于,包括:數據采集子系統和云存儲子系統, 所述數據采集子系統包括:多臺采集服務器,每臺采集服務器與網頁服務器進行通信,用于根據預設的爬取鏈接數量或爬取的URL層數,采用多線程方式從互聯網上爬取多個網頁的URL地址,將獲取的URL地址放入隊列,讀取URL地址和DNS解析以下載所述URL地址對應網頁的數據信息,將已下載的網頁的數據信息存儲至已下載網頁庫,以及將數據信息輸入至預設的人工智能的機器學習訓練集,以對所述數據信息自動機器學習訓練以區分所述數據信息的屬性,對所述數據信息進行分類并設置對應的標簽,并將機器學習訓練后的數據信息發送至所述云存儲子系統; 所述云存儲子系統包括:多個存儲節點服務器、光纖路由器和主控服務器,其中,每個所述存儲節點服務器用于接收來自所述數據采集子系統的采集服務器的數據信息,并將所述數據信息通過所述光線路由器發送至所述主控服務器,由所述主控服務器采用Hadoop和NoSQL的云存儲方式,運行HDFS分布式文件系統,對來自每個所述采集服務器的數據信息作為一個節點進行存儲,并發送至遠程監控服務器,以由管理員對數據采集過程進行監控。9.如權利要求8所述的基于人工智能的數據采集系統,其特征在于,所述云存儲子系統還包括:數據壓縮模塊,所述數據壓縮模塊用于將來自所述數據采集子系統的數據信息,采用基于字典的數據壓縮算法進行壓縮后,再發送至所述光線路由器,由所述光纖路由器轉發至所述主控服務器。10.如權利要求8所述的基于人工智能的數據采集系統,其特征在于,所述云存儲子系統還包括:備份節點服務器,所述備份節點服務器與所述主控服務器進行通信,以對所述數據采集子系統采集的數據信息進行備份存儲。
【文檔編號】G06N3/08GK105893583SQ201610204571
【公開日】2016年8月24日
【申請日】2016年4月1日
【發明人】高強, 曹志松, 顧海英
【申請人】北京鼎泰智源科技有限公司