1. 程式人生 > >自然語言處理概述及應用和中文分詞簡述

自然語言處理概述及應用和中文分詞簡述

自然語言處理概述及應用和中文分詞簡述

自然語言處理概述

0.概念

自然語言處理(Natural Language Processing,簡稱NLP)是主要研究人與計算機交際中的語言問題的一門學科。“自然語言處理要研製表示語言能力(linguistic competence)和語言應用(linguistic performance)的模型,建立計算機框架來實現這樣的語言模型,提出相應的方法來不斷完善這樣的語言模型,根據這樣的語言模型設計各種實用系統,並探討這些實用系統的評測技術。”(Manaris,1999)更簡單直觀的說法,就是採用計算機技術來研究和處理自然語言。

1.自然語言處理分類

從方法論上可以分為兩種:
理性主義方法(根據一套規則或程式,將自然語言理解為符號結構–可以從結構中符號的意義上推出結構的意義。 由人事先設計好規則集。 強調基於規則的方法);
經驗主義方法(統計學的方法和神經網路學習方法。從大量的語言資料中獲取語言的結構知識(語料庫)。 強調基於學習的方法 )

2.語料庫

大量真實自然語言文字組成的集合,它集合了語言的集體應用例項,通過利用一定的自動學習演算法,主要是概率統計技術,從中獲取帶有相應概率的語言使用規則。從中獲取的知識有:
a,詞頻統計資料(單個詞的出現頻率及相鄰次的同現頻率);
b,經過詞性標註後某一標註串出現的頻率;
c,詞與詞之間的聯結關係、依存關係。

中文分詞簡述

1.漢語特點

大字符集的語言、形態上的區別少、沒有詞型變化、句型變化繁多、大量的同形歧義和同音歧義、一詞多義。

2.語言分析

詞法、句法、語義、語用、語境分析。

3.自動分詞

A, 自動分詞的方法:正向最大匹配法、逆向最大匹配法、逐次遍歷匹配法、設立切分標誌法、最佳匹配法、最小匹配法、最少詞數切分法等。

B, 自動分詞的指標:切分速度、切分精度、系統的可維護性。

C, 關鍵問題:分詞的歧義問題;所採用的詞典的構造、作用及完備性問題。

D, 歧義產生的原因及解決辦法

分類 原因 解決辦法
第一類歧義 自然語言中的二義性所產生的 分詞知識處理;人工分詞和計算機自動分詞結合
第二類歧義 自動分詞所產生的特有的 分詞知識處理;聯想-回溯法;基於詞頻統計的方法;鄰接約束 法;基於數學期望的方法
第三類歧義 分詞詞典的大小產生的 增加構詞知識;增加臨時詞典

4.自動標註

A, 意義:

  • 給後繼處理提供詞彙的語法層資訊。
  • 給語料庫的高層標註奠定基礎。
  • 為語言學的研究提供翔實的基礎。
  • 藉助計算機自動識別出輸入漢語詞語的詞性。

B, 實現方法:

採用規則方法:根據詞性上下文的關係,總結出一系列的規則,在標註時如遇到一詞多性,就呼叫系統所有的規則進行排歧。

缺點是覆蓋面有限;規則庫的龐大會使其維護起來困難重重。

採用統計方法:藉助一個已經標記的熟語料庫,標註時先根據語料庫計算詞性之間的同現概率,然後根據同現概率進行排歧處理。步驟如下:

  1. 首先制訂詞性標記集,人工標註預料中的正確詞性;
  2. 其次統計這些語料,對每個詞同現概率及詞性概率;
  3. 根據這些統計資料判定給定句子的每個詞的詞性。

C, 漢語詞的主要構成:

漢語詞的兼類現象錯綜複雜,其主要構成如下:

  • 形同音不同。
  • 同音同型但意義上毫無關係。
  • 兼類詞。
  • 上述情況的組合。

D, 劃分詞性的依據:

劃分詞性的三種依據:形態標準;意義標準;分佈標準。

E, 標記集的設定分化原則:

一般標記集的設定分化有以下原則:

  • 完備性準則。
  • 確定性準則。
  • 交叉性最小原則。
  • 分佈性準則。

F, 排歧方法:

利用詞典資源進行排歧;利用語料庫進行詞義排歧。

G, 排歧步驟:

特徵獲取—>特徵選擇—>特徵加權—>相似度計算。

5.句法分析

A, 主要功能:確定語句是否合乎語法;使句子結構規則化。

