《自然语言处理(哈工大 关毅 64集视频)》学习笔记:第二章 数学基础与语言学基础
前言
關毅老師,現為哈工大計算機學院語言技術中心教授,博士生導師。通過認真學習了《自然語言處理(哈工大 關毅 64集視頻)》1(來自互聯網)的課程,受益良多,在此感謝關毅老師的辛勤工作!為進一步深入理解課程內容,對部分內容進行了延伸學習2 3 4,在此分享,期待對大家有所幫助,歡迎加我微信(驗證:NLP),一起學習討論,不足之處,歡迎指正。
視頻列表:
10數學基礎與語言學基礎 一
11數學基礎與語言學基礎 二
12數學基礎與語言學基礎 三
13數學基礎與語言學基礎 四
14數學基礎與語言學基礎 五
15數學基礎與語言學基礎 六
16數學基礎與語言學基礎 七
10數學基礎與語言學基礎 一
第二章 數學基礎與語言學基礎
本章內容
1、數學基礎
2、語言學基礎
3、實用知識
數學基礎介紹
數學與語言學
- 數學
大自然的語言
科學的語言 - 語言學
語言是大自然的產物
語言學是科學的一個分支 - 采用數學的方法描述語言
計算語言學
建立語言的數學模型
有數學基礎的方法 vs 沒有數學基礎的方法
- 有數學基礎的方法
美麗的方法
經得起時間考驗的方法 - 沒有數學基礎的方法
打補丁的方法
adhoc(ad hoc)
概率論在語言技術中的應用
- 統計語言處理技術已經成為主流
- 統計語言處理的步驟
- 概率論是統計語言模型的數學基礎
概率論回顧
- 概率論是研究隨機現象的數學分支
- 所謂隨機現象是指這樣的一類現象,當人們觀察它時, 所得到的觀察結果不是確定的,而是許許多多可能結果中的一種
- 概率(Probability)則是衡量該事件發生的可能性的量度
概率
-
樣本空間 Ω 是一個隨機試驗所有可能的結果的集合
-
事件 A 是Ω的子集
-
概率函數 (或者概率分布)
P:Ω→[0,1]P:\Omega \rightarrow [0,1]P:Ω→[0,1] -
某字或者某詞出現的概率是多少?
示例1:
現代漢語字頻統計–由北京航空學院和國家語言文字工作委員會于1985年完成。從1977年至1982年間社會科學和自然科學的規模為一千一百零八萬余字的語料中利用計算機進行統計得到漢字的字頻,前20個最高頻漢字列出如表所示:
示例24:
在語言處理中使用頻率分布,NLTK 中內置FreqDist,讓我們使用FreqDist 尋找《白鯨記》中最常見的50 個詞。
*** Introductory Examples for the NLTK Book ***
Loading text1, …, text9 and sent1, …, sent9
Type the name of the text or sentence to view it.
Type: ‘texts()’ or ‘sents()’ to list the materials.
text1: Moby Dick by Herman Melville 1851
text2: Sense and Sensibility by Jane Austen 1811
text3: The Book of Genesis
text4: Inaugural Address Corpus
text5: Chat Corpus
text6: Monty Python and the Holy Grail
text7: Wall Street Journal
text8: Personals Corpus
text9: The Man Who Was Thursday by G . K . Chesterton 1908
《白鯨記》(Moby Dick by Herman Melville 1851)
fdist1 = FreqDist(text1) print(fdist1)<FreqDist with 19317 samples and 260819 outcomes>
第一次調用FreqDist 時,傳遞文本的名稱作為參數。我們可以看到已經被計算出來的《白鯨記》中的總的詞數(“結果”)——高達260,819。
[(’,’, 18713), (‘the’, 13721), (’.’, 6862), (‘of’, 6536), (‘and’, 6024), (‘a’, 4569), (‘to’, 4542), (’;’, 4072), (‘in’, 3916), (‘that’, 2982), ("’", 2684), (’-’, 2552), (‘his’, 2459), (‘it’, 2209), (‘I’, 2124), (‘s’, 1739), (‘is’, 1695), (‘he’, 1661), (‘with’, 1659), (‘was’, 1632), (‘as’, 1620), (’"’, 1478), (‘all’, 1462), (‘for’, 1414), (‘this’, 1280), (’!’, 1269), (‘at’, 1231), (‘by’, 1137), (‘but’, 1113), (‘not’, 1103), (’–’, 1070), (‘him’, 1058), (‘from’, 1052), (‘be’, 1030), (‘on’, 1005), (‘so’, 918), (‘whale’, 906), (‘one’, 889), (‘you’, 841), (‘had’, 767), (‘have’, 760), (‘there’, 715), (‘But’, 705), (‘or’, 697), (‘were’, 680), (‘now’, 646), (‘which’, 640), (’?’, 637), (‘me’, 627), (‘like’, 624)]
這50 個詞在書中的分布情況,如下:
10數學基礎與語言學基礎 二
漢字的信息熵
信息熵
香農1948年發表了著名的論文《通訊的數學理論》,宣告了信息論的誕生。在這篇論文中,他選擇概率論作為數學工具,提出了用“不確定性的量度”來計算信息量的數學公式,為信息論奠定了理論基礎。
H(p)=∑x∈Ω?p(x)log?p(x)H(p) ={\sum_{}^{x\in \Omega }} - p(x) \log p(x)H(p)=∑x∈Ω??p(x)logp(x)
示例4:
上圖顯示了在名字性別預測任務中標簽的熵如何取決于男性名字對女性名字的比例。請注意,如果大多數輸入值具有相同的標簽(例如,如果P(male)接近0 或接近1),那么熵很低。特別的,低頻率的標簽不會貢獻多少給熵(因為P(l)很小),高頻率的標簽對熵也沒有多大幫助(因為log?eP(I)\log_{e}P(I)loge?P(I)很小)。另一方面,如果輸入值的標簽變化很多,那么有很多“中等”頻率的標簽,它們的P(l)P(l)P(l)和log?eP(I)\log_{e}P(I)loge?P(I)都不小,所以熵很高。下面 演示如何計算標簽鏈表的熵。
-0.0
print(entropy(['male', 'female', 'male', 'male']))0.8112781244591328
print(entropy(['female', 'male', 'female', 'male']))1.0
print(entropy(['female', 'female', 'male', 'female']))0.8112781244591328
print(entropy(['female', 'female', 'female', 'female']))-0.0
漢字是世界上信息量最大的文字符號系統
- 每收到一個英文訊號消除的不確定程度H 是4.1606比特。
- 漢字的信息熵隨著漢字個數的增加而增加,當漢字的個數達到12366個漢字時,漢字的信息熵值為9.65(馮志偉)
- 漢字是當今世界上信息量最大的文字符號系統
幾點認識
- 漢字的信息量最大,世界冠軍
- 漢字低劣論與漢字優越論
- 在信息編碼、存儲和傳輸等方面漢字處于相對不利的地位
- 隨著網絡時代的發展,網絡上的中文信息量已經居于第二的位置
條件概率
- 對于隨機試驗的結果有部分知識(或者約束條件)
- 條件概率(Conditional probability)
示例1:
P(大學)=0.0003P(大學)=0.0003P(大學)=0.0003
P(大學∣工業)=P(工業大學)/P(工業)>P(大學)P(大學|工業)=P(工業大學)/P(工業) > P(大學)P(大學∣工業)=P(工業大學)/P(工業)>P(大學)
示例24:
概率分布計算觀察到的事件,如文本中出現的詞匯。條件概率分布需要給每個時間關聯一個條件,所以不是處理一個詞序列,我們必須處理的是一個配對序列。
text = [‘The’, ‘Fulton’, ‘County’, ‘Grand’, ‘Jury’, ‘said’, …]
pairs = [(‘news’, ‘The’), (‘news’, ‘Fulton’), (‘news’, ‘County’), …]
每對的形式是:(條件,事件)。如果我們按文體處理整個布朗語料庫,將有15 個條件(每個文體一個條件)和1,161,192 個事件(每一個詞一個事件)。
按文體計數詞匯,FreqDist()以一個簡單的鏈表作為輸入,ConditionalFreqDist()以一個配對鏈表作為輸入。
170576
genre_word[:4][(‘news’, ‘The’), (‘news’, ‘Fulton’), (‘news’, ‘County’), (‘news’, ‘Grand’)]
genre_word[-4:][(‘romance’, ‘afraid’), (‘romance’, ‘not’), (‘romance’, “’’”),(‘romance’, ‘.’)]
現在,我們可以使用此配對鏈表創建一個ConditionalFreqDist,并將它保存在一個變量cfd 中。
<ConditionalFreqDist with 2 conditions>
cfd.conditions()[‘romance’, ‘news’]
print(cfd['news'])<FreqDist with 14394 samples and 100554 outcomes>
print(cfd['romance'])<FreqDist with 8452 samples and 70022 outcomes>
print(list(cfd['romance']))[‘conclusion’, ‘lucky’, ‘treat’, ‘Eph’, ‘darned’, ‘Got’, ‘sloppy’,…]
cfd['romance']['could']193
圖2.1條件頻率分布圖:計數就職演說語料庫中所有以america 或citizen 開始的詞。每個演講單獨計數。這樣就能觀察出隨時間變化用法上的演變趨勢。
from pylab import * %matplotlib inlinefrom nltk.book import * import nltk from nltk.corpus import inauguralcfd = nltk.ConditionalFreqDist((target, fileid[:4])for fileid in inaugural.fileids()for w in inaugural.words(fileid)for target in ['america', 'citizen']if w.lower().startswith(target)) cfd.plot()聯合概率
- P(A,B)=P(A)P(B∣A)=P(B)P(A∣B)P(A,B)=P(A)P(B|A)=P(B)P(A|B)P(A,B)=P(A)P(B∣A)=P(B)P(A∣B)
- argmaxf(x)x\underset{x}{argmaxf(x)}xargmaxf(x)?使 f(x)f(x)f(x) 值為最大的那個
argmaxAP(B∣A)P(A)P(B))=argmaxAP(B∣A)P(A)\underset{A}{argmax}\frac{P(B|A)P(A)}{P(B)})=\underset{A}{argmax}P(B|A)P(A)Aargmax?P(B)P(B∣A)P(A)?)=Aargmax?P(B∣A)P(A) - 聯合概率的鏈規則:
P(A,B,C,D…)=P(A)P(B∣A)P(C∣A,B)P(D∣A,B,C..)P(A,B,C,D…) = P(A)P(B|A)P(C|A,B)P(D|A,B,C..)P(A,B,C,D…)=P(A)P(B∣A)P(C∣A,B)P(D∣A,B,C..)
示例:
P(哈爾濱/工業/大學)=P(哈爾濱)P(工業∣哈爾濱)P(大學∣哈爾濱,工業)P(哈爾濱/工業/大學)=P(哈爾濱)P(工業|哈爾濱)P(大學|哈爾濱,工業)P(哈爾濱/工業/大學)=P(哈爾濱)P(工業∣哈爾濱)P(大學∣哈爾濱,工業)
獨立
- 兩個事件 A 與 B 相互獨立,如果 P(A)=P(A∣B)?P(A,B)=P(A)?P(B)P(A) =P(A|B)?P(A,B)=P(A)*P(B)P(A)=P(A∣B)?P(A,B)=P(A)?P(B)
條件獨立
兩個事件 A 與 B 是在條件C下相互條件獨立如果:P(A∣C)=P(A∣B,C)P(A|C) = P(A|B,C)P(A∣C)=P(A∣B,C)
10數學基礎與語言學基礎 三
貝葉斯定理(Bayes’ Theorem)
- 貝葉斯定理的最簡形式
P(A∣B)=P(A,B)P(B)=P(B∣A)P(A)P(B)P(A|B)=\frac{P(A,B)}{P(B)}=\frac{P(B|A)P(A)}{P(B)}P(A∣B)=P(B)P(A,B)?=P(B)P(B∣A)P(A)?
- Bayes’Theorem使我們能夠交換事件之間的條件依賴順序
argmaxAP(A∣B)=argmaxAP(B∣A)P(A)P(B))=argmaxAP(B∣A)P(A)\underset{A}{argmax}P(A|B)=\underset{A}{argmax}\frac{P(B|A)P(A)}{P(B)})=\underset{A}{argmax}P(B|A)P(A)Aargmax?P(A∣B)=Aargmax?P(B)P(B∣A)P(A)?)=Aargmax?P(B∣A)P(A)
貝葉斯定理的應用實例
- 音字轉換
argmaxTP(T∣S)=argmaxTP(S∣T)P(T)P(S))=argmaxTP(S∣T)P(T)\underset{T}{argmax}P(T|S)=\underset{T}{argmax}\frac{P(S|T)P(T)}{P(S)})=\underset{T}{argmax}P(S|T)P(T)Targmax?P(T∣S)=Targmax?P(S)P(S∣T)P(T)?)=Targmax?P(S∣T)P(T)
這里,P(S∣T)P(S|T)P(S∣T)字音轉換模型,P(T)P(T)P(T)語言模型,顯然構造 P(S∣T)P(S|T)P(S∣T) 與P(T)P(T)P(T)的難度較直接構造P(T∣S)P(T|S)P(T∣S)大大地降低了
隨機變量
隨機變量(Random variables)(RV)使我們能夠討論與樣本空間相關的數值的概率值
- 離散型隨機變量
在某一時間點出現的單詞可以視為(離散型)隨機變量,語言可視為以時間為序的一組隨機變量的序列
T=w1w2w3...wt...wnT=w_{1}w_{2}w_{3}...w_{t}...w_{n}T=w1?w2?w3?...wt?...wn? - 連續型隨機變量
數學期望與方差
- 數學期望:隨機變量的均值
E(x)=μ=∑xxp(x)E(x)=\mu ={\sum_{}^{x}}{xp(x)}E(x)=μ=∑x?xp(x) - 方差:隨機變量取值是否比較一致或者有很大差異的一個量度
Var(x)=E((X?E(X))2)=E(X2)?E(X)2=σ2Var(x)=E((X-E(X))^{2})=E(X^{2})-E(X)^{2}=\sigma ^{2}Var(x)=E((X?E(X))2)=E(X2)?E(X)2=σ2
σ\sigmaσ稱為標準差 - 應用示例-新詞發現
統計大規模語料中字A與字B的間隔字數的數學期望與方差,假設方差很小,比如小于某個閾值,那么A…B很可能成詞
構造語言模型P(T)的兩類方法
- 基于頻度的統計
- 貝葉斯統計
基于頻度的統計
相關頻度(頻率):事件μ\muμ發生的次數與所有事件總次數的比率
f(μ)=C(μ)Nf(\mu) = \frac{C(\mu)}{N}f(μ)=NC(μ)?
在NNN次實驗中μ\muμ發生的次數,當N→∞,f(μ)N\rightarrow \infty ,f(\mu)N→∞,f(μ)逐漸穩定在某個數值上,作為該事件的概率估計
- 有參數的方法(Parametric)(與分布有關)
假設某種語言現象服從我們業已熟知的某種分布, 如二元分布,正態分布,泊松分布等等,我們已有明確的概率模型,現在需要確定該概率分布的一些參數。
常用分布
在英語語料庫中,包含單詞“the”的語句占語料庫中語句總數的比例近似地服從二項分布
在某一固定大小的范圍(或者時間段)內,某種特定類型事件的分布
漢字的筆畫數與該筆畫對應的漢字的個數符合正態分布
- 無參數的方法(Non-parametric)(與分布無關)
對數據的分布沒有預先的分布假設
僅僅通過最大相似度估計來估算P
先驗知識比較少,但需要大規模的訓練數據
本課主要探討無參數的方法
貝葉斯統計
- 貝葉斯統計的實質是可信度數量化
- 可信度是這樣計算出來的
M?=argmaxMP(M∣D)=argmaxMP(D∣M)P(M)P(D))=argmaxMP(D∣M)P(M)M^{*} = \underset{M}{argmax}P(M|D) = \underset{M}{argmax}\frac{P(D|M)P(M)}{P(D)})= \underset{M}{argmax}P(D|M)P(M)M?=Margmax?P(M∣D)=Margmax?P(D)P(D∣M)P(M)?)=Margmax?P(D∣M)P(M)
其他數學基礎
- 信息論
- 集合論
- 函數與關系
- 微積分
- 粗糙集
……
10數學基礎與語言學基礎 四
語言學基礎
漢語語言學基礎
自然語言處理系統中的語言知識庫
- 自然語言處理系統可以直接利用的機器詞典中的語言知識包含了詞法、句法、語義和語用等各個層面的信息。
- 詞法和句法信息總是最基本的,也是研究得比較成熟的
- 現代漢語語義資源已經出現(hownet, 中文wordnet)
現代漢語詞語的語法功能分類
- 朱德熙的語法理論《語法講義》1984年
- 90年代初北京大學計算語言所與中文系合作,提出了一個面向語言信息處理的現代漢語詞語分類體系
- 《語法答問》通俗易懂的漢語語法入門讀物
基本詞類
實詞
體詞
- 名詞(n):例如,牛、書、水、教授、國家、心胸、北京
- 時間詞(t):例如,明天、元旦、唐朝、現在、春天
- 處所詞(s):例如,空中、低處、郊外
- 方位詞(f):例如,上、下、前、后、東、西、南、北
- 數詞(m):例如,一、第一、千、零、許多、百萬
- 量詞(q):例如,個、群、克、杯、片、種、些
- 代詞? (體詞性):例如,你、我們、這、哪兒、誰
謂詞
- 代詞? (謂詞性):例如,這樣
- 動詞(v):例如,走、休息、同意、能夠、出去、是、調查
- 形容詞(a):例如,好、紅、大、溫柔、美麗、突然
- 狀態詞(z):例如,雪白、金黃、淚汪汪、滿滿當當、灰不溜秋
其他實詞
- 區別詞(b):例如,男、女、公共、微型、初級
- 副詞(d):例如,不、很、都、剛剛、難道、忽然
虛詞
- 介詞§:例如,把、被、對于、關于、以、按照
- 連詞?:例如,和、與、或、雖然、但是、不但、而且
- 助詞(u):例如,了、著、過、的、得、所、似的
- 語氣詞(y):例如,嗎、呢、吧、嘛、啦
- 擬聲詞(o):例如,嗚、啪、丁零當啷、嘩啦
- 嘆詞(e):例如,哎、喔、哦、啊
附加類別與標點符號
小于詞的單位
- 前接成分(h): 阿,老,超
- 后接成分(k): 兒, 子, 性, 員, 器
- 語素字 (g): 柿, 衣, 失, 遙, 郝
- 非語素字(x): 鵪, 枇, 蚣
大于詞的單位
- 成語 (i) : 胸有成竹, 八拜之交
- 習用語 (l) : 總而言之, 由此可見
- 簡稱略語(j) : 三好, 全總
標點符號
各類詞語的主要特點
實詞的主要特點
- 開放類
- 能單獨充當某種句法成分
- 位置不固定
- 具有較強的構詞力
- 有比較具體的詞義
虛詞的主要特點
- 封閉類
- 不能充當句法成分
- 粘著性
- 位置比較固定
- 沒有具體的詞義
體詞和謂詞
- 體詞和謂詞都屬于實詞
- 體詞主要語法功能是作主語、賓語,一般不作謂語。
- 謂詞的主要功能是作謂語,也能作主語和賓語
名詞
- 名詞是典型的體詞
- 一般不受副詞修飾
- 可以受數量詞修飾
- 名詞可以修飾名詞
- 名詞不能帶表示時態的助詞
- 名詞不能做狀語
動詞
- 是最典型最重要的謂詞
- 能帶真賓語的謂詞都是動詞(及物動詞)
- 不能帶真賓語的謂詞包括不及物動詞、形容詞和狀態詞
- 動名兼類
- 能愿動詞(助動詞)
- 動詞的形態變化比較豐富(VV,V一V,ABAB等等)
形容詞
- 是一類重要的謂詞
- 能直接受“很”一類程度副詞修飾且不能帶真賓語的謂詞是形容詞。形容詞可以帶準賓語。
- 絕大多數形容詞可以受否定副詞“不”修飾
- 可以帶補語
- 名形兼類
- 形動兼類
- 形容詞的形態變化(AA,ABAB)
10數學基礎與語言學基礎 五
漢語的句法分析的特點
漢語句法分析的特殊性
- 漢語是一種“孤立語”
“孤立語”、“屈折語”、“粘著語” - 同一詞類可擔任多種句法成分且無形態變化
- 漢語句子的構造規則與短語的構造規則基本一致
- 漢語的語序
在短語內部語序嚴格固定
短語間語序比較靈活 - 虛詞經??梢允÷?#xff0c;增加了語法分析的困難
- 漢語詞切分有歧義
語言知識庫
- 語言知識庫是自然語言處理系統不可或缺的組成部分
- 語言知識庫的規模和質量在很大程度上決定了自然語言處理系統的成敗
北大計算語言研究所的相關工作
- 現代漢語語法信息詞典
- 大規?,F代漢語基本標注語料庫
- 面向漢英機器翻譯的現代漢語語義詞典
- 英漢、日漢對照雙語語料庫
- 多個專業領域的術語庫
- 現代漢語短語結構規則庫
- 中國古代詩詞語料庫
- …
示例
- 音字轉換系統語言知識庫
…
機器 ji1qi4
激起 ji1qi3
吉期 ji2qi3
極其 ji2qi2
及其 ji2qi2
… - 現代漢語語義詞典
…
安樂/形 D378
安理會/名 L16
安謐/形 D405
安眠/動 C133
安眠藥/名 C235
…
什么是 Ontology
- 定義
An ontology consists of a set of concepts, axioms, and relationships that describe a domain of interest
Standard Upper Ontology (SUO) Working Group - 中文譯為“本體”
- 可以理解為知識庫
- 不同領域有不同的ontology
- 我們關心的是語言ontology,又稱語言本體
- 語言本體通常特指語義知識庫,而語言知識庫則泛指詞匯、語法、語義知識庫
面向計算機的詞匯語義資源必須具備如下特點
- 高度形式化、可計算
- 揭示多重語義關系網絡
- 接受信息處理系統檢驗和評測
Hownet
董振東,董強 www.keenage.com
是一個以漢語和英語的詞語所代表的概念為描述對象,以揭示概念與概念之間以及概念所具有的屬性之間的關系為基本內容的常識知識庫 -董振東
- 知網概況
漢字 7108
詞匯 83397
英語單詞和短語 79246
中文語義定義 97764
英文語義定義 98963
10數學基礎與語言學基礎 六
詞類統計:
ADJ: 11648
ADV: 1513
NOUN: 46412
VERB: 25742
…
詞長度統計
詞長=1: 6905
詞長=2: 45724
詞長=3: 13681
詞長=4: 13822
詞長=5: 1649
…
詞匯的同義、反義、對義集合
上下位概念
“火車”
上位概念:entity|實體
==> thing|萬物
==> physical|物質
==> inanimate|無生物
==> artifact|人工物
==> implement|器具
==> vehicle|交通工具
==> LandVehicle|車
10數學基礎與語言學基礎 七
基于知網的詞匯語義相似度計算
- 語義相似度
- 基于語言知識庫的語義相似度計算
- 基于統計的語義相似度計算
如何構造比較專業的語言知識庫
機器可讀詞典
- Machine readable dictionary
- lexicon
構造 lexicon的方法
- 文本文件方式
- 數據庫
- 二進制文件方式
二進制文件方式
typedef struct HeadWordItem {int Wordid;unsigned char ChineseString[MAXWORDLEN];int freq; } HeadWordItem;typedef struct Lexicon {char LicenseInfo[256];int Item_Number_of_Lexicon_Head;int Item_Number_of_Lexicon_Body;HeadWordItem LexiconHead[HEAD_LEN]; } Lexicon;- 構建
Lexicon * lexicon=new Lexicon;
…
fopen(…“w+b”)
fwrite(lexicon,sizeof(Lexicon),1,lexiconfile)
fclose(…) - 讀取
fread - 更新
- 內存指針操作
lexicon->LexiconHead[i].freq++; - 訪問
Binary search
Hash - 寫入
fwrite(…)
fclose(…)
參考文獻
《自然語言處理(哈工大 關毅 64集視頻)》(來自互聯網) ??
王曉龍、關毅 《計算機自然語言處理》 清華大學出版社 2005年 ??
哈工大語言技術平臺云官網:http://ltp.ai/ ??
Steven Bird,Natural Language Processing with Python,2015 ?? ?? ?? ??
總結
以上是生活随笔為你收集整理的《自然语言处理(哈工大 关毅 64集视频)》学习笔记:第二章 数学基础与语言学基础的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎样把LoRa模块功耗降到极致
- 下一篇: 《自然语言处理(哈工大 关毅 64集视