直播中
目前的主要搜索引擎的模式都是,用戶輸入一些關(guān)鍵字或者句子,無論是那種,搜索引擎都會首先對用戶的輸入進行分詞,這樣可以增加搜索結(jié)果的準確性,這是和普通數(shù)據(jù)庫搜索的不同點(普通的數(shù)據(jù)庫搜索,只是簡單的用 like %關(guān)鍵字%),然后搜索引擎去海量的索引庫去查找這些和用戶輸入相關(guān)的信息,顯示的結(jié)果會包含網(wǎng)頁的相關(guān)摘要。
中文搜索引擎相關(guān)的技術(shù)包含:網(wǎng)絡(luò)蜘蛛,中文分詞,索引庫,網(wǎng)頁摘要的提取,網(wǎng)頁相似度,信息的分類。
1。網(wǎng)絡(luò)蜘蛛
網(wǎng)絡(luò)蛛蛛是指對浩瀚網(wǎng)絡(luò)抓取信息的程序,他們往往是多線程,不分晝夜的抓取網(wǎng)絡(luò)信息,同時要防止對某個站點抓取過快,導(dǎo)致信息提供方服務(wù)器過載。
網(wǎng)絡(luò)蜘蛛的基本原理:先從一個起始頁面(建議從yahoo中文目錄或者dmoz中文目錄)開始抓取,獲取此頁面內(nèi)容,摘要,然后提取頁面所有連接,蜘蛛接著抓取這些連接,一直源源不斷的抓取。這些只是基本原理,實際應(yīng)用要復(fù)雜很多,你可以試著自己寫一個蜘蛛,我曾經(jīng)用PHP寫過(PHP不能多線程,缺陷。)
2。中文分詞
中文分詞一直是中文搜索引擎的關(guān)鍵點,中文不同英文,英文每個單詞是用空格分開,而中文一個句子往往是一些詞的連結(jié),沒有分割符,人可以很容易的看懂句子的意思,但是計算機很難開懂。
目前我了解的中文分詞方法(據(jù)說有老外的不用詞典的中文分詞方法),幾乎都是有自己的中文詞典,分詞時去詞典匹配,達到分詞目的,分詞的好壞,和詞典關(guān)系很大。你可以看我上篇文章,是用PHP寫的中文分詞方法。
目前很多高校語言學的碩士論文都寫的這個
baidu用的自己開發(fā)分詞方法,google用的第3方的分詞方法。。
海量中文分詞挺不錯,不過是商業(yè)的。。
獵兔的中文分詞方法也不錯,不過是.so的,無法研究
3。索引庫
搜索引擎都不會用已經(jīng)成型的數(shù)據(jù)庫系統(tǒng),他們是自己開發(fā)的類似數(shù)據(jù)庫功能的東西。
搜索引擎需要保存大量網(wǎng)頁信息,快照,關(guān)鍵字索引(建議應(yīng)該也保存網(wǎng)頁的截圖,我在研究中),所以數(shù)據(jù)量特別大。
4。網(wǎng)頁摘要的提取
網(wǎng)頁摘要是指對某個網(wǎng)頁信息的總結(jié)(初中語文課,老師經(jīng)常讓總結(jié)文章的中心思想,就這個意思,我最怕老師提問讓我總結(jié),人總結(jié)都這么難,現(xiàn)在讓計算機總結(jié),天啦),搜索引擎搜索結(jié)果里,往往會有網(wǎng)頁標題下面,會有些介紹,讓搜索者很容易的發(fā)現(xiàn)此文章是不是想要的信息。
5。網(wǎng)頁相似度
網(wǎng)上經(jīng)常有很多內(nèi)容一樣的網(wǎng)站,比如說同一條新聞,各大門戶網(wǎng)站都會發(fā)布,它們的新聞內(nèi)容都是一樣的。還有一些個人網(wǎng)站,尤其是偷別人網(wǎng)站資料的網(wǎng)站,和別人網(wǎng)站搞的一模一樣(我搞過,在此ps下自己),這樣的網(wǎng)站毫無意義,搜索引擎會自動區(qū)分,降低其權(quán)值(baidu最狠,直接封站,我嘗試過)。
目前我研究的計算網(wǎng)頁相似度的幾種方法如下:
1) 根據(jù)網(wǎng)頁摘要來比較,如果多個網(wǎng)頁摘要的md5值一樣,證明這些網(wǎng)頁有很高的相似性
2) 根據(jù)網(wǎng)頁出現(xiàn)關(guān)鍵詞,按照詞頻排序,可以取N個詞頻高的,如果md5值一樣,證明這些網(wǎng)頁有很高的相似性。
google baidu 的新聞,是對此技術(shù)的應(yīng)用。
目前很多高校的數(shù)據(jù)挖掘?qū)I(yè)的研究生論文都寫的這個
6。信息的自動分類
網(wǎng)絡(luò)的信息實在是太龐大了,如何對其進行分類,是搜索引擎面臨的難題。要讓計算機對數(shù)據(jù)自動分類,先要對計算機程序進行培訓(xùn),目前我正在研究中
爬狗做的不錯。
以上是我個人對搜索引擎了解后的看法,均為柳志強原創(chuàng),其中難免有認識不全面或者錯誤的,懇請各位同仁指正(別砸我就行)!