B, 句法分析的主要方法:短語結構語法、轉換語法、鏈語法、擴充轉移網路、基於合一的語法、廣義的LR(left to right)演算法等。

C, 漢語語法特性:

  • 字與字之間沒有空格。
  • 一個詞在不同的上下文中具有不同的語法功能。
  • 沒有形態變化。
  • 構詞規則可由很多不同的句法型別來實現。
  • 線性詞序相對自由任意。
  • 多義詞廣泛存在。
  • 基本沒有詞性標註。

自然語言處理應用

1.機器翻譯

這個是自然語言處理最為人知的場景,也是現在沒有什麼明確商業化的場景。一般都是拿這種機器翻譯來作為某個應用的組成部分,比入跨語言的搜尋引流等等。國內外對於機器翻譯都有比較成熟的產品,比如百度翻譯、有道翻譯、Google 翻譯等等。機器翻譯由於涉及到語義分析、上下文環境等面臨很多挑戰。

Google線上翻譯: https://translate.google.cn/

Google翻譯使用演算法:

Sequence-to-Sequence模型(也稱為seq2seq)。基本的seq2seq模型由兩個RNN(迴圈神經網路:利用它內部的記憶來處理任意時序的輸入序列)組成:一個是處理輸入的編碼器網路,一個是生成輸出的解碼器網路。

2.情感分析

情感分析在一些評論機制的app中比較有用,比如某酒店網站,下面會有居住過的客人的評價,如果評論有幾千條,滿滿的都是髒亂差,那誰還想住呢!所以可以通過情感分析,分析使用者評論是積極的還是消極的,根據一定的排序規則和顯示比例,在評論區顯示。同樣這個場景也適用於電商網站的商品評價。

TTM(Time-Type-Mood message)演算法:基於訪問時間、資源種類和心情留言的推薦演算法。(《學習系統中基於使用者行為分析的推薦演算法研究》)

3.智慧問答

問答系統在一些電商網站也很有實際價值,比如充當客服角色。有很多基本的問題,其實並不需要真的聯絡人工客服來解決。通過這種智慧的問答系統,就可以排除掉大量的使用者問題,比如商品的質量投訴、商品的基本資訊查詢之類的。這樣可以省去大量的人工成本。

圖靈機器人:http://www.tuling123.com/experience/exp_virtual_robot.jhtml?nav=exp

使用演算法:

遞迴神經網路(Recursive Neural Network)、迴圈神經網路(Recurrent Neural Network,RNN)、卷積神經網路(Convolutional Neural Network, CNN)

4.資訊提取

在很多搜尋引擎的公司,都會採集各種資料,然後進行資訊的提取分析。比如新聞的自動分類,就需要針對文字提取關鍵資訊,然後應用一些tf-idf的演算法,進行主要的主題分析,從而進行自動的分類。

使用演算法:

LBP演算法(Local Binary Pattern區域性二值模式):《基於視覺資訊的影象特徵提取演算法研究》
行塊分佈函式:《基於行塊分佈函式的通用網頁正文抽取演算法》

5.語音輸入

根據的中文同聲傳譯翻譯成英文。翻譯器視訊:

參考:http://www.shidi.org/sf_DEB72250E26D4F96A9CB2857439BE6ED_277_xhat.html

6.輿論分析

說到這個輿論分析,最著名的就是奧巴馬的總統競選了。比如通過資料分析籌集資金,改變廣告的投放策略,製作有效的拉票推薦等等。

參考:http://tech.qq.com/a/20121108/000182.htm

7.語言生成

自然語言處理在語言生成方面目前也有很多的應用場景(新聞、籃球解說、文字摘要),比如體育類節目的ai解說:

參考:http://www.techweb.com.cn/it/2016-08-17/2376291_4.shtml

8.知識圖譜

它能夠描述複雜的關聯關係。知識圖譜是面向業務領域的,比如百度描述明星關係的案例。

參考:http://tupu.baidu.com/xiaoyuan/

'''筆者的話:小白一個,最近一直在學習自然語言處理。以後準備在這方面發展。也就計劃開始寫部落格,希望自己有所提升。文中主要是筆者看過的文章和書籍中整理出來的,第一次發部落格。當中肯定有許多瑕疵,內容肯定也不是那麼完善。請大家多多包含,以後會更加努力,爭取寫出質量高的文章。FIGHTING...(熱烈歡迎大家批評指正,互相討論)
(第一步總是很難的,堅持下去更難。希望自己迎難而上。)'''