Python實現簡易搜尋引擎

2021-10-02 10:25:07 字數 1348 閱讀 6640

3.1.1 階段一

要實現python知識案例搜尋引擎,就要先知道本實驗所需的搜尋引擎的功能,本實驗需要檢索本地的python知識案例庫,則首先要實現對資料夾及檔案的讀取,這裡我們利用了os模組功能自動獲取資料庫的絕對路徑,並讀取資料夾下的資料的檔名,放入乙個txt文件中記錄。

3.1.2 階段二

階段一實現了python知識案例搜尋引擎的基本功能,接下來就要考慮與使用者的互動了。這裡為了簡化**,不破壞階段一**的邏輯結構,我們使用了圖形使用者介面的「easygui」模組,呼叫「enterbox」、「ccbox」等函式實現圖形介面。

3.1.3 階段三

階段一與階段二完成了乙個簡易搜尋引擎所有內容,在階段三,我們就考慮在階段一與階段二實現的搜尋引擎的基礎上新增新的功能。

3.1.4 階段四

我們使用「re」模組及「collections」模組,結合「big.txt」資源檔案(乙個英文的詞庫),實現了對英文單詞的糾錯,執行速度達到ms級

同時,我們利用「pycorrector」模組的「correct()」函式實現了對中文詞語的糾錯,但是由於中文詞庫過大,執行所需時間通常達到了15s以上,我們不得不放棄了中文詞語的糾錯,只實現了對英文的糾錯。

3.1.5 階段五

為了更好地實現本地搜尋,我們單獨寫了乙個用於爬取文章內容的網路爬蟲,用於蒐集python知識與程式設計案例。

3.2.1 執行結果

(1)輸入介面:我輸入的「paddlle」是乙個錯誤單詞

(2)糾錯:成功把「paddlle」糾正為「paddle」

(3)本地搜尋結果:(看來本地沒有paddle相關的搜尋結果,只有神經網路的搜尋結果)

(4)若不滿意可以檢視網路搜尋結果:

3.2.2 結果分析但是我們仍有許多不足之處。在自動糾正錯誤輸入功能上,我們只實現了自動糾正英文,沒有把糾正中文功能加入引擎中。在檢索上,偶爾會出現一些莫名的bug,無法找到原因。在網路爬蟲上,在關鍵字過多時,有時無法爬取到結果。在圖形介面上,介面過於簡單,仍待優化。

**見github:

搜尋引擎 索引

正排索引 文件編號,單詞編號,單詞的數量,單詞出現的位置。倒排索引 1,單詞詞典,儲存單詞以及統計資訊,單詞在記錄表中的便宜,可常駐記憶體,用雜湊表儲存。2,記錄表,單詞對應的文件集合,記錄單詞出現的數目 位置。文件採用差分變長編碼。其中文件可按編號公升序排列 可利用差分編碼 也可按出現次數排列,可...

MySQL搜尋引擎程式 mysql搜尋引擎

mysql是我們比較常用的一種資料庫軟體。它有著諸多的優點,如開源的,免費的等等。其實它還有乙個很好的特點,那就是有多種引擎可以供你選擇。如果賽車手能根據不同的路況,地形隨手更換與之最適宜的引擎,那麼他們將創造奇蹟。然而目前他們還做不到那樣便捷的更換引擎,但是我們卻可以 所謂知己知彼方可百戰不殆,要...

使用redis實現搜尋引擎

大家如果是做後端開發的,想必都實現過列表查詢的介面,當然有的查詢條件很簡單,一條 sql 就搞定了,但有的查詢條件極其複雜,再加上庫表中設計的各種不合理,導致查詢介面特別難寫,然後加班什麼的就不用說了 不知各位有沒有這種感受呢 下面以乙個例子開始,這是某購物 的搜尋條件,如果讓你實現這樣的乙個搜尋介...