搜索引擎探究(一)

前段是時間找工作,受打擊了,本以爲自己熟練了掌握了C/C++,windows編程,ATL、WTL編程,可以熟練的編寫win32DLL,可以熟練的寫MFC程序,就可以找個差不多的公司,誰料到,並不是所有的公司都找這樣寫window客戶端的人。

百度,搜索;阿里,數據挖掘。這些東西,我真是一竅不通,所以一怒之下開始研究搜索引擎(主要是想去百度,所以研究一下這個)

《自己動手寫搜索引擎》羅剛寫的那本,這本書寫的不錯,當然講的比較簡單,但是對於入門確是一本很不錯的書。

一、搜索引擎的基本技術

1、網絡蜘蛛(spider)又稱作網絡機器人(Robot),或者Crawler,其主要目的是獲取互聯網上的信息,說簡單點,就是從互聯網上下載網頁,然後通過網頁中的URL下載另一個網頁,依次類推,在互聯網中漫遊。

當然抓取網頁時候,大部分有禮貌的網絡機器人會遵循Robot.txt協議,這個協議是網站用來聲明自己不想被搜索引擎搜索的。當然,這不是硬性規定。

2、網絡蜘蛛只負責從網絡中下載文件,下一步就是提取文檔中的文本內容,主要是從HTML,TEXT,PDF,word,rtf,excel,powerpoint等文件中提取文本,當然也有流媒體內容,至於怎麼提取,都會有相應的開源代碼。

3、中文分詞,應該是屬於人工智能的知識。說白了,就是讓計算機淺層次理解人類的自然語言。例如“你能明白我的意思嗎?”這句話,對於一個外國人來說,肯定是不懂的,中文分詞就是切割句子的方法,就是告訴那個外國人,這個句子是由哪些詞語組成的。例如下面一種分割方法,“你/能/明白/我的/意思/嗎?”,當然分割方法不唯一。

中文分詞的常用方法有三種:

一種是單字方式,就是把句子中的每個字分別分割,“你/能/明/白/我/的/意/思/嗎?”

二元覆蓋方式,就是沒兩個字的分割,你能,能明,明白,白我,我的,的意,意思,思嗎

分詞的方式,“你/能/明白/我的/意思/嗎?”

分詞有兩類方法:機械匹配,基於統計的方法。

機械分配主要利用正向或反向最大匹配的方法來分詞,或者利用者兩種方法進行分詞,然後選出切出次數最小的那個方法,作爲分詞結果。

機械分配需要一個詞典來判斷一個單子組合是不是一個詞,如果這個單子組合在詞典中,則是一個詞,否則不是。

基於統計的方法,是比較準確的,但是比較複雜,常用的有最大概率分詞方法。其基本思想如下:

一個待切分的漢字串可能包含多種分詞結果;

將其中概率最大的作爲該字串的分詞結果。

4、自然語言處理,這部分比較複雜,放到以後研究。

5、創建索引庫。以我個人的理解,就是保存關鍵字的來源,比如我輸入了,“計算機”這個關鍵字,通過索引可以查到包含“計算機”這個字符串的URL,當然哪些URL才最可能是用戶想要的,這就是另一個需要研究的問題了。

      上面的5條是搜索引擎的基本知識,也就是每個搜索引擎都應該有的東西,具體細節待以後研究。

二、搜索引擎的分類:

1、通用搜索,常見的有google,百度等。這是我們經常用到的搜索,容易理解。

2、垂直搜索。這是針對某一個行業的專業搜索引擎,就是專門搜索某個行業的網頁,不相關的網頁不處理。

    垂直搜索是對網頁庫中某類專門的信息進行整合,定向分字段抽取行業相關的信息後再按適當的形式返回給用戶。

3、站內搜索。比較流行的有三種實現方式:

     基於數據庫的搜索;基於spider抓取的站內搜索;站內搜索軟件系統

4、桌面搜索。允許用戶很方便地快速找到存在於計算機本地磁盤上的相關文檔。

          好了今天的學習就到這裏,還沒吃飯,餓死了。19:19,這個時間我喜歡

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章