1. cbow continuous bag of words
2. 語言python
3. 框架dynet
ps. 英文註解寫得不好,望見諒
參照前一篇bow,不同點在於
1. word embedding這裡是定義了64維,豐富地表達詞資訊,bow是直接以標籤種類為維度的
2. 因為維度變了,所以計算方法有點變化,需要乙個weight把word embedding之和轉換為乙個以標籤種類為維度的結果。
參照cbow,不同點在於
1. 擁有中間層(hidden layer),這是deep的底線
2. 利用非線性方程計算,能夠得到片語的含義
# define the model
emb_size = 64
hid_size = 64
# the deep model has two layers
hid_lay = 2
w_emb = model.add_lookup_parameters((nwords, emb_size)) # word embeddings
# the weight consists of two tuples
w_h = [model.add_parameters((hid_size, emb_size if lay == 0
else hid_size)) for lay in range(hid_lay)]
b_h = [model.add_parameters((hid_size)) for lay in range(hid_lay)]
w_sm = model.add_parameters((ntags, hid_size)) # softmax weights
b_sm = model.add_parameters((ntags)) # softmax bias
# a function to calculate scores for one value
defcalc_scores
(words):
dy.renew_cg()
h = dy.esum([dy.lookup(w_emb, x) for x in words])
# the first weight with the first bias and ...
for w_h_i, b_h_i in zip(w_h, b_h):
h = dy.tanh( dy.parameter(w_h_i) * h + dy.parameter(b_h_i) )
return dy.parameter(w_sm) * h + dy.parameter(b_sm)
NLP01 NLP基礎 語言模型
本次學習是根據貪心科技的李文哲老師的語言模型課程所整理的相關筆記,並加上自己的理解。內容包括 語言模型的介紹 chain rule 以及馬爾可夫假設 unigram,bigram,ngram 估計語言模型的概率 評估語言模型 perplexity add one 平滑,add k平滑 interpo...
NLP基礎知識
1 聲學識別模型 將從麥克風收集來的聲音,進行一些訊號處理,將語音頻號轉化到頻域,從每10毫秒的語音中提出乙個特徵向量,提供給後面的聲學模型。聲學模型負責把音訊分類成不同的音素。接下來就是解碼器,可以得出概率最高一串詞串,最後一步是後處理,就是把單詞組合成容易讀取的文字。2 pomdp框架 3 ap...
NLP(理論基礎)
小白一枚,看了很多天的nlp,也沒看出什麼頭緒。不 的我感覺只要用心去看,即使看不懂,一點一點的去啃,也能看個大概。最重要的是思想。1 nltk安裝 pip install nltk nltk就是乙個工具包,裡面有很多語料,很多模型。可以用來分詞。import nltk sentence hello...