?

基于Python 的釩鈦詞庫爬蟲設計與分析

2022-04-02 10:14張俊坤文科歷
無線互聯科技 2022年1期
關鍵詞:詞庫爬蟲分詞

王 霞,張俊坤,陳 堯,文科歷

(攀枝花學院,四川 攀枝花 617000)

0 引言

在大數據處理中,隨著Python 爬蟲技術的優化與改進,能夠實現對信息準確挖掘,達到對關鍵字準確檢索的目的。本文將釩鈦的相關信息進行詞庫建立優化,按照關鍵詞搜索指數、搜索類別進行層級目錄建設,并通過正則表達式提取網頁中的分類,用隨機深林算法完成詞語的詞性的分類[1]。

1 網絡爬蟲技術簡介

1.1 網絡爬蟲原理

網絡爬蟲主要在于收集網絡上的各種資源,能夠自動提取網頁程序,對網絡數據進行抓取,為搜索引擎從萬維網上下載網頁,是搜索引擎的重要組成部分。就網絡爬蟲而言,其又稱為網頁蜘蛛、網頁機器人、網頁追逐者。網絡爬蟲處理數據過程一般可以分為3 個部分:第一部分數據采集。向網站發起請求,獲取資源采集需要的數據。第二部分數據處理。從待抓取的URL 中取出解析DNS 以及分析處理數據。第三部分數據存儲。將提取的數據永久存放。所有被爬蟲抓取的網頁將會被系統存貯,進行一定的分析、過濾,并建立索引,以便之后的查詢和檢索。對于爬蟲來說,這一過程所得到的分析結果還可以對以后抓取過程給出反饋和指導[2]。

1.2 爬蟲程序整體流程

首先,找到URL 地址,分析網頁性質,將找到的URL 地址使用requests 庫或selenium 進行請求解析,獲取網頁的源碼內容。其次,分析網頁源碼的內容,使用css 選擇器或re 正則表達式用來解析提取想要獲取的內容。最后,將提取的內容保存至MySQL 數據庫。爬取本次網站主要由4 部分構成:(1)主程序負責調用分配各模塊之間的關系;(2)數據庫用來存儲數據;(3)數據采集模塊用來爬取網站的數據,并解析獲取的數據保存至數據庫;(4)數據下載模塊主要獲取數據庫的URL 連接,并下載相對應的文件[3]。網絡爬蟲整體流程如圖1 所示。

圖1 網絡爬蟲整體流程

2 釩鈦詞庫爬取建設

在網站中,一個好的網站需要好的結構布局,在建設初期如果能把網站所要優化的關鍵詞大部分都挖掘出來并建立詞庫,會對網站內鏈有指導性幫助。一個網站外鏈的建設需要合理的結構,在關鍵詞詞庫的幫助下建立更清楚頁面。一個站的關鍵詞指數是有限的,因此通過搜索引擎所帶來的流量也是有限[4]。本文研究目標為攀枝花釩鈦相關咨詢關鍵詞,及釩鈦相關文獻、專利和科技報告。內容為分析統計咨詢攀枝花釩鈦的關鍵詞、釩鈦相關文獻,科技報告的查閱瀏覽,最后是對攀枝花釩鈦詞庫的分析建立[5]。

3 詳細設計與實現

3.1 數據采集

數據的采集模塊主要使用了requests 庫。本研究的目的主要是獲取網站的URL 的地址,將其存放至MySQL 數據庫。數據采集的主要步驟:(1)分析網頁性質,判斷網頁是否是動態網頁,若為動態網頁,則需進一步分析查找URL 地址。(2)將找到的URL 地址,使用requests 庫請求該地址,獲取網頁的內容。(3)將獲取的網頁內容使用css 選擇器或re 正則表達式解析數據,提取需要的數據。(4)對獲取的數據使用MySQL數據庫將其保存,數據量大于某一數值便停止爬去,想要使用數據時以便提取。

3.2 數據下載

數據的下載模塊,主要使用的模塊為selenium 自動化測試工具,下載內容為數據采集模塊爬去的URL地址,URL 地址從數據庫獲取,下載的URL 文件格式為‘.pdf’,具體的實現過程如下:(1)從數據庫每次提取若干條數據,將提取的數據依次使用selenium 下載,并將提取的數據從數據庫中刪除。判斷數據庫中的數據量是否小于某一數值,若小于則繼續調用數據采集模塊,直到數據庫中的數據量達到某一數值便停止采集。(2)將下載的內容保存至事先準備好的文件夾中,以便后續進行對數據處理。

3.3 數據處理

找到事先準備好存儲數據的文件夾,讀取里面的pdf 文件,修改pdf 文件名,對修改后的文件名字使用pdfplumber 庫依次遍歷pdf 文件內容,并將內容全部寫進.txt 文件中。

