SEO教程提供SEO基礎入門教程
微笑SEO優化教程網:關注本站讓你的SEO不斷進步!

SEO視頻教程第四課:基于搜索引擎的分詞算法

您現在的位置:SEO教程 > SEO視頻教程 > 時間:2018-05-12 15:00:44 > 作者:smiseo
很多朋友有聽說過分詞,應該也有很多朋友不知道什么叫分詞,相信聽過分詞的朋友也不是很清楚分詞是個什么東西;

今天為大家帶了一節:基本于搜索引擎的分詞技術的SEO視頻教程;

溫馨提示:視頻是連載的,建議大家從第一節開始看起。




百度分詞算法詳解

微笑最近在一些SEO討論的大雜會聽到很多有關于分詞的話題,今天微笑就談談什么叫分詞,百度是怎么樣分詞的;在我們亞洲最少就要有三個國家需要分詞:中國,韓國,日本;作為全球最大的中文搜索引擎—百度更要在中文分詞的處理能力上要具有技術和優勢。

百度分詞算法詳解
 
分詞作用:
1.文本挖掘:把文本類型的信息源作為分析的對象利用定量計算和定性分析從中找出信息的結構,模型,模式等各方面的隱含知識并對用戶來說是有需要的。文本挖掘的復雜層度很高有信息抽取,信息檢索,自然語言的處理還有數據處理等,再從提取出來的信息當中選取未知的知識。
 
2.語議識別:中文的語義別識難度遠遠超過英文,比如同一詞語在不同語境的情況下所表達的意思是完全不同的;寫到這里微笑有點怕的就是像文本挖掘一樣要了解的知識點實在太多,如果把這兩個點表達清楚的話所需要字數不在萬下,作為一個SEO你需要大概的了解就可以,如果真的要深究的話那么可以跟微笑一起交流。
 


搜索引擎分詞算法
基于字符串的分詞算法:

搜索引擎分詞算法

 
1.正向最大匹配:由左往右將文本里的幾個連續字符與詞表匹配,如果可以匹配上的話就切分出一個詞來,但是最大匹配就要經過很多次的匹配才能切分出來。
 
2.逆向最大匹配:公式:M(A,B)=P(AB)/P(A)P(B),其中A表示一個字,B表示一個字,P(AB)表示AB相鄰出現的概率,P(A)表示A在這篇文章中的頻度,P(B)表示B在這篇文章中的頻度;逆向最大匹配我們可以了解為反推理就可以,在算法上來說逆向比正向的算法結果更正確。
 
3.雙向最大匹配:所謂雙向就是在正向和逆向這兩種算法都存在局限性上推出來補不足的,目的就是為了更準確的切分詞。
 
4.最小切詞:相信很不用怎么解釋了吧,就是從一段語句或內容中切出最小的詞,要注意的是不能有單字詞和長度最小為2個字節。
 
5.綜合分詞:就是綜合所有的分詞算法,從而令到搜索結果可以更準確。
 
6.特征或標志切分和斷點:這個知識已申請專利在此就不寫出來,想了解的朋友可以網上一找就有長篇大論來介紹。

7.搜索引擎基于模擬人的方法去分析內容里的語句、句法、語義等來判斷和統計;統計:一個關鍵詞出現的頻率。


詳說搜索引擎的分析系統之中文分詞
什么是搜索引擎的中文分詞,網頁查重的工作完成后,分析系統在將分析的結果發往索引系統前還需要對正文進行分詞,也稱為“切詞(word segment)”。分詞的方法繁多,本節介紹一些基本方法。
 
什么是中文分詞
任何文檔都可以看做是一些連續的詞的集合。然而中文并沒有明顯的詞間分隔。這一點和英文不同。當然英文也有難點,例如時態和詞性的變化等。在中文語法中,詞匯是由兩個或兩個以上漢字組成的,并且句子是連續書寫的,句子間由標點分隔。這就要求在自動分析中文文本前,首先將整句切割成小的詞匯單元,即中文分詞。
舉個簡單的例子來說明分詞的難度,對于“學歷史學好”個句子,作為人來說,能夠很容易得到正確的切分方法,取“學/歷史學/好”(本章用“/”表示一個分詞切分符號)。然面計算機要具有這樣的智慧還有很多工作要做,否則可能分為“學歷/史學/好”。
 
目前的分詞手段主要依靠了字典和統計學的方法。由于索引是按照關鍵詞建索引的,所以分詞的效果直接決定了索引詞及檢索的效果。因此例如將文檔“學歷史學好”錯分成“學歷/史學/好”。所以索引時,只會對“學歷”、“史學”及“好”這3個索引詞建立它們與該文檔的關聯關系。這樣用戶查詢“歷史學”這個關鍵詞時,就無法檢索出這個文檔,可見分詞質量在很大程度上影響了搜索的結果和效果。
 
