簡體   English   中英

帶有Conv1D的Word2vec用於文本分類混亂

[英]Word2vec with Conv1D for text classification confusion

我正在做文本分類,並計划使用word2vec詞嵌入並將其傳遞給Conv1D圖層進行文本分類。 我有一個包含文本和相應標簽(情感)的數據框 我使用了gensim模塊,並使用了word2vec算法來生成詞嵌入模型。 我使用的代碼:

import pandas as pd
from gensim.models import Word2Vec
from nltk.tokenize import word_tokenize
df=pd.read_csv('emotion_merged_dataset.csv')
texts=df['text']
labels=df['sentiment']
df_tokenized=df.apply(lambda row: word_tokenize(row['text']), axis=1)
model = Word2Vec(df_tokenized, min_count=1)

我計划使用CNN並使用此詞嵌入模型。 但是我應該如何為我的CNN使用這個詞嵌入模型? 我應該輸入什么?

我打算使用類似的東西(顯然不使用相同的超參數):

model = Sequential()
model.add(layers.Embedding(max_features, 128, input_length=max_len))
model.add(layers.Conv1D(32, 7, activation='relu'))
model.add(layers.MaxPooling1D(5))
model.add(layers.Conv1D(32, 7, activation='relu'))
model.add(layers.GlobalMaxPooling1D())
model.add(layers.Dense(1))

有人可以幫我指出正確的方向嗎? 提前致謝。

抱歉,您的回復很晚,希望它對您仍然有用。 根據您的應用程序,您可能需要下載特定的單詞嵌入文件,例如,此處有手套文件

EMBEDDING_FILE='glove.6B.50d.txt'

embed_size = 50 # how big is each word vector
max_features = 20000 # how many unique words to use (i.e num rows in embedding vector)
maxlen = 100 # max number of words in a comment to use

word_index = tokenizer.word_index
nb_words = min(max_features, len(word_index))
embedding_matrix = np.random.normal(emb_mean, emb_std, (nb_words, embed_size))
for word, i in word_index.items():
    if i >= max_features: continue
    embedding_vector = embeddings_index.get(word)
    if embedding_vector is not None: embedding_matrix[i] = embedding_vector

#this is how you load the weights in the embedding layer
inp = Input(shape=(maxlen,))
x = Embedding(max_features, embed_size, weights=[embedding_matrix])(inp)

我從Jeremy Howard那里獲取了這段代碼,我想這就是您所需要的,如果您要加載其他文件,則過程非常相似,通常只需更改加載文件

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM