NLP知識圖譜框架

一、NLP分類:

1.word level:序列標注任務:分詞、詞性標注、命名實體識別
2.sentence level :在句子層面分類的任務:如文本分類,情感識別,關系抽取,語音情感識別等。
3.entence-sentence level:序列和序列之間的分類,這種分類根據分類形式的不同又可以細分。如機器翻譯,問答,對話都是sequence to sequence類型的問題。

二、語言模型與詞向量

語言模型就是用來判斷一個句子的合理性的置信度,最經典的就是n-gram語言模型和NNLM(Nerual Network Language Model)

1.n-gram語言模型

n-gram語音模型主要基于馬爾科夫假設。理論上,n越大越好。但實踐中常用unigram、bigram和trigram,n越大訓練越慢,但精度會更高。


n-gram.png

2.神經語言模型

Word2vec就是利用一個簡化版的語言模型來得到剛才提到的矩陣C,因為Hidden layer都是線性層。
CBOW利用一個詞的上下文來預測中心詞,skip-gram則是反過來利用中心詞來預測上下文。
不同點:構建目標函數的方式不同。
CBOW: 根據詞語上下文預測中心詞
Skip-gram: 根據中心詞預測上下文
共同點:以小窗粒度捕獲詞語與上下文的聯系,然后滑動小窗,在整個語料上捕獲聯系。
思路:制定目標函數,量化這種聯系,最優化,從而求得每個詞的向量。

word2vec.png

三、分詞技術

分詞任務,難點如下:

1.新詞發現
未登錄詞(人名、機構名、商標名、公司名稱)
2.詞典與算法優先級
我們 中信 仰 佛教 的 人
3.歧義(顆粒度、交集等)
股份 有限公司 、鄭州天和服裝廠

分詞的算法大致分為兩種:

1.基于詞典的分詞算法
正向最大匹配算法 逆向最大匹配算法 雙向匹配分詞法
2.基于統計的機器學習算法
HMM、CRF、SVM、LSTM+CRF

Jieba的分詞的API:

segWords_allmode = jieba.cut(str,cut_all=True) 全模式分詞結果
segWords_accuratemode = jieba.cut(str,cut_all=False)精確模式分詞結果
segWords_defaultmode = jieba.cut(str)默認模式分詞結果
segWords_searchenginemode = jieba.cut_for_search(str)搜索引擎分詞結果

全模式分詞結果:我/是/最/懂/你/的/聊天/天機/機器/機器人/小/辛//
精確模式分詞結果:我/是/最/懂/你/的/聊天/機器人/小辛/!
默認模式分詞結果:我/是/最/懂/你/的/聊天/機器人/小辛/!
搜索引擎分詞結果:我/是/最/懂/你/的/聊天/機器/機器人/小辛/!

注:HMM

HMM狀態狀態序列是馬爾科夫鏈,凡是轉移矩陣的參數不知道。
HMM是馬爾科夫鏈一階導數,多用于分詞;CRF是隱馬的復雜化。
HMM包含兩個序列和三個元素。
序列:觀測序列是我們能夠看到的值,是基于狀態序列生成的值;狀態序列是未知的,是滿足馬爾可夫性質的。
元素:狀態序列中間的狀態初始概率矩陣:派
狀態與狀態之間的概率轉移矩陣:A
狀態到觀測值的混淆概率矩陣:B

四、命名實體識別LSTM-CRF

識別文本中具有特定意義的實體(人名、地名、機構名、專有名詞),從知識圖譜的角度來說就是從非結構化文本中獲取圖譜中的實體及實體屬性。

方法:
(1) 基于規則的方法。根據語言學上預定義的規則。但是由于語言結構本身的不確定性,規則的制定上難度較大。
(2) 基于統計學的方法。利用統計學找出文本中存在的規律。
主要有隱馬爾可夫(HMM)、條件隨機場(CRF)模型和Viterbi算法、支持向量機(Support Vector Machine, SVM)。
(3) 神經網絡。
LSTM+CRF模型,基于RNN的seq2seq模型

難點:
1 中文實體識別
中文識別包含英文識別;英文直譯實體;
2 特定領域的數據
愛爾眼科集團股份有限公司 B-agency,I-agency,
3數據清洗

CRF.png

圖中輸入是word embedding,使用雙向lstm進行encode,對于lstm的hidden層,接入一個大小為[hidden_dim,num_label]的一個全連接層就可以得到每一個step對應的每個label的概率,也就是上圖黃色框的部分,到此,如果我們直接去最大的概率值就可以完成任務了,那么為什么還要接入一個CRF層?

