1. 程式人生 > >斯坦福大學自然語言處理第二課“文字處理基礎(Basic Text Processing)”

斯坦福大學自然語言處理第二課“文字處理基礎(Basic Text Processing)”

文字處理基礎

1.正則表示式(Regular Expressions)

正則表示式是重要的文字預處理工具。
以下截取了部分正則寫法:

這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述

2.分詞(Word tokenization)

我們在進行每一次文字處理時都要對文字進行統一標準化(text normalization)處理。

  • 文字規模 How many words?

    我們引入變數Type和Token
    分別代表詞典中的元素(an element of the vocabulary)和這個元素在文中的出現(an instance of that type in running text)。

    如果定義 N = number of tokens 和 V = vocabulary = set of types,|V| is the size of the vocabulary,那麼根據Church and Gale (1990)的研究工作可知: |V| > O(N½) ,我們可以從下圖中的shakespeare著作和google多元模型等等的統計中看到上面的結論:

    這裡寫圖片描述

  • 分詞演算法:

    有時我們將非字母字元作為token分隔符作為簡單的分詞器實現,但這樣存在許多弊問題像:

    • Finland’s capital –> Finland Finlands Finland’s ?
    • what’re, I’m, isn’t -> What are, I am, is not
    • Hewlett-Packard -> Hewlett Packard ?
    • Lowercase -> lower-case lowercase lower case ?
    • 。。。
      雖說上面的方法對英語這種包含固定分隔符的語言行之有效,但是對於漢語日語等詞語間沒有空格的就不適用了。

    中文分詞(Word Tokenization in Chinese)或者叫做(Word Segmentation),最簡單且普遍使用的方法叫做最大匹配法Maximum Matching (also called Greedy)

    其中正向最大匹配法FFM步驟如下(forward Maximum Matching):

    • 正向即從前往後取詞,對照字典中的詞語進行匹配
    • 如果沒有匹配成功,則刪除掉最後一個詞,繼續匹配。
    • 重複2步驟直到匹配成功,則將匹配到的詞取出作為成功的詞片段,繼續匹配剩下的詞語(前面刪除掉的收回)
  • 文字歸一化(normalization):

    主要包括大小寫轉換、詞幹提取、繁簡轉換等問題。

  • 斷句(Sentence Segmentation and Decision Trees):

    像 !, ? 等符號是有明確的分割意義的,但是在英文中“ . ”會在多種場景下被使用,如縮寫“Inc.”、“Dr.”、“.02%”、“4.3”等,無法通過簡單的正則表示式處理 ,我們引入了決策樹的分類方法進行判斷是否是句子中斷EndOfSentence/NotEndOfSentence:

    這裡寫圖片描述

    我們可以通過使用決策樹的方式來解決問題,我們也可以基於上述特徵使用其他分類方法如:邏輯迴歸,SVM,神經網路等等。