1.什麼是nlp?
nlp=nlu(natural language understanding 通過文本來理解意思)+nlg(natural language generation 通過語義來生成文字)
2.nlp與計算機視覺相比較?3.nlp的挑戰
1.乙個意思有多個表達的方式
2.一詞多義,乙個詞在不同語境上的意思不同
解決:假設沒有任何語境,我們想要知道乙個多義詞的意思便只能靠猜,我們將該詞的各個意思可能出現的概率計算出來,選擇概率最大的意思來解釋該詞語。(概率的計算:統計該詞語在一篇文章中以某種意思出現的次數,取出現次數最多的那個詞義,偏主觀)。這種方式的正確率有限
在實際情況中我們需要結合具體的語境來判斷該詞語的詞義,通過上下文來判斷該詞語的可能詞義,更新該詞各個詞義的概率,選擇概率最大的詞義。
分兩步的方式:translation model & language model
我們拿到乙個中文的句子,需要將其翻譯成英文。
第一步:將中文句子進行分詞,然後通過詞典將每個詞進行翻譯
第二步:將翻譯得到的英文單詞進行組合(broken english)
第三步:通過語言模型選擇組合後概率最高的那句話
缺點:計算量大
當乙個句子特別長的時候,單詞的排列組合的方式也就特別多,將translation model & language model同時考慮便可以很好的解決這個問題。
這裡我們需要介紹三個問題:
1.翻譯模型(translation model)
給定一對,計算p(c|e)
語義相似度高,則p(c|e)高
語義相似度低,則p(c|e)低
2.語言模型(language model)
給定一句英文e,計算概率p(e)
如果是符合英文語法的,p(e)會高
如果是隨機語句,p(e)會低
3.decoding algorithm
給定語言模型,翻譯模型和c,找出最優的使得p(e)p(c|e)最大
簡單介紹一下語言模型
標準定義:對於語言序列 x1,x2,x3…xn,語言模型就是計算該序列的概率,即 p(x1,x2,x3,…xn)。
從機器學習的角度來看:語言模型是對語句的概率分布的建模。
通俗解釋:判斷乙個語言序列是否符合人類說話的方式,即是否是人話。
我們以四個單詞的句子為例:
p(x1,x2.x3,x4)=p(x1)*p(x2|x1)*p(x3|x1,x2)*p(x4|x1,x2,x3)
n=1 unigram:p(x1,x2.x3,x4)=p(x1)*p(x2)*p(x3)*p(x4)
n=2 bigram: p(x1,x2.x3,x4)=p(x1)*p(x2|x1)*p(x3|x2)*p(x4|x3)
n=3 trigram:p(x1,x2.x3,x4)=p(x1)*p(x2|x1)*p(x3|x1,x2)*p(x4|x2,x3)
NLP 機器翻譯中的Attention
encoder decoder模型雖然非常經典,但是侷限性也非常大。最大的侷限性就在於編碼和解碼之間的唯一聯 系就是乙個固定長度的語義向量c。也就是說,編碼器要將整個序列的資訊壓縮進乙個固定長度的向量中。但是這樣做有兩個弊端,一是語義向量無法完全表示整個序列的資訊,二是先輸入的內容攜帶的資訊會被後輸...
關卡2 1 簡單的模擬 1540 機器翻譯
1540 機器翻譯 難度 普及 普及 題目型別 資料結構 提交次數 1 涉及知識 佇列 小晨的電腦上安裝了乙個機器翻譯軟體,他經常用這個軟體來翻譯英語文章。這個翻譯軟體的原理很簡單,它只是從頭到尾,依次將每個英文單詞用對應的中文含義來替換。對於每個英文單詞,軟體會先在記憶體中查詢這個單詞的中文含義,...
機器翻譯的資料預處理
主要分為三大塊 去重 重複的資料會使訓練過程有偏。可以簡單地去除完全相同的句對,也可以計算每兩個句子之間的區域性雜湊值,把相似度小於某個閾值的句對都去除 去空行 空行不能提供任何資訊,而且可能會引起bug 特殊符號處理 這個就需要通過肉眼來觀察,然後確定乙個特殊符號列表了。常見的,包含控制字元 轉義...