搜索演算法技術
❶ 常見的數據檢索演算法有哪些資料庫都採用什麼樣的檢索方式如何提高檢索的效率
信息檢索方法包括:普通法、追溯法和分段法。1、普通法是利用書目、文摘、索引等檢索工具進行文獻資料查找的方法。運用這種方法的關鍵在於熟悉各種檢索工具的性質、特點和查找過程,從不同角度查找。普通法又可分為順檢法和倒檢法。2、追溯法是利用已有文獻所附的參考文獻不斷追蹤查找的方法,在沒有檢索工具或檢索工具不全時,此法可獲得針對性很強的資料,查准率較高,查全率較差。3、分段法是追溯法和普通法的綜合,它將兩種方法分期、分段交替使用,直至查到所需資料為止。(1)搜索演算法技術擴展閱讀檢索原因信息檢索是獲取知識的捷徑美國普林斯頓大學物理系一個年輕大學生名叫約瀚·菲利普,在圖書館里借閱有關公開資料,僅用四個月時間,就畫出一張製造原子彈的設計圖。他設計的原子彈,體積小(棒球大小)、重量輕(7.5公斤)、威力大(相當廣島原子彈3/4的威力),造價低(當時僅需兩千美元),致使一些國家(法國、巴基斯坦等)紛紛致函美國大使館,爭相購買他的設計拷貝。二十世紀七十年代,美國核專家泰勒收到一份題為《製造核彈的方法》的報告,他被報告精湛的技術設計所吸引,驚嘆地說:「至今我看到的報告中,它是最詳細、最全面的一份。」
❷ 英文搜索引擎bing的核心演算法是什麼
英文搜索引擎bing的核心演算法是:獲得網站網頁資料,建立資料庫並提供查詢的系統,搜索引擎的資料庫是依靠一個叫「網路機器人(crawlers)」或叫「網路蜘蛛(Spider)」的軟體,通過網路上的各種鏈接自動獲取大量網頁信息內容,並按一定的規則分析整理形成的。
bing加上為雅虎提供的搜索技術支持,必應已佔據29.3%的市場份額。
(2)搜索演算法技術擴展閱讀:
關鍵詞分數:
1、網頁title中關鍵詞的處理
2、H標簽(h1-h6)中關鍵詞的處理
3、文本內容中關鍵詞的密度
4、外鏈中關鍵詞的選擇
5、域名中的關鍵詞
域名權重:
1、域名注冊前的歷史問題
2、域名注冊時間的長短
3、外鏈網站的權重
4、外鏈、給出鏈接的相關度
5、是否使用歷史、鏈接形式
❸ 搜索技術
問題求解過程是 搜索答案(目標) 的過程,所以問題求解技術也叫做搜索技術——通過對 狀態空間 的搜索而求解問題的技術。
問題可形式化地定義成四個組成部分
在解題過程中 達到過的所有狀態 的集合。不同於狀態空間,搜索空間是其中一部分。狀態空間和搜索空間都屬於 過程性知識表示 。
八數碼問題詳解
兩種搜索技術
無信息搜索策略也稱 盲目搜索 :沒有任何附加信息,只有生成後繼和區分目標和非目標狀態。
五種盲目搜索策略有:廣度優先搜索,代價一直搜索,深度優先搜索,深度有限搜索,迭代深入深度優先搜索。
從四種度量來評價廣度優先搜索
性能:通常使用遞歸函數實現,一次對當前節點的子節點調用該函數。相比廣度優先,內存需求少(分支因子 * 最大深度+1)。但 不是完備的也不是最優的 *。
深度優先搜索的無邊界問題可以通過提供一個 預先設定的深度限制I 來解決。深度=I的節點當作無後繼節點看待;雖然解決了無邊界問題,但 有可能無解 ; 如果選擇I>d則深度優先原則也不是最優解 。
每次改變限制深度 ,多次調用深度有限搜索,當 搜索到達最淺的目標節點深度 時就可以發現目標節點,稱為迭代深入深度優先搜索。這種搜索結合了廣度優先和深度優先兩種搜索方式的優勢。 解決了深度優先的完備性問題 。空間需求是(b * d),時間需求是(b d )。當搜索空間很大且深度未知時,迭代深入深度優先搜索 是首選的無信息搜索方式 。
迭代深入搜索中因為多次重復搜索上層節點,使部分狀態反復生成,看起來很浪費內存空間和時間。但是因為 在分支因子比較均衡的搜索樹 中, 多數節點都是葉子節點 *(葉子節點數遠大於上層節點總和),所以上層節點多次生成的影響並不大,與廣度優先相比,效率還是很高。
用於目標狀態已知,求解過程的問題。通常通過 廣度優先搜索 實現。從 起始節點和目標狀態兩個方向 開始擴展,當 兩個OPEN表出現交集 時表明搜索到了一條從起始到結果的一條路徑。 缺點 :演算法編寫難。但一旦實現,效率要遠高於其他盲目搜索。
評價函數 :f ( n ) = h ( n ) ;評價函數等於啟發函數
解釋:貪婪最佳優先搜索中 無條件選擇 當前離目標最近(代價最小)的結點進行擴展。但是 局部最佳不是全局最佳,即非最優。 其中h( n )稱為 啟發函數 ,是從節點n到目標節點的最低代價的 估計值 。
評價函數 :f ( n ) = g ( n ) + h ( n );評價函數等於啟發函數加路徑耗散函數
解釋:
另,對於有向圖的搜索還可以採用圖搜索方式。詳情: 圖搜索和樹搜索詳解
稱啟發函數是可採納的,如果h( n ) 滿足 h( n ) ≤ h * ( n ) ,其中 h * ( n )是從當前節點 n到達目標的最低真實代價 ,即h( n )的估值永遠小於真實耗散值;因為f ( n ) = g ( n ) + h ( n ),且g(n)為已知常數,所以 f(n)永遠不會高估經過結點n的解的實際代價 ,所以是最優解。
如果採用 A* 圖搜索演算法,則不一定返回最優解 。因為如果最優路徑不是第一個生成的,可能因為有重復狀態而被丟棄了。見上個鏈接: 圖搜索和樹搜索詳解
如果對於每個結點n,以及n的行為a產生的後繼結點n'滿足如下公式: h ( n ) ≤ c ( n, n', a) + h( n ') (c ( n, n', a)可以理解為g(n')),則稱這個h ( n )啟發函數是一致的。
A* 搜索由初始結點出發開始搜索,以同心帶狀增長f(n)耗散值的方式擴展結點。如果h(n)= 0 意味著只按g(n)值排序,即同心帶為「圓形」。使用啟發函數則同心帶向目標節點拉伸(橢圓越來越扁)。
如果C*是最優路徑的耗散值,則:
A* 搜索的關鍵就是 設計可採納的或一致的(單調的)啟發函數 。
絕不高估 到達目標的耗散值,盡可能的接近真實耗散值
子問題的解耗散是完整問題的 耗散下界 。
從實例中學習,每個實例包含了解路徑上各狀態及其到達解的耗散值。每個最優解實例提供了可學習h(n)的實例,由此產生可預測其他狀態解消耗的啟發函數。
聯機搜索智能體需要行動和感知,然後擴展當前狀態的環境地圖
智能體初始位置在S,其已知信息為:
A* 搜索在不同子空間結點的跳躍式擴展, 模擬而非實際行動 ;聯機搜索只擴展實際占據的結點——採用深度優先。 聯機搜索必須維護一個回溯表
博弈搜索是智能體之間的對抗,每個智能體的目的是沖突的。本節需要解決兩個問題:如何搜索到取勝的 路徑 /如何提高搜索 效率 。相應的辦法是 極大極小決策和α-β剪枝 。
兩個智能體博弈時,可令一方為MAX,一方為MIN。MAX希望終局得分高,MIN希望終局得分低。
博弈搜索中,最優解是導致取勝的終止狀態的一系列招數。MAX制定取勝策略時,必須不斷考慮MIN應對條件下如何取勝。
如果博弈雙方 都按照最優策略 進行,則一個結點的 極大極小值就是對應狀態的效用值
簡單的遞歸演算法——按照定義計算每個後繼結點的極大極小值/搜索是從目標到初始結點的 反向推導
如果博弈樹最大深度為m,每個節點的合法招數為b,則
剪掉那些不可能影響最後決策的分支,返回和極大極小值相同的結果。
α-β剪枝可以應用樹的任何深度。
如果在結點n的父節點或更上層有一個更好的選擇m,則在搜索中永遠不會到達n。
很大程度上取決於檢查後繼節點的次序—— 應先檢查那些可能更好的後繼 。如果能先檢查那些最好的後繼,則 時間復雜度為O(b (d/2) ) 。優於極大極小演算法的O(b d )
許多問題中 路徑是無關緊要的 。從當前狀態出發,通常 只移動到相鄰狀態 ,且路徑不保留。
內存消耗少,通常是一個常數。
向目標函數值增加的方向持續移動,直到相鄰狀態沒有比它更高的值。 取到一個局部最優則終止 。
使新狀態估計值優於當前狀態值和其他所有候補結點值,則取新狀態放棄其他狀態。
將 爬山法 (停留在局部最優)和 隨機行走 (下山)以某種方式結合,同時擁有 完備性和效率 。
技巧是,概率足夠大可以彈出局部最優;但概率不能太大而彈出全局最優。
按照模擬退火的思想, T隨時間逐漸減小 。如果 T下降的足夠慢 ,則找到全局最優解是 完備的 。
隨機移動,如果評價值改善則採納; 否則以小於一的概率接受 。
從 k個隨機生成的狀態開始 ,每步生成k個結點的所有後繼狀態。如果其中之一是目標狀態則停止演算法;否則從全部後繼狀態中選擇最佳的k個狀態繼續搜索。
有用的信息 在k個並行的 搜索線程之間傳遞 ,演算法會很快放棄沒有成果的搜索,而把資源放在取得最大進展的搜索上。
局部剪枝搜索的變種。因為局部剪枝搜索搜索是貪婪的,因而用隨機剪枝搜索代替。不是選擇最好的k個後代,而是按照一定概率選取k個後繼狀態。
類似於自然界的選擇過程。狀態對應個體,其 值對應適應性 ,後代就是狀態。因此如果k個狀態缺乏多樣性,則局部搜索會受影響。
局部剪枝演算法已有 群體進化 (優勝劣汰)的趨勢。遺傳演算法是隨機剪枝的變種。
包括選擇,交叉和變異
又稱繁殖,按照一定的概率選擇兩對個體生成後繼狀態
計算每個個體i被選中的概率: pi = f(i) / [f(1)+...+f(n)] .然後根據概率將圓盤分為n個扇形,每個扇形大小為 2Πpi 。
繁殖過程中,後代是父串在雜交點上進行雜交得來的。這樣一來,後代子串保留了父串的優良特性又與父串不同。
首先以概率p隨機在種群中選擇pa和pb兩個個體,再從{1,2,...,m}中(可以按一定概率,如兩邊概率小於中間概率)選擇一個數i,作為交叉點。而後將兩個個體的交叉點後面的部分交換。
在新生成的後繼狀態中各個位置都會按照一個 獨立的很小的概率 隨機變異。
變異時要做到 一致變異 ;即相同概率地變異所有個體的每一位。
結合了「上山」和隨機行走,並在並行搜索線程之間交換信息。遺傳演算法的 最大優點在於雜交 。因為雜交可以 將獨立發展的若干個磚塊組合起來 ,提高搜索的粒度。
個體編碼某些位置上數字仍未確定的一個狀態子串。
如果 一個模式的實例的平均適應值超過均值 ,則種群內這個模式的實例數量會隨時間而增長(優勝);反之則減少(劣汰)
長度較短,高於平均適應度的模式在遺傳運算元的作用下, 相互結合 ,能生成長度較長、適應度較高的 模式 。
Constraint Satisfying Problem,CSP。
由一個 變數集合{X1~Xn} 和一個 約束集合{C1~Cn} ;每個變數都有一個 非空可能的值域Di 。每個約束指定了 若干變數的一個子集內各變數的賦值范圍 。
CSP的一個狀態是,對一些或每個變數賦值
一組既是 相容賦值 又是 完全賦值 的對變數的賦值就是CSP的解。
提前考慮某些約束,以減少搜索空間
若X被賦值,檢查與X相連的Y,判斷是否滿足約束,去掉Y中不滿足約束的賦值。(進行某種檢驗,可以不為有問題的Y集合賦值 )
❹ 經典檢索演算法:BM25原理
本文cmd地址: 經典檢索演算法:BM25原理
bm25 是一種用來評價搜索詞和文檔之間相關性的演算法,它是一種基於 概率檢索模型 提出的演算法,再用簡單的話來描述下bm25演算法:我們有一個query和一批文檔Ds,現在要計算query和每篇文檔D之間的相關性分數,我們的做法是,先對query進行切分,得到單詞$q_i$,然後單詞的分數由3部分組成:
最後對於每個單詞的分數我們做一個求和,就得到了query和文檔之間的分數。
講bm25之前,我們要先介紹一些概念。
BIM(binary independence model)是為了對文檔和query相關性評價而提出的演算法,BIM為了計算$P(R|d,q)$,引入了兩個基本假設:
假設1
一篇文章在由特徵表示的時候,只考慮詞出現或者不出現,具體來說就是文檔d在表示為向量$vec x=(x_1,x_2,...,x_n)$,其中當詞$t$出現在文檔d時,$x_t=1$,否在$x_t=0$。
假設2
文檔中詞的出現與否是彼此獨立的,數學上描述就是$P(D)=sum_{i=0}^n P(x_i)$
有了這兩個假設,我們來對文檔和query相關性建模:
接著因為我們最終得到的是一個排序,所以,我們通過計算文檔和query相關和不相關的比率,也可得文檔的排序,有下面的公式:
由於每個 xt 的取值要麼為 0 要麼為 1,所以,我們可得到:
我們接著做下面的等價變換:
其中N是總的文檔數,dft是包含t的文檔數。
以上就是BIM的主要思想,後來人們發現應該講BIM中沒有考慮到的詞頻和文檔長度等因素都考慮進來,就有了後面的BM25演算法,下面按照
3個部分來介紹bm25演算法。
,也就是有多少文檔包含某個單詞信息進行變換。如果在這里使用 IDF 的話,那麼整個 BM25 就可以看作是一個某種意義下的 TF-IDF,只不過 TF 的部分是一個復雜的基於文檔和查詢關鍵字、有兩個部分的詞頻函數,還有一個就是用上面得到的ct值。
tf-idf中,這個信息直接就用「詞頻」,如果出現的次數比較多,一般就認為更相關。但是BM25洞察到:詞頻和相關性之間的關系是非線性的,具體來說,每一個詞對於文檔相關性的分數不會超過一個特定的閾值,當詞出現的次數達到一個閾值後,其影響不再線性增長,而這個閾值會跟文檔本身有關。
在具體操作上,我們對於詞頻做了」標准化處理「,具體公式如下:
其中,tftd 是詞項 t 在文檔 d 中的權重,Ld 和 Lave 分別是文檔 d 的長度及整個文檔集中文檔的平均長度。k1是一個取正值的調優參數,用於對文檔中的詞項頻率進行縮放控制。如果 k 1 取 0,則相當於不考慮詞頻,如果 k 1取較大的值,那麼對應於使用原始詞項頻率。b 是另外一個調節參數 (0≤ b≤ 1),決定文檔長度的縮放程度:b = 1 表示基於文檔長度對詞項權重進行完全的縮放,b = 0 表示歸一化時不考慮文檔長度因素。
如果查詢很長,那麼對於查詢詞項也可以採用類似的權重計算方法。
其中,tftq是詞項t在查詢q中的權重。這里k3 是另一個取正值的調優參數,用於對查詢中的詞項tq 頻率進行縮放控制。
於是最後的公式是:
gensim在實現bm25的時候idf值是通過BIM公式計算得到的:
然後也沒有考慮單詞和query的相關性。
此處 EPSILON 是用來表示出現負值的時候怎麼獲取idf值的。
總結下本文的內容:BM25是檢索領域里最基本的一個技術,BM25 由三個核心的概念組成,包括詞在文檔中相關度、詞在查詢關鍵字中的相關度以及詞的權重。BM25里的一些參數是經驗總結得到的,後面我會繼續介紹BM25的變種以及和其他文檔信息(非文字)結合起來的應用。
BM25 演算法淺析
搜索之 BM25 和 BM25F 模型
經典搜索核心演算法:BM25 及其變種
信息檢索導論
❺ 百度和Google的搜索演算法,技術有何差異
網路是中國的,谷歌是美國的。各有側重不能不可比較。技術都是一樣的側重不同罷了。網路側重的是中國民俗,谷歌是側重美國民俗。因為國情國法不同所以無可能比較量級。【搜索引擎技術是硬體加軟體。硬體是實際使用的機器,軟體是程序編程】搜索產品搜索引擎產品其實包括很多種類,並不限於我們最熟悉的全網搜索引擎。簡單分類羅列一下:*全網搜索:包括市場份額最高的幾大搜索引擎巨頭,Google,Yahoo,Bing。*中文搜索:在中文搜索市場中,網路一家獨大,其它幾家如搜狗、搜搜、有道,市場份額相對還比較小。*垂直搜索:在各自的垂直領域成為搜索入口的,購物的淘寶,美食的大眾點評,旅遊的去哪兒,等等。*問答搜索:專注於為問句式提供有效的答案,比如Ask.com;其它的如問答社區像Quora和國內的知乎,應該也會往這方面發展。*知識搜索:典型代表就是WolframAlpha,區別於提供搜索結果列表,它會針對查詢提供更詳細的整合信息。*雲搜索平台:為其它產品和應用提供搜索服務託管平台(SaaS或是PaaS),Amazon剛剛推出它的CloudSearch,IndexTank在被Linkedin收購之前也是做這項服務。*其它:比始DuckDuckGo,主打隱私保護,也有部分用戶買帳。各種搜索產品在各自領域都需要解決特定的技術和業務問題,所以也可以建立相對通用搜索的優勢,來得到自己的市場和用戶。搜索技術搜索引擎所涉及和涵蓋的技術范圍非常廣,涉及到了系統架構和演算法設計等許多方面。可以說由於搜索引擎的出現,把互聯網產品的技術水平提高到了一個新的高度;搜索引擎無論是在數據和系統規模,還是演算法技術的研究應用深度上,都遠超之前的簡單互聯網產品。列舉一些搜索引擎所涉及到的技術點:*爬蟲(Crawling)*索引結構(InvertedIndex)*檢索模型(VSM&TF-IDF)*搜索排序(RelevanceRanking&Evaluation)*鏈接分析(LinkAnalysis)*分類(Document&QueryClassification)*自然語言處理(NLP:Tokenization,Lemmatization,POSTagging,NER,etc.)*分布式系統(DistributedProcessing&Storage)*等等雖然搜索引擎涉及的技術方方面面,但歸結起來最關鍵的幾點在於:*系統:大規模分布式系統,支撐大規模的數據處理容量和在線查詢負載*數據:數據處理和挖掘能力*演算法:搜索相關性排序,查詢分析,分類,等等系統搜索引擎系統是一個由許多模塊組成的復雜系統。核心模塊通常包括:爬蟲,索引,檢索,排序。除了必需的核心模塊之外,通常還需要一些支持輔助模塊,常見的有鏈接分析,去重,反垃圾,查詢分析,等等。[附圖:搜索系統架構概念模型]*爬蟲從互聯網爬取原始網頁數據,存儲於文檔伺服器。*文檔伺服器存儲原始網頁數據,通宵是分布式Key-Value資料庫,能根據URL/UID快速獲取網頁內容。*索引讀取原始網頁數據,解析網頁,抽取有效欄位,生成索引數據。索引數據的生成方式通常是增量的,分塊/分片的,並會進行索引合並、優化和刪除。生成的索引數據通常包括:字典數據,倒排表,正排表,文檔屬性等。生成的索引存儲於索引伺服器。*索引伺服器存儲索引數據,主要是倒排表。通常是分塊、分片存儲,並支持增量更新和刪除。數據內容量非常大時,還根據類別、主題、時間、網頁質量劃分數據分區和分布,更好地服務在線查詢。*檢索讀取倒排表索引,響應前端查詢請求,返回相關文檔列表數據。*排序對檢索器返回的文檔列表進行排序,基於文檔和查詢的相關性、文檔的鏈接權重等屬性。*鏈接分析收集各網頁的鏈接數據和錨文本(AnchorText),以此計算各網頁鏈接評分,最終會作為網頁屬性參與返回結果排序。*去重提取各網頁的相關特徵屬性,計算相似網頁組,提供離線索引和在線查詢的去重服務。*反垃圾收集各網頁和網站歷史信息,提取垃圾網頁特徵,從而對在線索引中的網頁進行判定,去除垃圾網頁。*查詢分析分析用戶查詢,生成結構化查詢請求,指派到相應的類別、主題數據伺服器進行查詢。*頁面描述/摘要為檢索和排序完成的網頁列表提供相應的描述和摘要。*前端接受用戶請求,分發至相應伺服器,返回查詢結果[附圖:爬蟲系統架構]爬蟲系統也是由多個模塊構成:*URLScheler存儲和高度待爬取的網頁地址。*Downloader根據指定的網頁列表爬取網頁內容,存儲至文檔伺服器。*Processer對網頁內容進行簡單處理,提取一些原始屬性,為爬取的後續操作服務。*TrafficController爬取流量控制,防止對目標網站在短時間內造成過大負載[附圖:搜索系統架構實例:Google這是Google早期的一張系統架構圖,可以看出Google系統的各模塊基本和前面概念模型一致。所以一個完整的全網搜索系統的大致系統架構是類似的,區別和競爭力體現在細節實現和優化上。數據除了搜索引擎系統提供了系統支撐外,搜索結果質量很大程度上依賴於源數據的數量和質量,以及數據處理的能力。全網數據的主要來源通常是從互聯網上進行自動爬取,從一些高質量的種子站點開始,並沿網頁鏈接不斷,收集巨量的網頁數據;這通常能達到數據在數量的要求,但也不可避免混入了大量的低質量網頁。除了自動爬取來的數據外,搜索引擎的數據來源還可以來自人工收集、合作夥伴提供、第三方數據源和API、以及購買;這些來源通常會有更好的質量保證,但在數量規模和覆蓋率上會相對少一些,可以和爬取的數據形成有效的互補。收集到足量的原始數據後,需要進行各種數據處理操作,把原始數據轉換成在線檢索需要的數據。這個過程通常包括:網頁分析,數據抽取,文本處理和分詞,索引及合並;最終生成的數據會包括:詞典,倒排表,正排表,文檔權重和各種屬性。最終生成的數據要布署上相應的在線檢索伺服器上,通常會進行數據分區和分片布署,數據內容更豐富時還可能根據內容分類和主題進行分別布署,比如新聞時效類的網頁可能就會獨立布署,針對性地響應時效類的查詢[附圖:索引數據:字典、倒排表、正排表]這張圖來源於Google早期的索引數據結構,包括詞典、倒排表、正排表。演算法有了相當數量的高質量數據之後,搜索結果的質量改進就取決於搜索演算法的准確性上。現在的搜索引擎通常通過向量空間模型(VSM=VectorSpaceModel)來計算查詢和各文檔之間的文本相似性;即把查詢或文檔抽象成一個詞向量,然後再計算向量在向量空間中的夾角,可以用餘弦公式得出,作為文本相似度的度量值。在基本的向量空間模型基礎上通常會進一步加入詞的權重值進行改進,通過經典的TF-IDF公式得出,即詞頻(TF)乘上逆文檔頻率(IDF);其中TF=TermFrequency,即該詞在所在文檔中的出現次數;IDF=InvertDocumentFrequency,即包含該詞的文檔數除以總文檔數,再取反,通常還會取對數來降維,這個值值越大表示這個詞越能代表文檔特徵。除了通過向量空間模型得出的文本匹配評分外,每個文檔還會有自己本身的質量評分,通常由網頁鏈接數據計算得出,代表了該網頁本身的流行度權重。最終的評分會以文本匹配的查詢時動態評分和文檔靜態評分為基礎計算得出;搜索引擎的評分計算都會考慮很多因素,但這兩項通常是評分計算的基礎。有了確定的排序演算法後,另一個重要的任務就是評估搜索結果的質量。由於搜索結果的好與壞是一個比較主觀的過程,所以進行定量的評估並不容易。常見的做法是通過事先選定一批查詢,通過人工評估或是預先設定標准值的方式,逐個評估每個設定查詢搜索結果,最終得到一個統計結果,作為搜索演算法的評估度量。另一類做法是直接通過線上的用戶點擊數據來統計評估搜索結果質量,或是通過A/B測試來比較兩種排序演算法的點擊效果來衡量。合理而有效的評估方法,是搜索演算法可以不斷改進和比較的前提。查詢分析是另一個對搜索結果影響很大的方面,主要任務是把用戶的查詢文本轉換成內部的結構化的搜索請求。涉及的處理可能包括基本的分詞處理,專有名詞的識別和提取,或是查詢模式的識別,或是查詢分類的識別。這些處理的准確性將能極大地改進搜索請求的方式,進一步影響搜索結果的相關性和質量。開源方案近年來在搜索公司內部搜索系統和技術的改進和發展的同時,一批開源的搜索系統和解決方案也逐漸發展和成熟起來。當然開源系統在功能全面性、復雜性和規模上都不能與專業的搜索引擎系統相比,但對於中小企業的搜索應用來說應該已經能很好地滿足需求,而且也成功應用到了一些大規模的產品系統中(比如Twitter的搜索就使用和改進了Lucene)。現在比較常見的開源搜索解決方案有:*LuceneLucene自然是現在最流行,使用度最高的搜索開源方案。它用Java開發,以索引和檢索庫的方式提供,可以很容易地嵌入需要的應用中。*Solr&SolrCloudSolr是Lucene的子項目,同屬Apache軟體基金會項目;它是基於Lucene之上實的一個完整的搜索服務應用,提供了大量的搜索定製功能,可以滿足大部分的搜索產品需求。SolrCloud是Solr為了加強其分布式服務能力而開發的功能,目前還在開發階段,將在Solr4.0發布。*Zoie&Sensei(Linkedin)Zoie是Linkedin公司在Lucene基礎上實現的准實時索引庫,通過加入額外的內存索引,來達到准實時索引的效果。Sensei是Linkedin公司在Zoie基礎上實現的分布式搜索服務,通過索引分區來實現分布式搜索服務。*ElasticSearchElasticSearch也是剛推出不久的一個基於Lucene實現的分布式搜索服務,據說在分布式支持和易用性上都有不錯的表現。因為還比較年輕,真實的應用應該還不多,需要觀察。因為也是基於Lucene的分布式開源搜索框架,基本上會與SolrCloud和Sensei形成正面競爭關系。*其它開源產品除了Lucene家族以外,還有一些其它的開源產品,比如Sphinx和Xapian,也有不少的應用;但近年來的更新頻率和社區活躍度都不太能和Lucene系的產品相比。*託管平台除了開源產品外,現在還出現了一些基於雲計算和雲服務的搜索服務,比如Amazon新近推了的CloudSearch,還有更早一些的IndexTank(已被Linkedin收購)。這類服務無需自己布置搜索系統,直接使用在線服務,按需付費,所以也將是開源產品的替代方案和競爭對手。附幾張上面提到的開源系統的概念模型和架構圖:[附圖:Lucene概念模型][附圖:Lucene工作流程][附圖:Sensei系統架構][附圖:SolrCloud系統架構]現狀與未來:傳統的搜索引擎經過了十幾年的發展,目前在技術和產品上都已走向逐漸穩定和成熟,通用搜索的市場也基本進入飽和,不像早些年一直呈現高增長率。同時,在各個垂直領域,也出現了很多和產品結合的很好的垂直搜索產品,比如淘寶的購物搜索,大眾點評的美食搜索,去哪兒和酷訊的旅遊搜索等,也都在各自領域占據了相當大的市場,成為除了通用搜索引擎之外的重要的用戶入口。在開源領域,各種開源產品和解決方案也逐漸發展成熟,通用搜索技術不再為大公司所專有,中小企業能夠以較低的成本實現自己的搜索應用。現在搜索引擎產品之間的競爭的在數據、應用方式和產品形態上,在系統架構和基本演算法上區分並不大。搜索引擎在未來發展上,一是搜索將不僅僅以獨立產品的形式出現,的會作為搜索功能整合到的產品和應用中。在產品形態上,基於傳統的搜索引擎,會演化出像推薦引擎,知識引擎,決策引擎等形式的產品,更好地滿足和服務用戶需求。而搜索引擎所涉及和發展起來的各種技術,會更廣泛地應用到各種基它產品上,比如自然語言處理,推薦和廣告,數據挖掘,等等。總之,搜索引擎對互聯網技術和產品帶來的影響是巨大的,未來也仍將有很大的發展和應用空間。
❻ 禁忌搜索演算法的主要思想和特徵
禁忌演算法是一種亞啟發式隨機搜索演算法1,它從一個初始可行解出發,選擇一系列的特定搜索方向(移動)作為試探,選擇實現讓特定的目標函數值變化最多的移動。為了避免陷入局部最優解,TS搜索中採用了一種靈活的「記憶」技術,對已經進行的優化過程進行記錄和選擇,指導下一步的搜索方向,這就是Tabu表的建立。 禁忌搜索是對人類思維過程本身的一種模擬,它通過對一些局部最優解的禁忌(也可以說是記憶)達到接納一部分較差解,從而跳出局部搜索的目的.
❼ 百度搜索引擎的演算法是怎樣的
衡量網頁質量的維度
網路搜索引擎在衡量網頁質量時,會從以下三個維度綜合考慮給出一個質量打分。下面會一一介紹這些影響網頁質量判斷的維度特徵:
• 內容質量
• 瀏覽體驗
• 可訪問性
一個訪問流暢,內容質量高且瀏覽體驗好的網頁具有較高的質量;反之,任何一個維度出現問題,都會影響網頁的整體質量。下面我們具體介紹下這三個維度。
衡量網頁質量的維度——內容質量
網頁主體內容是網頁的價值所在,是滿足用戶需求的前提基礎。網路搜索引擎評價網頁內容質量主要看其主體內容的好壞,以及主體內容是否可以讓用戶滿意。 不同類型網頁的主體內容不同,網路搜索引擎判斷不同網頁的內容價值時,需要關注的點也有區別,如:
• 首頁:導航鏈接和推薦內容是否清晰、有效。
• 文章頁:能否提供清晰完整的內容,圖文並茂更佳。
• 商品頁:是否提供了完整真實的商品信息和有效的購買入口。
• 問答頁:是否提供了有參考價值的答案。
• 下載頁:是否提供下載入口,是否有許可權限制,資源是否有效。
• 文檔頁:是否可供用戶閱讀,是否有許可權限制。
• 搜索結果頁:搜索出來的結果是否與標題相關。
網路搜索引擎考量網頁內容質量的維度非常多,最為重要的是:成本;內容完整;信息真實有效以及安全。下面我們通過舉例來感受一下網路搜索引擎是如何對網頁的內容質量進行分類的,請站長對比自己站點的頁面,站在搜索引擎和用戶的角度為自己打分:
1、內容質量好:
網路搜索引擎認為內容質量好的網頁,花費了較多時間和精力編輯,傾注了編者的經驗和專業知識;內容清晰、完整且豐富;資源有效且優質;信息真實有效;安全無毒;不含任何作弊行為和意圖,對用戶有較強的正收益。對這部分網頁,網路搜索引擎會提高其展現在用戶面前的機率。例如:
• 專業醫療機構發布的內容豐富的醫療專題頁面;
• 資深工程師發布的完整解決某個技術問題的專業文章;
• 專業視頻網站上,播放清晰流暢的正版電影或影視全集頁面;
• 知名B2C網站上,一個完整有效的商品購買頁;
• 權威新聞站原創或經過編輯整理的熱點新聞報道;
• 經過網友認真編輯,內容豐富的詞條;
• 問答網站內,回答的內容可以完美解決提問者的問題。
實例參考:
示例
內容質量
說明
case 3.1.1-1
好
專業醫療網站發布的豐富醫療專題頁面
case 3.1.1-2
好
資深工程師發布的完整解決某個技術問題的專業文章
case 3.1.1-3
好
專業視頻網站上,播放清晰流暢的正版影視全集頁面
case 3.1.1-4
好
京東的一個完整有效的商品購買頁
case 3.1.1-5
好
權威新聞站原創的熱點新聞的報道
case 3.1.1-6
好
經過網友認真編輯,內容豐富的網路詞條
case3.1.1-7
好
網路知道上,完美解決用戶問題的問答頁
2、內容質量中:
內容質量中等的網頁往往能滿足用戶需求,但未花費較多時間和精力進行製作編輯,不能體現出編者的經驗和專業知識;內容完整但並不豐富;資源有效但質量欠佳;信息雖真實有效但屬採集得來;安全無毒;不含作弊行為和意圖。在互聯網中,中等質量網頁其實是一個比較大的數量集合,種類面貌也繁雜多樣,網路搜索引擎在評價這類網頁時往往還要考慮其它非常多因素。在這里,我們僅部分舉例來讓各位感受一下:
• 論壇類網站里一個普通的帖子;
• 一個普通的問答網頁;
• 沒有進行任何編輯,直接轉載其它網站的新聞;
• 無版權信息的普通電影播放頁
• 採集知名小說網站的盜版小說頁。
實例參考:
示例
內容質量
說明
case 3.1.2-1
中
網易直接轉載了中國新聞網的一篇新聞。
case 3.1.2-2
中
文庫上網友上傳的「國慶放假安排」新聞
case 3.1.2-3
中
採集起點小說網的盜版小說站
case 3.1.2-4
中
網路貼吧里一個普通的帖子
3、內容質量差:
網路搜索引擎認為主體內容信息量較少,或無有效信息、信息失效過期的都屬於內容質量差網頁,對用戶沒有什麼實質性的幫助,應該減少其展現的機會。同時,如果一個網站內該類網頁的佔比過大,也會影響網路搜索引擎對站點的評級,尤其是UGC網站、電商網站、黃頁網站要尤其重視對過期、失效網頁的管理。例如:
• 已下架的商品頁,或已過期的團購頁;
• 已過有效期的招聘、交易頁面;
• 資源已失效,如視頻已刪除、軟體下載後無法使用等。
4、沒有內容質量可言:
沒有內容質量可言的網頁指那些製作成本很低,粗製濫造;從別處採集來的內容未經最起碼的編輯整理即放置線上;掛木馬等病毒;含有作弊行為或意圖;完全不能滿足用戶需求,甚至含有欺騙內容的網頁。例如:
• 內容空短,有很少量的內容,卻不能支撐頁面的主要意圖;
• 問答頁有問無答,或回答完全不能解決問題;
• 站內搜索結果頁,但沒有給出相關信息
除上述網頁外,欺騙用戶和搜索引擎的網頁在無內容質量可言集合里占很高比例。網路搜索引擎對作弊網頁的定義是:不以滿足用戶需求為目的,通過不正當手段欺騙用戶和搜索引擎從而獲利的網頁。目前互聯網上這部分網頁還屬少數,但作弊網頁的價值是負向的,對用戶的傷害非常大,對這類網頁,搜索引擎持堅決打擊態度。
衡量網頁質量的維度——瀏覽體驗
不同質量的網頁帶給用戶的瀏覽體驗會有很大差距,一個優質的網頁給用戶的瀏覽體驗應該是正向的。用戶希望看到干凈、易閱讀的網頁,排版混亂、廣告過多會影響用戶對網頁主體內容的獲取。在網路搜索引擎網頁質量體系中,用戶對網頁主體內容的獲取成本與瀏覽體驗呈反比,即獲取成本越高,瀏覽體驗越低。面對內容質量相近的網頁,瀏覽體驗佳者更容易獲得更高的排位,而對於瀏覽體驗差的網頁,網路搜索引擎會視情況降低其展現的機率甚至拒絕收錄。
影響用戶瀏覽體驗好壞的因素很多,目前網路搜索引擎主要從內容排版、廣告影響兩方面對網頁進行考量:
內容排版:用戶進入網頁第一眼看到的就是內容排版,排版決定了用戶對網頁的第一印象,也決定了用戶對內容獲取的成本。
廣告影響:網路搜索引擎理解網站的生存發展需要資金支持,對網頁上放置正當廣告持支持態度。網頁應該以滿足用戶需求為主旨,最佳狀態即「主體內容與廣告一起滿足用戶需求,內容為主,廣告為輔」,而不應讓廣告成為網頁主體。
下面我們通過舉例來感受一下網路搜索引擎是如何對網頁的瀏覽體驗進行分類的,站長可以據此對比檢驗自己站點的瀏覽體驗如何:
1、瀏覽體驗好:
頁面布局合理,用戶獲取主體內容成本低,一般具有以下特徵:
• 排版合理,版式美觀,易於閱讀和瀏覽;
• 用戶需要的內容占據網頁最重要位置;
• 能夠通過頁面標簽或頁面布局十分清楚地區分出哪些是廣告;
• 廣告不搶佔主體內容位置,不阻礙用戶對主要內容的獲取;
實例參考:
示例
瀏覽體驗
說明
case 3.2.1-1
好
招聘、房產等網站首頁也有很多廣告,但都是招聘相關的,瀏覽體驗是ok的。
case 3.2.1-2
好
文章頁,頁面布局合理,無廣告,排版好,結構合理
case 3.2.1-3
好
游戲首頁,排版美觀,布局合理,無廣告,瀏覽體驗優
2、瀏覽體驗差:
頁面布局和廣告放置影響了用戶對主體內容的獲取,提高了用戶獲取信息的成本,令用戶反感。包括但不僅限於以下情況:
• 正文內容不換行或不分段,用戶閱讀困難;
• 字體和背景顏色相近,內容辨別困難;
• 頁面布局不合理,網頁首屏看不到任何有價值的主體內容;
• 廣告遮擋主體內容;或者在通用解析度下,首屏都是廣告,看不到主體內容;
• 彈窗廣告過多;
• 影響閱讀的浮動廣告過多
• 點擊鏈接時,出現預期之外的彈窗;
• 廣告與內容混淆,不易區分;
衡量網頁質量的維度——可訪問性
用戶希望快速地從搜索引擎獲取到需要的信息,網路搜索引擎盡可能為用戶提供能一次性直接獲取所有信息的網頁結果。網路搜索引擎認為不能直接獲取到主體內容的網頁對用戶是不友好的,會視情況調整其展現機率。
網路搜索引擎會從正常打開、許可權限制、有效性三方面判斷網頁的可訪問性,對於可以正常訪問的網頁,可以參與正常排序;對於有許可權限制的網頁,再通過其它維度對其進行觀察;對於失效網頁,會降權其展現機制甚至從資料庫中刪除。
1、可正常訪問的網頁
無許可權限制,能直接訪問所有主體內容的網頁。
2、有許可權限制的網頁
此類網頁分為兩種:打開許可權和資源獲取許可權
1)打開許可權:指打開網頁都需要登錄許可權,沒有許可權完全無法看到具體內容,普通用戶無法獲取或獲取成本很高,網路搜索引擎會降低其展現機率。不包括以登錄為主要功能的網頁。
2)資源獲取許可權:指獲取網頁主要內容,如文檔、軟體、視頻等,需要許可權或者需要安裝插件才能獲得完整內容。此時會分三種情況:
• 提供優質、正版內容的網站,由於內容建設成本很高,盡管查看全文或下載時需要許可權或安裝插件,但屬於用戶預期之內,網路搜索引擎也不認為許可權行為對用戶造成傷害,給予與正常可訪問頁面相同的對待。
• 對於一些非優質、非正版的資源,來自於用戶轉載甚至機器採集,本身成本較低,內容也不獨特,用戶獲取資源還有許可權限制——需要用戶注冊登錄或者付費查看,網路搜索引擎會根據具體情況決定是否調整其展現。
• 還有一些視頻、下載資源頁,也許自身資源質量並不差,但需要安裝非常冷門的插件才能正常訪問,比如要求安裝「xx大片播放器」,網路搜索引擎會懷疑其有惡意傾向。
實例參考:
示例
可訪問性
說明
case 3.2-1
好
CNKI上的一篇論文,收費才能下載,但有版權,瀏覽體驗好
case 3.2-2
好
優酷上一部新電影,需要付費才能觀看,瀏覽體驗好。
case 3.2-3
中
內容是來,但是需要登錄才能看更多
case 3.2-4
差
入黨申請書,本身就是轉載的,網上到處都是,但這個頁面仍然要求收費才能下載。
3、失效網頁
往往指死鏈和主體資源失效的網頁。網路搜索引擎認為這部分網頁無法提供有價值信息,如果站點中此類網頁過多,也會影響網路搜索引擎對其的收錄和評級。建議站長對此類網頁進行相應設置,並及時登錄網路站長平台,使用死鏈提交工具告知網路搜索引擎。
失效網頁包括但不僅限於:
• 404、403、503等網頁;
• 程序代碼報錯網頁;
• 打開後提示內容被刪除,或因內容已不存在跳轉到首頁的網頁;
• 被刪除內容的論壇帖子,被刪除的視頻頁面(多出現在UGC站點)
具體請參閱《網路搜索引擎網頁質量白皮書》,望採納!
❽ 計算機檢索技術有哪些
計算機信息檢索可以概括為兩個部分:信息存儲和信息檢索。
計算機信息檢索與信息的構造、分析、組織、存儲和傳播有關。計算機信息檢索系統是信息檢索所用的硬體資源、系統軟體和檢索軟體的總合。它能存儲大量的信息,並對信息條目(有特定邏輯含義的基本信息單位)進行分類、編目或編制索引。它可以根據用戶要求從已存儲的信息集合中抽取出特定的信息,並提供插入、修改和刪除某些信息的能力。
(8)搜索演算法技術擴展閱讀:
計算機信息檢索系統的可靠性與計算機系統的可靠性密切相關。它依賴於計算機系統硬體的可靠性、操作系統的故障恢復機構、資料庫管理系統的恢復機構和應用軟體採取的故障處理措施。任何計算機信息檢索系統都不能保證信息不受到破壞,但是它必須具有從破壞中得以恢復的能力。
計算機信息檢索系統的效能通常根據漏檢索、誤檢率、檢全率、檢准率和響應時間(對聯機檢索)等來衡量。關鍵詞本身錯誤或使用的查找演算法不對會引起漏檢。
❾ 大數據常用的各種演算法
我們經常談到的所謂的 數據挖掘 是通過大量的數據集進行排序,自動化識別趨勢和模式並且建立相關性的過程。那現在市面的數據公司都是通過各種各樣的途徑來收集海量的信息,這些信息來自於網站、公司應用、社交媒體、移動設備和不斷增長的物聯網。
比如我們現在每天都在使用的搜索引擎。在自然語言處理領域,有一種非常流行的演算法模型,叫做詞袋模型,即把一段文字看成一袋水果,這個模型就是要算出這袋水果里,有幾個蘋果、幾個香蕉和幾個梨。搜索引擎會把這些數字記下來,如果你想要蘋果,它就會把有蘋果的這些袋子給你。
當我們在網上買東西或是看電影時,網站會推薦一些可能符合我們偏好的商品或是電影,這個推薦有時候還挺准。事實上,這背後的演算法,是在數你喜歡的電影和其他人喜歡的電影有多少個是一樣的,如果你們同時喜歡的電影超過一定個數,就把其他人喜歡、但你還沒看過的電影推薦給你。 搜索引擎和推薦系統 在實際生產環境中還要做很多額外的工作,但是從本質上來說,它們都是在數數。
當數據量比較小的時候,可以通過人工查閱數據。而到了大數據時代,幾百TB甚至上PB的數據在分析師或者老闆的報告中,就只是幾個數字結論而已。 在數數的過程中,數據中存在的信息也隨之被丟棄,留下的那幾個數字所能代表的信息價值,不抵其真實價值之萬一。 過去十年,許多公司花了大價錢,用上了物聯網和雲計算,收集了大量的數據,但是到頭來卻發現得到的收益並沒有想像中那麼多。
所以說我們現在正處於「 數字化一切 」的時代。人們的所有行為,都將以某種數字化手段轉換成數據並保存下來。每到新年,各大網站、App就會給用戶推送上一年的回顧報告,比如支付寶會告訴用戶在過去一年裡花了多少錢、在淘寶上買了多少東西、去什麼地方吃過飯、花費金額超過了百分之多少的小夥伴;航旅縱橫會告訴用戶去年做了多少次飛機、總飛行里程是多少、去的最多的城市是哪裡;同樣的,最後讓用戶知道他的行程超過了多少小夥伴。 這些報告看起來非常酷炫,又冠以「大數據」之名,讓用戶以為是多麼了不起的技術。
實際上,企業對於數據的使用和分析,並不比我們每年收到的年度報告更復雜。已經有30多年歷史的商業智能,看起來非常酷炫,其本質依然是數數,並把數出來的結果畫成圖給管理者看。只是在不同的行業、場景下,同樣的數字和圖表會有不同的名字。即使是最近幾年炙手可熱的大數據處理技術,也不過是可以數更多的數,並且數的更快一些而已。
在大數據處理過程中會用到那些演算法呢?
1、A* 搜索演算法——圖形搜索演算法,從給定起點到給定終點計算出路徑。其中使用了一種啟發式的估算,為每個節點估算通過該節點的較佳路徑,並以之為各個地點排定次序。演算法以得到的次序訪問這些節點。因此,A*搜索演算法是較佳優先搜索的範例。
2、集束搜索(又名定向搜索,Beam Search)——較佳優先搜索演算法的優化。使用啟發式函數評估它檢查的每個節點的能力。不過,集束搜索只能在每個深度中發現最前面的m個最符合條件的節點,m是固定數字——集束的寬度。
3、二分查找(Binary Search)——在線性數組中找特定值的演算法,每個步驟去掉一半不符合要求的數據。
4、分支界定演算法(Branch and Bound)——在多種最優化問題中尋找特定最優化解決方案的演算法,特別是針對離散、組合的最優化。
5、Buchberger演算法——一種數學演算法,可將其視為針對單變數較大公約數求解的歐幾里得演算法和線性系統中高斯消元法的泛化。
6、數據壓縮——採取特定編碼方案,使用更少的位元組數(或是其他信息承載單元)對信息編碼的過程,又叫來源編碼。
7、Diffie-Hellman密鑰交換演算法——一種加密協議,允許雙方在事先不了解對方的情況下,在不安全的通信信道中,共同建立共享密鑰。該密鑰以後可與一個對稱密碼一起,加密後續通訊。
8、Dijkstra演算法——針對沒有負值權重邊的有向圖,計算其中的單一起點最短演算法。
9、離散微分演算法(Discrete differentiation)。
10、動態規劃演算法(Dynamic Programming)——展示互相覆蓋的子問題和最優子架構演算法
11、歐幾里得演算法(Euclidean algorithm)——計算兩個整數的較大公約數。最古老的演算法之一,出現在公元前300前歐幾里得的《幾何原本》。
12、期望-較大演算法(Expectation-maximization algorithm,又名EM-Training)——在統計計算中,期望-較大演算法在概率模型中尋找可能性較大的參數估算值,其中模型依賴於未發現的潛在變數。EM在兩個步驟中交替計算,第一步是計算期望,利用對隱藏變數的現有估計值,計算其較大可能估計值;第二步是較大化,較大化在第一步上求得的較大可能值來計算參數的值。
13、快速傅里葉變換(Fast Fourier transform,FFT)——計算離散的傅里葉變換(DFT)及其反轉。該演算法應用范圍很廣,從數字信號處理到解決偏微分方程,到快速計算大整數乘積。
14、梯度下降(Gradient descent)——一種數學上的最優化演算法。
15、哈希演算法(Hashing)。
16、堆排序(Heaps)。
17、Karatsuba乘法——需要完成上千位整數的乘法的系統中使用,比如計算機代數系統和大數程序庫,如果使用長乘法,速度太慢。該演算法發現於1962年。
18、LLL演算法(Lenstra-Lenstra-Lovasz lattice rection)——以格規約(lattice)基數為輸入,輸出短正交向量基數。LLL演算法在以下公共密鑰加密方法中有大量使用:背包加密系統(knapsack)、有特定設置的RSA加密等等。
19、較大流量演算法(Maximum flow)——該演算法試圖從一個流量網路中找到較大的流。它優勢被定義為找到這樣一個流的值。較大流問題可以看作更復雜的網路流問題的特定情況。較大流與網路中的界面有關,這就是較大流-最小截定理(Max-flow min-cut theorem)。Ford-Fulkerson 能找到一個流網路中的較大流。
20、合並排序(Merge Sort)。
21、牛頓法(Newton's method)——求非線性方程(組)零點的一種重要的迭代法。
22、Q-learning學習演算法——這是一種通過學習動作值函數(action-value function)完成的強化學習演算法,函數採取在給定狀態的給定動作,並計算出期望的效用價值,在此後遵循固定的策略。Q-leanring的優勢是,在不需要環境模型的情況下,可以對比可採納行動的期望效用。
23、兩次篩法(Quadratic Sieve)——現代整數因子分解演算法,在實踐中,是目前已知第二快的此類演算法(僅次於數域篩法Number Field Sieve)。對於110位以下的十位整數,它仍是最快的,而且都認為它比數域篩法更簡單。
24、RANSAC——是「RANdom SAmple Consensus」的縮寫。該演算法根據一系列觀察得到的數據,數據中包含異常值,估算一個數學模型的參數值。其基本假設是:數據包含非異化值,也就是能夠通過某些模型參數解釋的值,異化值就是那些不符合模型的數據點。
25、RSA——公鑰加密演算法。較早的適用於以簽名作為加密的演算法。RSA在電商行業中仍大規模使用,大家也相信它有足夠安全長度的公鑰。
26、Schönhage-Strassen演算法——在數學中,Schönhage-Strassen演算法是用來完成大整數的乘法的快速漸近演算法。其演算法復雜度為:O(N log(N) log(log(N))),該演算法使用了傅里葉變換。
27、單純型演算法(Simplex Algorithm)——在數學的優化理論中,單純型演算法是常用的技術,用來找到線性規劃問題的數值解。線性規劃問題包括在一組實變數上的一系列線性不等式組,以及一個等待較大化(或最小化)的固定線性函數。
28、奇異值分解(Singular value decomposition,簡稱SVD)——在線性代數中,SVD是重要的實數或復數矩陣的分解方法,在信號處理和統計中有多種應用,比如計算矩陣的偽逆矩陣(以求解最小二乘法問題)、解決超定線性系統(overdetermined linear systems)、矩陣逼近、數值天氣預報等等。
29、求解線性方程組(Solving a system of linear equations)——線性方程組是數學中最古老的問題,它們有很多應用,比如在數字信號處理、線性規劃中的估算和預測、數值分析中的非線性問題逼近等等。求解線性方程組,可以使用高斯—約當消去法(Gauss-Jordan elimination),或是柯列斯基分解( Cholesky decomposition)。
30、Strukturtensor演算法——應用於模式識別領域,為所有像素找出一種計算方法,看看該像素是否處於同質區域( homogenous region),看看它是否屬於邊緣,還是是一個頂點。
31、合並查找演算法(Union-find)——給定一組元素,該演算法常常用來把這些元素分為多個分離的、彼此不重合的組。不相交集(disjoint-set)的數據結構可以跟蹤這樣的切分方法。合並查找演算法可以在此種數據結構上完成兩個有用的操作:
查找:判斷某特定元素屬於哪個組。
合並:聯合或合並兩個組為一個組。
32、維特比演算法(Viterbi algorithm)——尋找隱藏狀態最有可能序列的動態規劃演算法,這種序列被稱為維特比路徑,其結果是一系列可以觀察到的事件,特別是在隱藏的Markov模型中。
❿ 搜索引擎採用的是什麼技術
隨著互聯網的迅猛發展、WEB信息的增加,用戶要在信息海洋里查找自己所需的信息,就象大海撈針一樣,搜索引擎技術恰好解決了這一難題。搜索引擎是指互聯網上專門提供檢索服務的一類網站,這些站點的伺服器通過網路搜索軟體或網路登錄等方式,將Intenet上大量網站的頁面信息收集到本地,經過加工處理建立信息資料庫和索引資料庫,從而對用戶提出的各種檢索作出響應,提供用戶所需的信息或相關指針。用戶的檢索途徑主要包括自由詞全文檢索、關鍵詞檢索、分類檢索及其他特殊信息的檢索。下面以網路搜索機器人為例來說明搜索引擎技術。
搜索引擎優化,通俗理解是:通過總結搜索引擎的排名規律,對網站進行合理優化,使你的網站在網路和Google的排名提高,讓搜索引擎給你帶來客戶。深刻理解是:通過SEO這樣一套基於搜索引擎的營銷思路,為網站提供生態式的自我營銷解決方案,讓網站在行業內占據領先地位,從而獲得品牌收益。同時打響品牌,讓更多人明白其產品。
網路機器人(Robot)又被稱作Spider、Worm或Random,核心目的是為獲取Internet上的信息。一般定義為「一個在網路上檢索文件且自動跟蹤該文件的超文本結構並循環檢索被參照的所有文件的軟體」。機器人利用主頁中的超文本鏈接遍歷WWW,通過URL引用從一個HTML文檔爬行到另一個HTML文檔。網上機器人收集到的信息可有多種用途,如建立索引、HIML文件合法性的驗證、URL鏈接點驗證與確認、監控與獲取更新信息、站點鏡像等。
機器人安在網上爬行,因此需要建立一個URL列表來記錄訪問的軌跡。它使用超文本,指向其他文檔的URL是隱藏在文檔中,需要從中分析提取URL,機器人一般都用於生成索引資料庫。所有WWW的搜索程序都有如下的工作步驟:
機器人從起始URL列表中取出URL並從網上讀取其指向的內容;
從每一個文檔中提取某些信息(如關鍵字)並放入索引資料庫中;
從文檔中提取指向其他文檔的URL,並加入到URL列表中;
重復上述3個步驟,直到再沒有新的URL出現或超出了某些限制(時間或磁碟空間);
給索引資料庫加上檢索介面,向網上用戶發布或提供給用戶檢索。
搜索演算法一般有深度優先和廣度優先兩種基本的搜索策略。機器人以URL列表存取的方式決定搜索策略:先進先出,則形成廣度優先搜索,當起始列表包含有大量的WWW伺服器地址時,廣度優先搜索將產生一個很好的初始結果,但很難深入到伺服器中去;先進後出,則形成深度優先搜索,這樣能產生較好的文檔分布,更容易發現文檔的結構,即找到最大數目的交叉引用。也可以採用遍歷搜索的方法,就是直接將32位的IP地址變化,逐個搜索整個Internet。
量販式搜索引擎優化是一個技術含量很高的網路應用系統。它包括網路技術、資料庫技術動標引技術、檢索技術、自動分類技術,機器學習等人工智慧技術。