包含為南加州大學 CSCI572 課程完成的作業。
語言: Python 3.7
I/P:查詢集及其對應的前 10 名 Google 結果
O/P:比較 Google 和 Bing 結果的每個查詢的 Spearman 係數
語言: Java 11
庫: crawler4j
I/P :要抓取的網站域名
O/P :獲取的 URL 列表及其統計信息
語言: Java 11
庫: Apache Hadoop
系統: Google Cloud、Microsoft Azure I/P:要索引的 URL 列表
O/P: URL 的 Unigram 和 Bigram 的索引文件
語言: Java 11、Python 3.7、HTML、CSS、PHP、JavaScript、JQuery
函式庫: Apache Lucene、Apache Solr、Apache Tika、NetworkX、jsoup、PeterNorvig 的 SpellCorrector
功能:
1. 頁面排名計算:
使用Java中的jsoup解析爬取網頁中的所有連結以建立EdgeList檔案。
使用 Python 中的 NetworkX 從 EdgeList 建立有向圖並計算所有 URL 的頁面排名值。
2.Lucene和Solr設定:
創建了一個 Solr 核心來爬取 html 檔案並有效地產生倒排索引。
Solr 中的選擇指令會擷取給定查詢的網頁。它內部使用 Lucene 的向量空間和布林模型表示,並使用 TF-IDF 對結果進行排序。
提供了使用先前計算的頁面排名值對網頁結果進行排序的附加功能。
3. Iditom搜尋引擎網頁:
開發了一段 PHP 程式碼作為客戶端來取得使用者的查詢。使用者可以選擇使用 Lucene 的預設 Ranking 演算法或 Page Rank 演算法對所取得的結果進行排序。使用 Solr 的客戶端 API,檢索網頁結果以進行查詢。
提供類似Google 的網路介面。
4. 拼字檢查和自動完成:
使用 Apache Tika 對爬網網頁中的單字進行解析和預處理後創建了詞彙文字檔案。
利用 Peter-Norvig 的 SpellCorrector 演算法並輸入該詞彙表來計算編輯距離 1 和 2 的機率。
模仿 Google,為 Iditom 搜尋引擎添加了拼字檢查功能(顯示 __ 的結果,搜尋 __ 的結果)。
使用 Solr 的預設自動完成結果,該結果使用模糊工廠來尋找單字建議。
在此處查看搜尋引擎影片 - https://youtu.be/lYZ_SdsIX3A