onehot轉換
def
convert_to_one_hot
(y, c):
y = np.eye(c)[y.reshape(-1)]
return y
def
read_glove_vecs
(glove_file):
with open(glove_file, 'r', encoding='utf8') as f:
words = set() # 集合避免重複
word_to_vec_map = {} # 詞到詞向量
for line in f: # 預設按行讀取
line = line.strip().split() # strip移除字串頭尾指定的字串行,預設為空格
curr_word = line[0] # 取出單詞
words.add(curr_word) # 新增單詞
word_to_vec_map[curr_word] = np.array(line[1:], dtype=np.float64) # 用字典建立索引
i = 1
words_to_index = {}
index_to_words = {}
for w in sorted(words): # sorted可以對所有可迭代物件進行排序操作,返回乙個新的list
embedding層經過下面函式,完成了i love you ---> [185457, 2262788, 394475, 0, 0]
的轉換
m = x.shape[0] # 有多少個句子
x_indices = np.zeros(shape=(m, max_len))
for i in range(m):
sentence_words = (x[i].lower()).split()
j = 0
for w in sentence_words:
x_indices[i, j] = word_to_index[w] # 將每句話中的單詞索引為index
j +=1
return x_indices
載入之前訓練好的詞向量
def
pretrained_embedding_layer
(word_to_vec_map, word_to_index):
vocab_len = len(word_to_index) + 1
# 詞的數量
emb_dim = word_to_vec_map["cucumber"].shape[0] # 單個詞向量的維度=50
embedding_layer = embedding(input_dim=vocab_len, out_dim=emb_dim, trainable=false) # input_dim詞彙表大小,即最大整數index+1 out_dim:詞向量維度
# 設定權重
emb_matrix = np.zeros(shape=(vocab_len, emb_dim))
for word, index in word_to_index.items(): # 迴圈單詞和索引
emb_matrix[index, :] = word_to_vec_map[word]
# 設定嵌入層權重之前,需要build嵌入層
embedding_layer.build((none,))
embedding_layer.set_weights([emb_matrix])
return embedding_layer
def
emjify_v2
(input_shape, word_to_vec_map, word_to_index):
""" input_shape -- shape of the input, usually (max_len,)
"""sentence_indices = input(shape=input_shape, dtype='int32')
embedding_layer = pretrained_embedding_layer(word_to_vec_map, word_to_index)
embeddings = emedding_layer(sentence_indices) # 自定義的layer物件的方法,第二個括號可以傳遞入張量
x = lstm(units=128, return_sequence=true)(embeddings) # return_sequence是否全部接受
x = dropout(0.5)(x)
x = lstm(units=128, return_sequences=false)(x)
x = dropout(0.5)(x)
x = dense(units=5)(x)
x = activation('softmax')(x)
model = model(inputs=sentence_indices, outputs=x)
return model
第五課 文法
1.名詞 場所 行 來 帰 使用移動動詞時,移動的方向用助詞 表示。京都 行 我要去京都。日本 來 我來到了日本。帰 我要回家。注 助詞 讀作 2.行 行 完全否定疑問詞所問的全部範疇時,用助詞 與否定形式一起使用。行 也不去。何 食 什麼也不吃。第6課 沒有任何人在。第10課 3.名詞 交通工具 ...
C語言第五課
主要內容 二維陣列 字串陣列 多維陣列 理解 一 二維陣列 有兩個下標的陣列稱為二維陣列 定義 型別修飾符 陣列名 常量表示式1 常量表示式2 第一維的長度 第二維的長度 示例 定義乙個2行3列的二維陣列 int array 2 3 這是乙個標準的二維陣列 二維陣列的元素也稱為雙下標變數 0 1 2...
C語言第五課
c函式若不宣告型別,則預設為 int 型 在函式中,指標可以 被調函式 修改 主調函式 1 int func int a main 2 void func int num main int num 2 func int b 野指標會 指向任一地方 int pum printf x pum 指標偏移的...