學習筆記--中文分詞(一)

背景

  • 要解決中文分詞準確度問題,是否可以提供一個免費版本的通用分詞程序

          --像分詞這種自然語言處理領域的問題,很難徹底完全解決

          --每個行業或業務側重不同,分詞工具設計策略也是不一樣的

中文分詞(Chinese Word Segmentation) 指的是將一個漢字序列切分成一個一個單獨的詞。分詞就是將連續的字序列按照一定的規範重新組合成詞序列的過程。

  • 字符匹配法分詞 
    1)正向最大匹配法(由左到右的方向) 
    2)逆向最大匹配法(由右到左的方向) 
    3)最少切分(使每一句中切出的詞數最小) 
    4)雙向最大匹配法(進行由左到右、由右到左兩次掃描) 
    5)複雜最大匹配法
  • 理解分詞(HMM、MEMM、CRF)
  • 統計分詞方法

最常見的分詞方法是基於詞典匹配

  • 最大長度查找(前向查找,後向查找)

切分方案

• -方案一:切開的開始位置對應位是1,否則對應位是0,來表示“這/蘋果不大/好吃”的bit內 
容是:1100010 
• -方案二:還可以用一個分詞節點序列來表示切分方案,例如“這/蘋果不大/好吃”的分詞節點 
序列是{0,1,5,7}

 

數據結構

  • 爲了提高效率,不要逐個匹配詞典中的詞
  • 查找詞典所佔時間可能佔總的分詞時間的1/3左右,爲了保證切分速度,需要選擇一個好的查找詞典的方法
  • Trie樹常用於加速分詞查找詞典問題

樸素貝葉斯公式

• P(C)只是一個用來歸一化的固定值 
• 另外:從詞串恢復到漢字串的概率只有唯一的一種方式,所以P(C|S)=1。 
• 所以:比較P(S1|C)和P(S2|C)的大小變成比較P(S1)和P(S2) 的大小 

• 因爲P(S1)=P(南京市,長江,大橋)=P(南京市)*P(長江)*P(大橋)> P(S2)=P(南京,市 
長,江大橋),所以選擇切分方案S1。

• 爲了容易實現,假設每個詞之間的概率是上下文無關的,則: 

取log是爲了防止向下溢出,如果一個數太小,例如 
0.000000000000000000000000000001 可能會向下溢出。 
• 如果這些對數值事前已經算出來了,則結果直接用加法就可以得到,而加法比乘 
法速度更快。 

 

  • 一元模型:如果一個詞的出現不依賴於它前面出現的詞。
  • 二元模型:如果簡化成一個詞的出現僅依賴於它前面出現的一個詞。
  • 三元模型:如果簡化成一個詞的出現僅依賴於它前面出現的兩個詞。

例子:

工具爲結巴分詞,具體內容下篇講解

中文分詞常見方法:https://blog.csdn.net/m0_37710823/article/details/76064408

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