通過字典實現分詞
先人為我們沉淀了厚重的歷史和燦爛的文化,而其中的代表就是我們日常使用的文字。也許正是因為沒有斷詞,所以它才顯得那么奇妙和多變。雖然這種多變在表達上提供了靈活性,但給搜索引擎帶來了難題。在中文分詞中主要體現了如下3種難分類型。
 
1.交集型歧義
在阿拉伯數字字串AJB中,若AJεD. JBεD. AεD且BεD,則AJB為交擠型歧義字段。此時AJB有AJ/B和^A/JB兩種切分形式,其中J為交執字段。例如,“從小學”。這個詞可能有多種切分方法。
對于“從小學電腦”。正確的切分為“從小,學,電腦”。
對于“從小學畢業”,正確的切分為“從,小學,畢業”。
 
2.組合型歧義
在字串AB中,若ABεD,AεD且BεD,且業AB為組合型歧義字段。此時,AB有AB和A/B兩種切分形式。
 
“中將”這個詞可能有多種切分方法。
對于“美軍中將竟公然說”,正確的切分為“美軍,中將,竟公然說”。
對于“新建地鐵中將禁止商業攤點”,正確的切分為“新建地鐵,中,將,禁止商業攤點”。
 
3.混合歧義
同時包含交集型歧義和組臺型歧義,則為混合型歧義。
對于“人才能”。可能切分為“人才,能”、“人,才能”和“人,才,能”。
目前解決這些問題的技術手段主要借助字典和統計學的方法共同完成。我們首先從字典開始講起,梁南元教授(梁南元,1987)最早提出利用字典的方法分詞。但如何讓計算機讀字典,如何讓計算機在各種字典的詞義中選擇合理的分詞卻并不容易。
日常使用的字典通常收錄那些意義明確、使用頻率高且生活中約定俗成的詞匯,對于搜索引擎來說,字典中收錄的詞匯相當少。但即便是如此少的詞,如何很快并有效地存儲字典,以至于在需要知道一個字符串包含多少個字典中出現的詞時能夠快速地實現進行過程,成為首先需要解決的問題。
字典通常采用前綴樹成者后綴樹的數據結構存儲,什么是前綴樹?我們來舉個例子。
將字典做成一個前綴樹結構的數據結構,如圖4-15所示。
 
詳說搜索引擎的分析系統之中文分詞

選擇若干詞建立一個前綴樹數據結構作為示例,整個字典將是一個由多個后綴樹構成的森林。其中從樹頂開始,每一個字及其全部祖先構成一個詞匯的一部分。對于圖中雙線圈的詞。認為是一次終結,表示它及其全部祖先可以構成字典中的一個詞匯。這里“走進”是一個詞匯,而“搜索引”不是一個詞,因為“引”是單線圈。“搜索引擎”是一個詞匯,因為“擎”這個字是雙線圈。這種結構十分類似于日常生活中字典的組織方式,即均以一個字開頭,其后為以該字開頭的全部詞匯。日常生活中查字典的習慣也是如此,在字典中查一個詞。首先直出該詞匯的首個漢字在字典中的頁數(這里可以理解為在字典森林中找到以某個字開頭的前綴樹),繼而在其中查找相應的詞匯(可以理解為在該詞的后綴樹中查到指定的詞匯)。
 
分詞的過程可以理解為一次查字典的過程,假定有一個句子“走進搜索引擎。”需要分詞,那么計算機將會如何切分呢?
首先計算機讀入“走”,找到“走”這個字典分支。然后讀到“進”,查看“走”字打頭的前綴樹。發現“進”是雙圈字,與“走”怡好構成一個詞。繼續讀到“搜”時,發現“走”字開頭的前綴樹中沒有繼續的匹配,因此切分出“走進”這個詞匯。
接下來找到“搜”這個字典分支,繼而讀入“索”。發現“索”是一個雙圈字。系統確定了一個詞“搜索”,然而還可能存在更長的匹配。此時系統繼續讀入“引”,由于這時“引”是單圈字,因此繼續向下讀入“擎”。發現“擎”為一個雙圈字,由于下面繼續讀出的是句號,因此抽取出“搜素引擎”這個詞匯。這樣整個句子切分完畢,結里為“走進,搜索引擎”。
 
實際的分詞并不總是如此簡單,這種前級優先的最大長度匹配的方法對于“學歷史學好”這樣的句子會分成“學歷,史學,好”這樣的錯誤結果,那么如何避免呢?
使用后綴樹方法可以有效地降低這種錯誤,不過在從一個字典轉到一個后級樹多少有些不夠自然。后綴樹的結構如圖4-16所示。