在數據文件準備好且格式轉換完之后,在詞庫建立之前,需要對文本數據進行預處理,整合顯示格式,以達到較好的分詞統計效果。首先,將數據讀入為pandas 數據幀,對核心詞進行整理。其次,對于文本數據中出現的大量數字、標點符號以及空行和大量英文摘要轉換而成的英語數據進行匹配,選取相應索引,將滿足條件的索引進行篩選刪除,以便更精確地對文本進行分詞以及詞頻統計。

此外,在文本數據中需要對沒有實際意義的字、詞語進行過濾。因此使用簡體中文停用詞表cn _stopwords.txt。停用詞是指在信息檢索中,為節省存儲空間和提高搜索效率,在處理自然語言數據(或文本)之前或之后會自動過濾掉某些字或詞,這些字或詞即被稱為Stop Words(停用詞)。這些停用詞都是人工輸入、非自動化生成的,生成后的停用詞會形成一個停用詞表。cn_stopwords.txt 里面所包含的詞在任何場景中都是高頻詞,并且沒有實際的含義,在應用詞云分析前將其進行清除。

3.4 TF-IDF 關鍵詞抽取

TF-IDF(詞頻-逆文本頻率)是一種用以評估字詞在文檔中重要程度的統計方法。如果某個詞在一篇文章中出現的頻率即TF 高,并且在其他文檔中出現的很少,則認為這個詞有很好的類別區分能力。

TF -IDFij=tfij×idfi

其中tfij=,分子為i詞在j文檔中出現的次數,分母為j文檔中所有字詞出現的次數之和。首先,定義術詞頻-逆文檔頻率(tf-idf) 的向量化參數,計算文檔中每個單詞出現的次數,然后轉換成tf-idf矩陣。其次,使用 TF-IDF 權重。有些詞在文檔中經常出現,但在語料庫中權重并不是很高,這些詞被認為與文檔的關聯更密切。利用TF—IDF 公式進行釩鈦文檔主題詞權重大小排序,根據閾值劃分,得到一個文檔的候選主題詞序列。本文從語義角度繼續分析釩鈦文檔,以便于驗證對比之后進行的詞頻統計結果,以及更準確地提取主題詞。

3.5 jieba 分詞

jieba 中文分詞支持繁體分詞,支持自定義詞典,MIT 授權協議且支持4 種分詞模式:精確模式、全模式、搜索引擎模式、paddle 模式。jieba.cut 方法接受四個輸入參數:需要分詞的字符串;cut_all 參數用來控制是否采用全模式;HMM 參數用來控制是否使用 HMM模型;use_paddle 參數用來控制是否使用paddle 模式下的分詞模式;paddle 模式采用延遲加載方式,通過enable_paddle 接口安裝paddlepaddle-tiny,并且import相關代碼。目的是文本分析,于是使用全模式進行分,jieba.lcut(temp,cut_all=False,HMM=True)得到數萬條詞語數據。

3.6 隨機森林完成詞語的詞性分類

隨機森林屬于Bagging 類型,Bagging 策略來源于bootstrap aggregation:首先,從樣本集(假設樣本集N個數據點)中重采樣選出Nb個樣本(有放回的采樣);其次,在所有樣本上,對這n個樣本建立分類器(如ID3,C4.5,CART 等),重復以上兩步m次,獲得m個分類器。最后,根據這m個分類器的投票結果,決定數據屬于哪一類。將釩鈦資源按以下分類,釩鈦資源分類如表1 所示。

表1 釩鈦資源分類

4 結語

在確定關鍵詞為釩鈦的情況下,從知乎、萬維等論文資源網站上爬取收集大量與攀枝花釩鈦相關的相關文本數據,并從其資料入手,基于jieba 模型對文本進行分詞,對詞庫經行類別分析,TF-IDF 特征值抽取與數據分類打分,從而找到熱點搜索關鍵詞,建立釩鈦搜索語料庫。為用戶了解攀枝花釩鈦的意向感知與搜索引擎提供一個知識庫,可并用加載于各大百度,搜狗詞典。

猜你喜歡
詞庫爬蟲分詞
利用網絡爬蟲技術驗證房地產灰犀牛之說
基于Python的網絡爬蟲和反爬蟲技術研究
分詞在英語教學中的妙用
一“吃”多用
結巴分詞在詞云中的應用
結巴分詞在詞云中的應用
利用爬蟲技術的Geo-Gnutel la VANET流量采集
輸入法詞庫乾坤大挪移
大數據環境下基于python的網絡爬蟲技術
詞庫音系學的幾個理論問題芻議
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合