自然語言處理要解決的問題


自然語言處理要解決的問題:

其實,自然語言處理的應用非常廣泛,如:

  • 垃圾郵件識別

    通過自動分析郵件中的文本內容,判斷該郵件是否垃圾郵件。

  • 中文輸入法

    通過識別輸入的拼音字符串,識別用戶希望輸入的漢字。

  • 機器翻譯

    將文本從一種語言轉成另一種語言,如中英文機器翻譯。

  • 自動問答、客服機器人

    用文本輸入一個問題,再返回一段文本作為問題的答案。

    ……

這里簡單羅列了一些NLP的常見領域:分詞,詞性標注,命名實體識別,句法分析,語義識別,垃圾郵件識別,拼寫糾錯,詞義消歧,語音識別,音字轉換,機器翻譯,自動問答……

如果對自然語言處理的應用場景不太了解,可以去騰訊的中文語義平台簡單玩幾個例子就熟悉了。

3. 自然語言處理的發展現狀

根據stafford教授Dan Jurafsky的介紹:

  • 有些問題得到了基本解決,如:詞性標注、命名實體識別、垃圾郵件識別。

  • 有些問題取得長足進展,如:情感分析、共指消解、詞義消歧、句法分析、機器翻譯、信息抽取。

  • 有些問題依然充滿挑戰,如:自動問答、復述、文摘提取、會話機器人等。

4. 用算法統攝問題

大家可能感受到了,自然語言處理的問題非常龐雜,一時還真不太好系統地梳理。

然而,從我們的學習自然語言處理的經驗來看,通過機器學習的基本思路,可以將很多問題都抽象成同樣的算法和模型來處理,這樣會清晰很多。

比如,詞性標注,垃圾郵件識別,褒貶分析,拼寫糾錯等問題都可以歸結成簡單的分類問題。這就好用我們之前掌握的機器學習分類方法去很好地處理。

又比如,對於機器翻譯,語音識別,音字轉換等等領域,都可以抽象成運用隱馬爾科夫模型去處理,而這本身是一個更加復雜的分類問題。

因此本系列文章盡量從算法原理的角度去梳理自然語言處理的問題,把這些原理在具體場景的不同變換方式給展示出來

5. 文本處理基礎

5.1 正則表達式

對於英文等字符串類型的自然語言,正則表達式能夠很好地做一些簡單的處理工作。如詞干提取,大小寫轉換等。

現在主流的編程語言對正則表達式都有較好的支持,如Grep、Awk、Sed、Python、Perl、Java、C/C++。可以通過簡單的編程完成一些基本任務。

5.2 分詞

對於英文,分詞比較直觀。一般被空格區分開來的就是不同的詞。但是有些不同的詞匯表達需要我們細心判斷: 


分詞復雜性

 

這需要我們根據不同的條件做一些簡單的判斷規則

這樣的方法對英語這種包含固定分隔符的語言行之有效。但對於漢語、日語、德語以及我們上面的“三體文”等文本則不再適用,需要有專門的分詞技術。我們將在之后的文章中進行探討。

  • 莎拉波娃現在居住在美國東南部的佛羅里達。
  • 莎拉波娃 現在 居住 在 美國 東南部 的 佛羅里達

5.3 編輯距離

編輯距離(Minimum Edit Distance,MED),又稱Levenshtein距離,是指兩個字符串之間,由一個轉成另一個所需要的最少編輯操作次數。 
允許的編輯操作包括:

  • 將一個字符替換成另一個字符(substitution,s)
  • 插入一個字符(insert,i)
  • 刪除一個字符(delete,d)

一個簡單的示意圖如下:

 


編輯距離

 

我們可以使用動態規划算法解最小編輯距離,其形式化定義如下:

 


動態規划

 

通過這種方法,給字符串之間定義了一個量化的“距離”的概念,而且很有解釋力。

在機器學習中,有了“距離”就可以做很多事情。比如判斷兩個字符串的相似性,做一些分類、聚類的工作。

在工程上,編輯距離可以用來提供用於拼寫糾錯的侯選單詞。比如我用英文輸入法輸入一個“girlfriand”的單詞。但是詞庫中沒有“girlfriand”這個詞。則可以尋找與“girlfriand”編輯距離為1或2的其他字符串,如“girlfriend”、“girlfriends”,作為糾正拼寫錯誤的候選詞。剩下的問題就是判斷哪個侯選詞的作為糾正詞的概率更高而已。

6. 分類問題基礎

由於自然語言處理中相當一部分都可以抽象成分類問題去處理。我們在這里補充一些分類問題的基本知識,方便以后探討。

6.1 分類問題的多種類型

  1. 二分類:判斷題

    1.1 褒貶分析:判斷一段文本是“褒”還是“貶”。

    1.2 垃圾郵件識別:判斷一封郵件是“正常郵件”還是“垃圾郵件”。

  2. 多分類:單選題

    2.1 詞性標注:判斷一個詞語是名詞、動詞、形容詞、副詞等等。

    2.2 拼寫糾錯:判斷多個侯選詞中的哪個詞可以作為最終的糾正詞。

    2.3 中文分詞:從多種分詞序列中挑選最優序列。

    2.4 機器翻譯:從多個備選翻譯句子中,判斷出最優翻譯語句。

  3. 類重疊分類:多選題

    3.1 主題分析:判斷一個新聞同時包含哪幾類主題(美食、食品安全、健康等)

 


主題分析

 

有時候管多選題叫做軟分類,單選題叫硬分類。

6.2 多分類的評估指標

對於一般二分類,我們評估的指標有召回率、精確度和F值。對於多分類我們也有類似的評價標准。如果cij為有多少篇ci的文檔被自動分類到cj類別下,則有:

 


召回率、精確率

 

7. 小結

本文主要是講了一些自然語言處理的淺層內容。我們從從破譯外星人文字導出自然語言處理過程中的經驗主義視角。因為業務場景十分繁雜,我們打算從機器學習算法的角度去觀察這些業務場景,以便有個清晰的認識。文本處理的一些基礎內容,如正則表達式、分詞斷句等是自然語言預處理過程中的常用手段。編輯距離是衡量兩個字符串相似性的尺度。了解這些基礎之后,就可以進行一些典型的自然語言處理問題了,比如文本分類。我們將在接下來的文章中一一介紹。

zhuan:hanxiaoyang

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM