<big id="ljtd7"></big>
      <address id="ljtd7"></address>

          <form id="ljtd7"><i id="ljtd7"><output id="ljtd7"></output></i></form>
          <i id="ljtd7"><dl id="ljtd7"></dl></i>
          <ins id="ljtd7"><ol id="ljtd7"><menuitem id="ljtd7"></menuitem></ol></ins>

          <i id="ljtd7"></i>

              ×

              當前位置: 首頁 > seo優化

              中文分詞算法

              作者:云圣網絡發布時間:2021-01-23 19:47:34瀏覽次數:

                中文分詞

                中文分詞指將一個漢字序列切分成一個個單獨的詞?,F有的分詞算法可分為三大類:基于字符串匹配的分詞方法、基于理解的分詞方法和基于統計的分詞方法。

                基于字符串匹配的分詞方法

                基于字符串匹配的分詞方法又稱為機械分詞方法,它需要有一個初始的充分大的詞典,然后將待分詞的字符串與詞典中的元素進行匹配,若能成功匹配,則將該詞切分出來。

                按掃描方向的不同,字符串匹配分詞方法可以分為正向匹配和逆向匹配;按照不同長度的匹配優先度可以劃分為最大匹配和最小匹配。

                正向最大匹配

                1.從左到右將待切分句子的m個字符作為匹配字符,m為初始詞典中最長詞條的長度。

                2.將字符與字典中元素進行匹配

                (1)若匹配成功,則將這個字符作為一個詞切分出來 ;

                (2)若匹配不成功,則將這個字符的最后一個字去掉,再進行匹配,重復上述過程,直到切分完整個文本為止。

                假設我們要切分的句子為“南京市長江大橋”,字典中最長的元素長度為5,則先取待切分句子的前5個字符“南京市長江”,字典中沒有元素與之匹配,長度減一,則變成“南京市長”,匹配成功。

                對剩余三個字“江大橋”再次進行正向最大匹配,會切成“江”、“大橋”;

                整個句子切分完成為:南京市長、江、大橋。

                逆向最大匹配

                逆向最大匹配的思想與正向最大匹配基本相同,不同的是將掃描方向變成了從右往左,匹配不成功時,去掉最左邊的字符。實驗表明,逆向最大匹配算法效果要優于正向最大匹配算法。

                “南京市長江大橋”的逆向最大匹配:

                1.取出“南京市長江大橋”的后5個字“市長江大橋”,字典中無匹配元素,將字符“市”去掉,發現詞典中有匹配,切割下來;

                2.對剩余的“南京市”進行分詞;

                整體結果為:南京市、長江大橋。

                雙向最大匹配

                雙向最大匹配法是將正向最大匹配法得到的分詞結果和逆向最大匹配法得到的分詞結果進行比較,從而決定正確的分詞方法。

                還是上面的例子,雙向最大匹配的劃分結果為:南京市長、南京市、長江大橋、江、大橋。

                該算法的優點是速度快,時間復雜度為O(n),實現簡單;但是對于歧義和未登錄詞表現不佳。

                基于理解的分詞方法

                基于理解的分詞其基本思想就是在分詞的同時進行句法、語義分析,利用句法信息和語義信息來處理歧義現象。它通常包括三個部分:分詞子系統、句法語義子系統、總控部分。由于漢語語言知識的籠統、復雜性,難以將各種語言信息組織成機器可直接讀取的形式,因此目前基于理解的分詞系統還處在試驗階段。

                基于統計的分詞方法

                主要思想:

                每個字都是詞的最小單元,如果相連的字在不同的文本中出現的頻率越多,這就越有可能是一個詞。因此我們可以用相鄰字出現的頻率來衡量組詞的可能性,當頻率高于某個閾值時,我們可以認為這些字可能會構成一個詞。

                主要統計模型:

                N元文法模型(N-gram),隱馬爾可夫模型(Hidden Markov Model,HMM),最大熵模型(ME),條件隨機場(Conditional Random Fields,CRF)等 。

                優勢:

                在實際運用中常常將字符串匹配分詞和統計分詞結合使用,這樣既體現了匹配分詞速度快、效率高的優點,同時又能運用統計分詞識別生詞、自動消除歧義等方面的特點。

                N-gram模型

                該模型基于這樣一種假設,第n個詞出現只與前面n-1個詞相關,而與其他詞都不相關。整句話的概率就是各個詞出現概率的乘積。對于一個句子T,假設它由n個詞w1,w2,w3,?,wn組成,則

                

              圖片

                計算這個式子很麻煩,因此引入馬爾科夫假設:一個詞的出現僅依賴于它前面有限的幾個詞。如果一個詞的出現僅依賴于它前面出現的一個詞,我們就稱之為bigram。則上式變為:

                

              圖片

                如果一個詞的出現僅依賴于它前面出現的兩個詞,那么我們就稱之為trigram。以此類推,N元模型就是假設當前詞的出現概率只同它前面的N-1個詞有關。

                隱馬爾可夫模型(HMM)

                一般的,一個HMM可以表示為u=(S, K, A, B, π), 其中S是狀態集合,K是輸出符號也就是觀察集合,A是狀態轉移概率,B是符號發射概率,π是初始狀態的概率分布。HMM主要解決三個基本問題:

                (1)估計問題,給定一個觀察序列O=O1,O2,O3,… ,Ot和模型u=(A,B,π),計算觀察序列的概率;

                (2)序列問題,給定一個觀察序列O=O1,O2,O3… Ot和模型μ=(A,B,π),計算最優的狀態序列Q=q1,q2,q3…qt;

                (3)參數估計問題,給定一個觀察序列O=O1,O2,O3… Ot,如何調節模型μ=(A,B, π)的參數,使得P(O|μ)最大。

                隱馬爾可夫模型中的變量有兩組。一組為狀態變量{y1,y2,…,yn},其中yi表示第i時刻所處的狀態,這些狀態是隱藏的、不可觀測的,因此又稱為隱變量,隱變量的取值通常是離散的。第二組是觀測變量{x1, x2, …, xn},其中xi表示第i時刻的觀測值。

                在任一時刻,觀測變量的取值只與該時刻的狀態變量有關,即xi由yi決定。而當前狀態只與前一時刻的狀態有關,與其他狀態無關。

                設狀態集合S=(B,M,E,S),每個狀態代表的是這個字在詞語中的位置,B代表該字是詞語中的起始字,M代表是詞語中的中間字,E代表是詞語中的結束字,S則代表是單字成詞;觀察值集合K =(所有的漢字);則中文分詞的問題就是通過觀察序列來預測出最優的狀態序列。比如觀察序列為:

                O = 南京市長江大橋

                預測的狀態序列為:

                Q = BMEBMME

                根據這個狀態序列我們可以進行切詞:

                BME/BMME/

                所以切詞結果如下:

                南京市/長江大橋/

                因為HMM分詞算法是基于字的狀態(BEMS)來進行分詞的,因此適合用于新詞發現,某一個新詞只要標記為如“BMME”,就算它沒有在歷史詞典中出現過,HMM分詞算法也能將它識別出來。


              文本地址:http://www.thai-handicrafts.com/seoyouhua/253.html

              版權所有©轉載時請您以鏈接形式注明來源!【收藏本頁】【打印】【關閉

              專業網站優化、關鍵詞排名優化

              © Copyright ? 2016-2020 武漢云圣網絡科技公司 版權所有  網站地圖

              武漢網站優化客服 微信客服

              武漢seo手機版 進入手機版

              精品人人槡人妻人人槡

                  <big id="ljtd7"></big>
                  <address id="ljtd7"></address>

                      <form id="ljtd7"><i id="ljtd7"><output id="ljtd7"></output></i></form>
                      <i id="ljtd7"><dl id="ljtd7"></dl></i>
                      <ins id="ljtd7"><ol id="ljtd7"><menuitem id="ljtd7"></menuitem></ol></ins>

                      <i id="ljtd7"></i>