日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Keras方法进行词嵌入

發布時間:2025/4/16 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Keras方法进行词嵌入 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Embedding層實例化

from keras.layers import Embeddingembedding_layer = Embedding(1000, 64)

我們將詞嵌入的辦法用于IMDB電影評論情感預測任務學習。對于電影數據集,我們將評論限制為前10000個最常見的單詞,然后將評論限制為只有20個單詞。對于這10000個單詞,網絡對每個單詞都學習一個8維詞嵌入,然后輸入的整數序列(二維整數張量)轉換為嵌入序列(三維浮點數張量),然后將這個張量展平為二維,最后在上面訓練一個Dense層用于分類。

from keras.datasets import imdb from keras import preprocessingmax_features = 10000 # 作為特征的單詞個數maxlen = 20 # 在這么多單詞之后截斷文本(這些單詞屬于前max_features個最常見的單詞)(x_train, y_train), (x_test, y_test) = imdb.load_data(num_words=max_features) # 將數據加載為整數列表x_train = preprocessing.sequence.pad_sequences(x_train, maxlen=maxlen) #將整數列表轉換為形狀為(samples, maxlen)的二維整數張量 x_test = preprocessing.sequence.pad_sequences(x_test, maxlen=maxlen)

在IMDB數據集上使用Embedding層和分類器

from keras.models import Sequential from keras.layers import Flatten, Densemodel = Sequential()model.add(Embedding(10000, 8, input_length=maxlen)) #指定Embedding層的最大輸入長度,以便后面將嵌入輸入展平,Embedding層激活形狀為(samples, maxlen, 8)model.add(Flatten()) #將三維的嵌入張量展平成形狀為(samples, maxlen*8)# We add the classifier on top model.add(Dense(1, activation='sigmoid')) model.compile(optimizer='rmsprop', loss='binary_crossentropy', metrics=['acc']) model.summary()history = model.fit(x_train, y_train,epochs=10,batch_size=32,validation_split=0.2) _________________________________________________________________ Layer (type) Output Shape Param # ================================================================= embedding_2 (Embedding) (None, 20, 8) 80000 _________________________________________________________________ flatten_1 (Flatten) (None, 160) 0 _________________________________________________________________ dense_1 (Dense) (None, 1) 161 ================================================================= Total params: 80,161 Trainable params: 80,161 Non-trainable params: 0 _________________________________________________________________ Train on 20000 samples, validate on 5000 samples

最后得到精度是76%,考慮到僅看每條評論的前20個單詞,這個結果還是相當不錯的。但請注意,僅僅將嵌入序列展開并在上面訓練一個Dense層,會導致模型對輸入序列中的每個單詞單獨處理,而沒有考慮單詞之間關系句子結構。更好的做法是在嵌入序列中添加循環層和一維卷積層,將每個序列作為整體來學習特征。

更多精彩內容,歡迎關注我的微信公眾號:數據瞎分析

總結

以上是生活随笔為你收集整理的Keras方法进行词嵌入的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。