1. 程式人生 > >文本處理知識點總結

文本處理知識點總結

簡單 sin 分詞 mar game 實際應用 alt doc ont

  1. 將word映射到一個新的空間中,並以多維的連續實數空間向量進行表示,叫做word representation,或者word embeding.

  2. n-gram: n-gram是一種統計語言模型。根據前n-1個item預測第n個item,這些item可以是音素(語言識別應用),字符(輸入法應用),詞(分詞應用)或堿基對。一般可以從大規模文本或者語料庫中生成n-gram模型。

    • 給定一串字母,如for ex_,希望預測下一個可能的字母是什麽?
    • 假設T是由詞序列A1,A2,....An組成,則p(T)=p(A1,A2,...,An)=p(A1)p(A2|A1)p(A3|A1,A2)...p(An|A1,A2,...,A(n-1))
    • 其實就是馬爾科夫假設:一個item出現的概率只與前m個item有關
  3. 詞袋:Bag of Words,假設對於一個文本,將其僅僅看作是一個詞集合,而忽略其詞序和語法。

    • 在實際應用中,將這組詞變成一串數字(索引的集合)

    • John likes to watch movies. Mary like too. --->[1,2,1,1,1,0,0,0,1,1]

      John also like to watch football games. --->[1,1,1,1,0,1,1,1,0,0]

      其中,第i個元素表示字典中第i個單詞在句子中出現的次數。

      上述構成了字典:{‘John‘:1,‘like‘:2,‘to‘:3,...,‘too‘:10}

  4. Word2Vec

    • 分為兩種語言模型:CBOW和Skip-gram

      技術分享圖片

    • CBOW根據上下文的詞語預測當前詞語出現概率的模型。

      • 最大化對數似然函數\(L=\sum _{w\in c}logP(w|context(w))\)

      • 輸入層是上下文的詞向量(詞向量是CBOW的參數,其實際上是CBOW的副產物)

      • 投影層是簡單的向量加法

      • 輸出層是輸出最可能的w。由於詞料庫中詞匯量是固定的|c|個,可以將其看作是多分類問題。最後一層是Hierarchical softmax:
        \[ p(w|context(w))=\prod_{j=2}^{l^w}p(d_j^w|x_w,\theta_{j-1}^w) \]

        從根節點到葉節點經過了\(l^{w}-1\)個節點,編碼從下標2開始(根節點無編碼),對應的參數向量下標從1開始。

    • skip-gram 已知當前詞語,預測上下文

      • 與CBOW不同之處在於:

        1. 輸入層不再是多個詞向量,而是一個詞向量
        2. 投影層實際什麽都沒幹,直接將輸入層的詞向量傳遞給輸出層
      • 模型:
        \[ p(context(w)|w)= \prod_{w \in context(w)}p(u|w) \]

      • 這是一個詞袋模型,所以每個u都是無序,相互獨立的

  5. doc2vec:

    技術分享圖片

    與word2vec唯一不同之處在於,串聯起word vector在上下文中預測下一個單詞。

    上下文是固定長度且在段落中sliding window中采樣,段落向量在一段中共享在同一段中產生的所有窗口,但是不同段間不共享。

文本處理知識點總結