當前位置:編程學習大全網 - 圖片素材 - [內附完整源碼和文檔] 基於python的新聞檢索系統

[內附完整源碼和文檔] 基於python的新聞檢索系統

1 系統介紹

1.1 系統需求

新聞檢索系統:定向采集不少於 4 個中文社會新聞網站或頻道,實現這些網站新聞信息及評論信息的自動爬取、抽取、索引和檢索。本項目未使用 lucene,Goose 等成熟開源框架。

1.2 系統思路與框架

本系統總體的實現思路如圖 1 所示:

壹個完整的搜索系統主要的步驟是:

對新聞網頁進行爬蟲得到語料庫

抽取新聞的主體內容,得到結構化的 xml 數據

內存式單遍掃描索引構建方法構建倒排索引,供檢索模塊使用

用戶輸入查詢,得到相關文檔返回給用戶

2 設計方案

2.1 新聞爬取

2.1.1 算法簡述

該模塊針對搜狐,網易,騰訊三大主流新聞網站及官方的參考消息網站進行了新聞獲取。並基於其網站結構,設計了不同的爬取模式。由於網站架構兩兩相似,以下選取兩種類型的典型代表進行介紹:

(1)搜狐新聞

搜狐新聞除正常主頁外,存在隱藏的列表式新聞頁 , 如 /1/0903/62/subject212846206.shtml 。

(2)網易新聞

可以將網易新聞及騰訊新聞歸結為壹般類型的新聞主頁,我們采用了自新聞主頁開始的廣度優先的遞歸爬取策略。註意到新聞的正文頁往往是靜態網頁.html,因此,我們將網頁中出現的所有以.html 結尾的網頁的 URL 均記錄下來,在爬取到壹定量時,進行壹次去重。

對於壹些不是新聞的錯分網頁,容錯處理即通過檢查新聞正文標簽

時會被剔除。

新聞正文頁中我們重點關註內容,時間,評論獲取。

2.1.2 創新點

實現了對新聞網頁動態加載的評論進行爬取,如搜狐新聞評論爬取

未借助開源新聞爬取工具,自己實現了對新聞標題,正文,時間,評論內容,評論數目的高效爬取

2.2 索引構建

分詞,我們借助開源的 jieba 中文分詞組件來完成,jieba 分詞能夠將壹個中文句子切成壹個個詞項,這樣就可以統計 tf, df 了

去停用詞,去停詞的步驟在 jieba 分詞之後完成

倒排記錄表存儲,詞典用 B-樹或 hash 存儲,倒排記錄表用鄰接鏈表存儲方式,這樣能大大減少存儲空間

倒排索引構建算法使用內存式單遍掃描索引構建方法(SPIMI),就是依次對每篇新聞進行分詞,如果出現新的詞項則插入到詞典中,否則將該文檔的信息追加到詞項對應的倒排記錄表中。

2.3 檢索模塊

2.3.1 檢索模式

(1)關鍵詞檢索

查詢即根據用戶輸入的關鍵字,返回其相應的新聞。首先根據用戶的查詢進行 jieba 分詞,記錄分詞後詞項的數量以字典形式進行存儲。

完整的源碼和詳細的文檔,上傳到了 WRITE-BUG技術***享平臺 上,需要的請自取:

/article/3122.html

  • 上一篇:網景瀏覽器的版本歷史
  • 下一篇:4399有哪些小遊戲
  • copyright 2024編程學習大全網