如果將lstm接全連接層的結果作為發射概率,CRF的作用就是通過統計label直接的轉移概率對結果lstm的結果加以限制(這樣條件隨機場的叫法就很好理解了)
比如I這個標簽后面不能接O,B后面不能接B,如果沒有CRF,光靠lstm就做不到這點,最后的score的計算就將發射概率和轉移概率相加就ok了,我這里給出的是直觀感受,不做理論上的講解。

項目:
雙向lstm或IdCNN模型,找到x,y. y是雙標簽,x是文字word2vec映射成的詞向量。
如何擬合x.y:擬合之前第一步提取x的特征,用BiLstm或idCNN對x做特征提取,+分類器(crf條件隨機場)
idCNN與cnn的區別是,idCNN的卷積核是扁的:找一句話之間的關系可以用扁的, 好處:可以有效地抗噪音:完形填空時,扁的卷積核它只會掃當前這句話,不會把上下文卷進來,抗的是上下文的躁
CNN和RNN本質上沒有太大差別,都是把局部的相關性體現出來,CNN體現在空間上,RNN體現在時間時序上
crf:條件隨機場。跟rnn很類似,提供了一個分類結果,當然它也可以做特征提取。它的分類需要算一個聯合概率
第一步,找到x,y
第二步,對x做特征提取、特征工程(之前所有的resnet等都是為特征工程服務的),對y做one_hot向量(或二分類)
第三步,去擬合,分類

五、主題模型

1.PCA主成分分析

是一種無監督學習的降維技術,思想是:投影后樣本越分散,保留的信息越多
做法:將所有的樣本點向直線w投影,目標函數:讓投影后的樣本方差 極大
通過特征值和特征向量來降維

2.LDA線性判別分析

是一種監督學習的降維技術,思想是:投影后類內方差最小,類間方差最大
做法:計算直線上,每個類別下樣本的方差,目標函數:讓均值的投影點間的距離/各類別組內方差和極大。

3.LDA隱含狄利克雷分布(主題模型)

Beta分布:是估計硬幣正面朝上概率的分布,x軸表示出現正面的概率,y表示出現正面概率的可能性。
狄利克雷分布:是beta分布的推廣情形,拋出的結果可能有很多種
np.random.beta(20,20)
np.random.dirichlet(100,100,100,100,100,100)

4.負采樣Negative sampling總結

首先為所有的詞隨機初始化自己的向量(200維)
在基于Negative sampling的CBOW模型中,對某個詞w來說,構造一個函數:
預測出詞w的概率*不預測出其他詞的概率,這是我們想要的極大的,擴展到整個語料庫,就是讓每個詞的函數累乘極大,這便是最終需要最大化的目標函數。


CBOW.png

六、知識圖譜

知識圖譜.png

關系抽取是知識圖譜中將文本數據進行結構化的一種方法。
從非結構化文本中獲取圖譜中的實體及實體屬性。

之前實習的任務就是從大量的數據中抽取圖中的每個實體節點。條件:有的只有未標注的數據和一些數據庫中的詞典,要做的就是從數據庫中抽取原始數據和每個類別的詞典進行標注還原。
那么標注還原怎么做呢?這里可以直接將詞典導進分詞器的,將類別作為詞性標注的標簽進行標注,這樣既做了分詞也做了標注。實體識別完成后就是數據入庫審核工作了,然后就是做詞典更新,添加識別出的新詞,繼續做模型訓練。

數據清洗總結:
1.數據中句子的切割:要做成訓練數據那樣的標注并不容易,有些句子長度得有1000+個字了,我們盡量把句子的長度控制在100左右,同時要保證詞語的完整性。
2.符號清理:這里盡量保證句子中亂七八糟的符號不要太多。
3.然后舍去全是‘O’的標注句子。其實有標注的句子占的比重不大,這里要注意清洗干凈。
4.如果對數字識別不做要求,干脆轉換成0進行識別

https://github.com/FuYanzhe2/Name-Entity-Recognition
【Batch Normalization】
https://www.cnblogs.com/guoyaohua/p/8724433.html
https://www.cnblogs.com/skyfsm/p/8453498.html
【馬爾科夫鏈--馬爾科夫隨機場--條件隨機場】
https://www.cnblogs.com/lijieqiong/p/6673692.html
https://blog.csdn.net/Jum_Summer/article/details/80793835

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,606評論 6 533
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,582評論 3 418
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,540評論 0 376
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,028評論 1 314
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,801評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,223評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,294評論 3 442
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,442評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,976評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,800評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,996評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,543評論 5 360
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,233評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,662評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,926評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,702評論 3 392
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,991評論 2 374

推薦閱讀更多精彩內容