亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何將 tokenizer.fit_on_texts() 應用于包含兩列我需要訓練的對象/字符串的

如何將 tokenizer.fit_on_texts() 應用于包含兩列我需要訓練的對象/字符串的

皈依舞 2023-06-20 13:43:24
我需要將兩組數據傳遞給tokenizer.fit_on_texts(),但遇到無法識別文本的問題。tokenizer.word_index()返回的是數字 2。我懷疑問題發生在tokenizer.fit_on_texts()我向它傳遞一個帶有 (33481, 2) 字符串的數據幀時。我看過的大多數示例都使用了 IMBD 數據集。附加信息:我目前正在試驗多分類問題,其中有帶有標簽的標題-文章對(同意、不同意、討論、不相關)。我計劃使用 LSTM 和預訓練的 Glove 創建映射到已知嵌入的單詞索引。資料:f_data -數據框 (33481, 2)列 = ['標題','articleBody']。從另外兩個 df [ x_train(26784, 2), val_train(6697, 2)]創建f_data[0]回報['kim yo jong 接替了 kim jong un role north ko...', 'san francisco marketwatch north korean leader...']這是創作的片段f_data:# This df will be fed into the fit_on_texts()# Creating df to contain the train and validation setf_data = pd.DataFrame(columns = ['Headline', 'articleBody'])# Adding data from x_train to f_dataf_data['Headline'] = x_train['Headline']f_data['articleBody'] = x_train['articleBody']# Appending x_val headline and article body columnsf_data = f_data.append(x_val[['Headline', 'articleBody']])f_dataKeras/TF 代碼問題問題:我遇到的問題是,當我打印出 word_index 的長度時,它返回 2:tokenizer.fit_on_texts(f_data[['Headline', 'articleBody']]sequences = tokenizer.texts_to_sequences(f_data[['Headline', 'articleBody']])word_index = tokenizer.word_indexprint('Vocab size:', len(word_index))>> Vocab size: 2data = pad_sequences(sequences, padding = 'post', maxlen = MAX_SEQ_LEN)print('Shape of data tensor:', data.shape)print('Shape of label tensor:', y_train_cat.shape)我試過變成f_datandarray 但得到一個屬性錯誤。f_data_2 = np.array(f_data[['Headline', 'articleBody']]) # ndarraysequences = tokenizer.texts_to_sequences(apple)AttributeError: 'numpy.ndarray' object has no attribute 'lower'有什么建議么?我看過其他一些問題,但他們正在處理一個字符串列表解決方案: 我想我終于有了一些工作,但我不完全確定這是正確的。f_data = np.c_[(np.array(f_data['Headline']), np.array(f_data['articleBody']))]f_data= f_data.tolist()....
查看完整描述

1 回答

?
狐的傳說

TA貢獻1804條經驗 獲得超3個贊

您可以分別對兩列進行標記,然后將它們輸入到兩個不同的輸入層,將它們連接起來并將它們輸入到 LSTM 層,對嗎?如果這種方法適合您,我可以解釋如何操作。


編輯:如果您習慣使用 Functional API,請生成對應于 2 列的 2 個填充序列輸入,如下所示:


tokenizer.fit_on_texts(f_data['Headline'])

vocab_size = len(tokenizer.word_index) + 1


headline_sequences_train = tokenizer.texts_to_sequences(f_data['Headline'])

#headline_seq_validation = tokenizer.texts_to_sequences(val_data['Headline'])


headline_padded_train = pad_sequences(headline_sequences_train, padding='post', maxlen = MAX_SEQ_LEN)

#headline_padded_validation = pad_sequences(headline_seq_validation,padding = 'post',maxlen = MAX_SEQ_LEN)

同樣對于文章正文:


tokenizer.fit_on_texts(f_data['articleBody'])

vocab_size = len(tokenizer.word_index) + 1


art_body_seq_train = tokenizer.texts_to_sequences(f_data['articleBody'])

#art_body_seq_validation = tokenizer.texts_to_sequences(val_data['articleBody'])


art_body_padded_train = pad_sequences(art_body_seq_train, padding='post', maxlen = MAX_SEQ_LEN)

#art_body_padded_validation = pad_sequences(art_body_seq_validation, padding='post', maxlen = MAX_SEQ_LEN)

注意:對于兩個不同的列,MAX_SEQ_LEN 可能不同。取決于您的喜好。我建議你分別分析Headline和Article Body欄的字長,并選擇不同的看起來合適的最大序列長度。


headline_padded_train并且art_body_padded_train是你的兩個輸入對應于你的神經網絡中的兩個輸入層。


查看完整回答
反對 回復 2023-06-20
  • 1 回答
  • 0 關注
  • 190 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號