詞義消歧,句子、篇章語義理解基礎,必須解決。語言都有大量多種含義詞彙。詞義消歧,可經過機器學習方法解決。詞義消歧有監督機器學習分類算法,判斷詞義所屬分類。詞義消歧無監督機器學習聚類算法,把詞義聚成多類,每一類一種含義。算法
有監督詞義消歧方法。基於互信息詞義消歧方法,兩種語言對照,基於大量中英文對照語料庫訓練模型可詞義消歧。來源信息論,一個隨機變量中包含另外一個隨機變量信息量(英文信息中包含中文信息信息量),假設兩個隨機變量X、Y的機率分別是p(x), p(y),聯合分佈機率是p(x,y),互信息計算公式,I(X; Y) = ∑∑p(x,y)log(p(x,y)/(p(x)p(y)))。互信息,一個隨機變量由已知另外一個隨機變量減小不肯定性(理解中文時因爲已知英文含義讓中文理解更肯定),不肯定性,熵,I(X; Y) = H(X) - H(X|Y)。對語料不斷迭代訓練,I(X; Y)不斷減少,算法終止條件I(X; Y)再也不減少。基於互信息詞義消歧方法對機器翻譯系統效果最好。缺點,雙語語料有限,多種語言能識別出歧義狀況也有限的(如中英文同一個詞都有歧義)。微信
基於貝葉斯分類器消歧方法。條件機率,上下文語境,任何多義詞含義都跟上下文語境相關。假設語境(context)記c,語義(semantic)記s,多義詞(word)記w,多義詞w在語境c下有語義s機率,p(s|c),p(s|c) = p(c|s)p(s)/p(c)。p(s|c)中s取某一個語義最大機率,p(c)既定,只考慮分子最大值,s估計=max(p(c|s)p(s))。語境c在天然語言處理中必須經過詞表達,由多個v(詞)組成,max(p(s)∏p(v|s))。機器學習
p(s)表達多義詞w某個語義s機率,統計大量語料最大似然估計,p(s) = N(s)/N(w)。p(v|s)多義詞w某個語義s條件詞v機率,p(v|s) = N(v, s)/N(s)。訓練出p(s)和p(v|s),一個多義詞w消歧計算(p(c|s)p(s))最大機率。函數
無監督詞義消歧方法。徹底無監督詞義消歧不可能,沒有標註沒法定義詞義,可經過無監督方法作詞義辨識。無監督詞義辨識,一種貝葉斯分類器,參數估計不是基於有標註訓練語料,是先隨機初始化參數p(v|s),根據EM算法從新估計機率值,對w每個上下文c計算p(c|s),獲得真實數據似然值,從新估計p(v|s),從新計算似然值,不斷迭代不斷更新模型參數,最終獲得分類模型,可對詞分類,有歧義詞在不一樣語境會被分到不一樣類別。基於單語言上下文向量。向量類似性,兩個向量間夾角餘弦值比較類似性,cos(a,b) = ∑ab/sqrt(∑a^2∑b^2)。學習
淺層語義標註,行之有效語言分析方法,基於語義角色淺層分析方法可描述句子語義角色間關係。語義角色,謂詞,施事者,受事者,事情發生時間,數量。語義角色標註分析角色信息,計算機提取重要結構化信息,來理解語言含義。優化
語義角色標註依賴句法分析結果,句法分析包括短語結構分析、淺層句法分析、依存關係分析,語義角色標註分基於短語結構樹語義角色標註方法、基於淺層句法分析結果語義角色標註方法、基於依存句法分析結果語義角色標註方法。過程,句法分析->候選論元剪除->論元識別->論元標註->語義角色標註結果。論元剪除,在較多候選項中去掉確定不是論元部分。論元識別,二值分類,是論元和不是論元。論元標註,多值分類。搜索引擎
基於短語結構樹語義角色標註方法。短語結構樹表達結構關係,語義角色標註過程依賴結構關係設計複雜策略,策略內容隨語言結構複雜而複雜化。分析論元剪除的策略,語義角色以謂詞中心,短語結構樹以謂詞節點中心,先平行分析,和受事者不一樣一層,若是當前節點兄弟節點和當前節點不是句法結構並列關係,做候選論元。論元識別,二值分類,基於標註語料庫作機器學習,機器學習二值分類方法固定,謂詞自己、短語結構樹路徑、短語類型、論元在謂詞位置、謂詞語態、論元中心詞、從屬類別、論元第一個詞和最後一個詞、組合特徵。論元標註,機器學習多值分類器。google
基於依存句法分析結果和基於語塊語義角色標註方法。論元剪除過程,基於句法結構不一樣。基於依存句法分析結果語義角色標註方法基於依存句法直接提取出謂詞-論元關係。剪除策略,以謂詞做當前節點,當前節點全部子節點都是候選論元,將當前節點父節點做當前節點重複以上過程直至到根節點。基於依存句法分析結果語義角色標註方法論元識別算法特徵設計,多了有關父子節點特徵。翻譯
融合方式,加權求和、插值。設計
語義角色標註當前不是很是有效,依賴句法分析準確性、領域適應能力差。新方法,利用雙語平行語料彌補準確性問題,成本提升許多。
信息檢索不管是谷歌仍是百度都離不開TF-IDF算法,簡單有效但缺少語義特徵。
TF-IDF。TF(term frequency),一個詞在一個文檔中出現頻率。IDF(inverse document frequency),一個詞出如今多少個文檔中。同一個詞在短文檔出現次數和在長文檔中出現次數同樣多,對於短文檔價值更大。一個出現機率很低的詞一旦出如今文檔中,價值大於其餘廣泛出現詞。在信息檢索領域向量模型作類似度計算很是有效,曾是google發家必殺技。聊天機器人軟肋,只考慮獨立詞,沒有任何語義信息。
隱含語義索引模型。TF-IDF模型,全部詞構成一個高維語義空間,每一個文檔這個空間被映射爲一個點,維數通常比較高且每一個詞做一維割裂詞與詞之間關係。把詞和文檔同等對待,構造一個維數不高語義空間,每一個詞和每一個文檔被映射到這個空間一個點。數學,考察文檔機率,詞機率,聯合機率。設計一個假想隱含類包括在文檔和詞之間,選擇一個文檔機率p(d),找到一個隱含類機率p(z|d),生成一個詞w機率p(w|z)。根據觀測數據估計p(d, w)聯合機率,z是一個隱含變量,表達一種語義特徵。利用p(d, w)估計p(d)、p(z|d)和p(w|z),根據p(d)、p(z|d)和p(w|z)求更精確p(w, d),詞與文檔之間相關度。設計優化目標函數對數似然函數,L=∑∑n(d, w) log P(d, w)。p(d, w) = p(d) × p(w|d),p(w|d) = ∑p(w|z)p(z|d),p(z|d) = p(z)p(d|z)/∑p(z)p(d|z),p(d, w) =p(d)×∑p(w|z) p(z)p(d|z)/∑p(z)p(d|z)=∑p(z)×p(w|z)×p(d|z)。
EM算法,按照最大似然原理,先隨便拍一個分佈參數,根據分佈歸類到某一部分,根據歸類從新統計數目,按照最大似然估計分佈參數,再從新歸類、調參、估計,最終得出最優解。每個訓練數據作歸類,p(z|d,w),先拍一個p(z)、p(d|z)、p(w|z),p(z|d,w)=p(z)p(d|z)p(w|z)/∑p(z)p(d|z)p(w|z),分子是一個z,分母是全部z和。p(z|d,w)最大似然估計的機率估計(E過程),對每個訓練樣本作歸類,根據歸類好數據統計出n(d,w),根據公式p(z) = 1/R ∑n(d,w)p(z|d,w)更新參數。p(d|z)=∑n(d,w)p(z|d,w) / ∑n(d,w)p(z|d,w),分子是一個d和,分母是全部d和,計算p(d|z)最大似然估計。p(w|z)=∑n(d,w)p(z|d,w) / ∑n(d,w)p(z|d,w),分子一個w和,分母是全部w和,計算p(w|z)的最大似然估計。從新計算p(z|d,w),p(z|d,w)=p(z)p(d|z)p(w|z)/∑p(z)p(d|z)p(w|z)。不斷重複上面EM過程使對數似然函數最大,L=∑∑n(d, w) log P(d, w)。
經過以上迭代得出最終p(w, d),詞與文檔之間相關度,利用相關度作檢索。
詞詞之間相關度,p(w, d)乘以轉置,p(w,w) = p(w,d)×trans(p(w,d))。用戶查詢query關鍵詞構成詞向量Wq, 文檔d表示成詞向量Wd,query和文檔d相關度,R(query, d) = Wq×p(w,w)×Wd。把全部文檔算出來相關度從大到小排序就是搜索排序結果。
隱含語義索引模型,相比TF-IDF,加進語義信息、考慮詞詞關係,根據語義作信息檢索,更適合研發聊天機器人作語料訓練和分析,TF-IDF更適合徹底基於獨立詞信息檢索,更適合純文本搜索引擎。
參考資料:
《Python 天然語言處理》
http://www.shareditor.com/blo...
http://www.shareditor.com/blo...
http://www.shareditor.com/blo...
歡迎推薦上海機器學習工做機會,個人微信:qingxingfengzi