詳說搜索引擎的分析系統之中文分詞

與前綴樹的構造方法不同,樹根表示一個詞的結尾字,雙圈字表示某個詞的詞頭。我們知道,“歷史學”、“歷史”和“學好”是一個詞,“學歷史學好”被切分成“學,歷史,學好”。
從句子的右邊向左邊讀,首先找到“好”這個分支。然后讀入“學”,恰好存在這樣一個詞,因此抽取出它。繼續讀入“史”依次讀入全部句子,直到切分結束,最后切分的結果為“學,歷史,學好”。雖然沒有錯分出“學歷”。但是因為“好”這個字的特殊性,這樣的逆向切分仍然不能達到理想的結果。
 
第1種方法稱為“最大正向匹配法”(Maximum MatchingMethod ),通常簡稱為“MM法”;第2種方法稱為“逆向最大匹配法”(Reverse Maximum Matching Method),通常簡稱為“ RMM法”。RMM法的基本原理與MM法相同,不同的是分詞的掃描方向。
這類分詞的方法可以稱為“貪婪算法”,“貧婪”在于總是認為最大匹配的詞匯最優。或者說最大匹配可以使得切分出的詞匯數量最少,而較少的索引詞可以降低索引系統的工作量和最終索引文件的大小。
而事實上,貪婪并不總是最優。例如對于“學歷史學好”,如果正向最大匹配。那么切分為“學歷,史學,好”;如果逆向最大匹配,將會切分為“學,歷史,學好”。無論如何切分都不理想。因此“貪婪”導致的局部最優很可能不是全局最優的問題被凸現出來。
不論MM法,還是RMM法都有不足。一個稱為“N-Gram”的方法可以滿足由于分錯詞而帶來的損失,簡單的如2-Gram方法,這種切分方法照顧了所有的可能。舉個例子,“走進搜索引擎”按照2-Gram的切分方法,得到“走進”、“進搜”、“搜索”、“索引”和“引擎”。這有點類似于前面提到的Shingle方法,區別是Shingle方法由于是子文檔集合。因此會在內部對相同的Shingle只保留一個Shingle,而去掉其他相同的,從而保證集合的誰一性。
 
“N-Gram”的分詞方法雖然有效地避免字典分詞的錯誤而導致索引不完整的情況。但是分詞是為了在索引階段盡量減少索引項,而“N-Gram”的方法,特別是“2-gram”的分詞法卻會帶來大量的關鍵詞索引項,因為例如口“進搜”這樣的詞都做成了索引項,這是極不經濟的。
綜上所述,沒有一種分詞方法能夠解決全部的問題。雖然采用字典分詞的方法作為主流的分詞方法能夠解決大部分的分詞問題,但是字典總是滯后于語言的發展。很多新興詞匯需要每隔一段時間才能成批地收錄進詞典。因此能夠及時地、自動地、準確地發現新詞才能把字典分詞的威力發揮到最大。新詞發現主要通過統計推斷的方法來實現。
 
通過統計學方法實現分詞
雖然字典解決了分詞的大部分問題,但是由于字典收錄詞數的限制,分詞還需要具有新詞發現的能力。即補充新發現的普遍被采用的流行的各種詞匯到字典中。其中包括演藝明星姓名和網絡流行語,層甚至股票代碼和火車車次都可能成為新詞發現的目標。事實上,發現新出現的詞匯(學術上稱為“新詞發現”)相當復雜。需要很多基于概率及信息學方面的知識,在本書中不展開深入研究。基本的原理就是探索那些經常一同出現的字,總是相互出現的字很有可能構成一個詞。為此需要分析和探索大量網頁內容,這種分析和探索過程均離線完成,最后還會有一個人工確認的過程。
 
即使到現在,中文分詞技術還在不斷地向前發展,還沒有哪一個分詞算法能夠解決一切問題,語言學多樣化的重要難關激勵著更多的科學家展開更加深入的研究。中文分詞的方法也被應用到英語處理,主要是手寫體識別中。因為在識別手寫體時,單詞之間的空格變得比較模糊。中文分詞方法可以幫助判別英語單詞的邊界,因此其研究工作越來越引起廣泛的關注。

本文章出自http://www.dklwl.com/seospjc/209.html 轉載請注明出處!

本文出自微笑SEO優化教程網,未經允許不得轉載:SEO視頻教程第四課:基于搜索引擎的分詞算法 http://www.dklwl.com/seospjc/209.html
? 亚洲视频在线不卡免费