0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

深度學(xué)習(xí)——如何用LSTM進(jìn)行文本分類

恬靜簡(jiǎn)樸1 ? 來(lái)源: 恬靜簡(jiǎn)樸1 ? 作者: 恬靜簡(jiǎn)樸1 ? 2022-10-21 09:57 ? 次閱讀

簡(jiǎn)介

主要內(nèi)容包括

如何將文本處理為Tensorflow LSTM的輸入

如何定義LSTM

用訓(xùn)練好的LSTM進(jìn)行文本分類

代碼

導(dǎo)入相關(guān)庫(kù)

#coding=utf-8

importtensorflowastf

fromtensorflow.contribimportlearn

importnumpyasnp

fromtensorflow.python.ops.rnnimportstatic_rnn

fromtensorflow.python.ops.rnn_cell_implimportBasicLSTMCell

數(shù)據(jù)

# 數(shù)據(jù)

positive_texts=[

"我 今天 很 高興",

"我 很 開心",

"他 很 高興",

"他 很 開心"

]

negative_texts=[

"我 不 高興",

"我 不 開心",

"他 今天 不 高興",

"他 不 開心"

]

label_name_dict={

0:"正面情感",

1:"負(fù)面情感"

}

配置信息

配置信息

embedding_size=50

num_classes=2

將文本和label數(shù)值化

# 將文本和label數(shù)值化

all_texts=positive_texts+negative_textslabels=[0]*len(positive_texts)+[1]*len(negative_texts)

max_document_length=4

vocab_processor=learn.preprocessing.VocabularyProcessor(max_document_length)

datas=np.array(list(vocab_processor.fit_transform(all_texts)))

vocab_size=len(vocab_processor.vocabulary_)

定義placeholder(容器),存放輸入輸出

# 容器,存放輸入輸出

datas_placeholder=tf.placeholder(tf.int32, [None, max_document_length])

labels_placeholder=tf.placeholder(tf.int32, [None])

詞向量處理

# 詞向量表

embeddings=tf.get_variable("embeddings", [vocab_size, embedding_size],initializer=tf.truncated_normal_initializer)

# 將詞索引號(hào)轉(zhuǎn)換為詞向量[None, max_document_length] => [None, max_document_length, embedding_size]

embedded=tf.nn.embedding_lookup(embeddings, datas_placeholder)

將數(shù)據(jù)處理為LSTM的輸入格式

# 轉(zhuǎn)換為L(zhǎng)STM的輸入格式,要求是數(shù)組,數(shù)組的每個(gè)元素代表某個(gè)時(shí)間戳一個(gè)Batch的數(shù)據(jù)

rnn_input=tf.unstack(embedded, max_document_length,axis=1)

定義LSTM

# 定義LSTM

lstm_cell=BasicLSTMCell(20,forget_bias=1.0)

rnn_outputs, rnn_states=static_rnn(lstm_cell, rnn_input,dtype=tf.float32)

#利用LSTM最后的輸出進(jìn)行預(yù)測(cè)

logits=tf.layers.dense(rnn_outputs[-1], num_classes)

predicted_labels=tf.argmax(logits,axis=1)

定義損失和優(yōu)化器

# 定義損失和優(yōu)化器

losses=tf.nn.softmax_cross_entropy_with_logits(

labels=tf.one_hot(labels_placeholder, num_classes),

logits=logits

)

mean_loss=tf.reduce_mean(losses)

optimizer=tf.train.AdamOptimizer(learning_rate=1e-2).minimize(mean_loss)

執(zhí)行

withtf.Session()assess:

# 初始化變量

sess.run(tf.global_variables_initializer())

訓(xùn)練# 定義要填充的數(shù)據(jù)

feed_dict={

datas_placeholder: datas,

labels_placeholder: labels

}

print("開始訓(xùn)練")

forstepinrange(100):

_, mean_loss_val=sess.run([optimizer, mean_loss],feed_dict=feed_dict)

ifstep%10==0:

print("step ={}tmean loss ={}".format(step, mean_loss_val))

預(yù)測(cè)

print("訓(xùn)練結(jié)束,進(jìn)行預(yù)測(cè)")

predicted_labels_val=sess.run(predicted_labels,feed_dict=feed_dict)

fori, textinenumerate(all_texts):

label=predicted_labels_val[i]

label_name=label_name_dict[label]

print("{}=>{}".format(text, label_name))

審核編輯 黃昊宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • LSTM
    +關(guān)注

    關(guān)注

    0

    文章

    59

    瀏覽量

    3767
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    pyhanlp文本分類與情感分析

    得到一個(gè)分類器,利用該分類器,我們就可以進(jìn)行文本分類了。IClassifier classifier = new NaiveBayesClassifier(model);目前分類器接口
    發(fā)表于 02-20 15:37

    TensorFlow的CNN文本分類

    在TensorFlow中實(shí)現(xiàn)CNN進(jìn)行文本分類(譯)
    發(fā)表于 10-31 09:27

    NLPIR平臺(tái)在文本分類方面的技術(shù)解析

    一下NLPIR大數(shù)據(jù)語(yǔ)義智能分析系統(tǒng)是怎樣實(shí)現(xiàn)文本分類的。NLPIR大數(shù)據(jù)語(yǔ)義智能分析平臺(tái)的文本分類有兩種模式:專家規(guī)則分類與機(jī)器學(xué)習(xí)分類。
    發(fā)表于 11-18 17:46

    基于apiori算法改進(jìn)的knn文本分類方法

    的,通過(guò)實(shí)例去學(xué)習(xí)分類在這方面就很有優(yōu)勢(shì)。 一般的文本分類分為這幾個(gè)步驟,首先是建立文檔的表示模型,即通過(guò)若干特征去表示一個(gè)文本,因?yàn)橐话闱闆r下一篇文章都有著成百上千的特征向量,直接
    發(fā)表于 11-09 10:25 ?9次下載
    基于apiori算法改進(jìn)的knn<b class='flag-5'>文本分類</b>方法

    運(yùn)用多種機(jī)器學(xué)習(xí)方法比較短文本分類處理過(guò)程與結(jié)果差別

    目標(biāo) 從頭開始實(shí)踐中文短文本分類,記錄一下實(shí)驗(yàn)流程與遇到的坑運(yùn)用多種機(jī)器學(xué)習(xí)深度學(xué)習(xí) + 傳統(tǒng)機(jī)器學(xué)習(xí))方法比較短
    的頭像 發(fā)表于 11-02 15:37 ?5303次閱讀
    運(yùn)用多種機(jī)器<b class='flag-5'>學(xué)習(xí)</b>方法比較短<b class='flag-5'>文本分類</b>處理過(guò)程與結(jié)果差別

    textCNN論文與原理——短文本分類

    是處理圖片的torchvision,而處理文本的少有提及,快速處理文本數(shù)據(jù)的包也是有的,那就是torchtext[1]。下面還是結(jié)合上一個(gè)案例:【深度學(xué)習(xí)】textCNN論文與原理——
    的頭像 發(fā)表于 12-31 10:08 ?2553次閱讀
    textCNN論文與原理——短<b class='flag-5'>文本分類</b>

    文本分類的一個(gè)大型“真香現(xiàn)場(chǎng)”來(lái)了

    任何標(biāo)注數(shù)據(jù)啦!哇,真香! 當(dāng)前的文本分類任務(wù)需要利用眾多標(biāo)注數(shù)據(jù),標(biāo)注成本是昂貴的。而半監(jiān)督文本分類雖然減少了對(duì)標(biāo)注數(shù)據(jù)的依賴,但還是需要領(lǐng)域?qū)<沂謩?dòng)進(jìn)行標(biāo)注,特別是在類別數(shù)目很大的情況下。 試想一下,我們?nèi)祟愂侨绾螌?duì)新聞
    的頭像 發(fā)表于 02-05 11:02 ?1885次閱讀
    <b class='flag-5'>文本分類</b>的一個(gè)大型“真香現(xiàn)場(chǎng)”來(lái)了

    基于深度神經(jīng)網(wǎng)絡(luò)的文本分類分析

      隨著深度學(xué)習(xí)技術(shù)的快速發(fā)展,許多研究者嘗試?yán)?b class='flag-5'>深度學(xué)習(xí)來(lái)解決文本分類問題,特別是在卷積神經(jīng)網(wǎng)絡(luò)和循環(huán)神經(jīng)網(wǎng)絡(luò)方面,出現(xiàn)了許多新穎且有效的
    發(fā)表于 03-10 16:56 ?37次下載
    基于<b class='flag-5'>深度</b>神經(jīng)網(wǎng)絡(luò)的<b class='flag-5'>文本分類</b>分析

    集成WL-CNN和SL-Bi-LSTM的旅游問句文本分類算法

    學(xué)習(xí)詞序列子空間向量和句序列深層語(yǔ)義信息,通過(guò)多頭注意力機(jī)制將兩種深度學(xué)習(xí)模型進(jìn)行集成以實(shí)現(xiàn)旅游問句文本的語(yǔ)法和語(yǔ)義信息互補(bǔ),并通過(guò) Sof
    發(fā)表于 03-17 15:24 ?6次下載
    集成WL-CNN和SL-Bi-<b class='flag-5'>LSTM</b>的旅游問句<b class='flag-5'>文本分類</b>算法

    融合文本分類和摘要的多任務(wù)學(xué)習(xí)摘要模型

    文本摘要應(yīng)包含源文本中所有重要信息,傳統(tǒng)基于編碼器-解碼器架構(gòu)的摘要模型生成的摘要準(zhǔn)確性較低。根據(jù)文本分類文本摘要的相關(guān)性,提出一種多任務(wù)學(xué)習(xí)
    發(fā)表于 04-27 16:18 ?11次下載
    融合<b class='flag-5'>文本分類</b>和摘要的多任務(wù)<b class='flag-5'>學(xué)習(xí)</b>摘要模型

    基于雙通道詞向量的卷積膠囊網(wǎng)絡(luò)文本分類算法

    的詞向量與基于特定文本分類任務(wù)擴(kuò)展的語(yǔ)境詞向量作為神經(jīng)網(wǎng)絡(luò)的2個(gè)輸入通道,并采用具有動(dòng)態(tài)路由機(jī)制的卷積膠囊網(wǎng)絡(luò)模型進(jìn)行文本分類。在多個(gè)英文數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果表明,雙通道的詞向量訓(xùn)練方式優(yōu)于單通道策略,與LSTM、RAE、 M
    發(fā)表于 05-24 15:07 ?6次下載

    基于LSTM的表示學(xué)習(xí)-文本分類模型

    的關(guān)鍵。為了獲得妤的文本表示,提高文本分類性能,構(gòu)建了基于LSTM的表示學(xué)習(xí)-文本分類模型,其中表示學(xué)習(xí)
    發(fā)表于 06-15 16:17 ?18次下載

    PyTorch文本分類任務(wù)的基本流程

    文本分類是NLP領(lǐng)域的較為容易的入門問題,本文記錄文本分類任務(wù)的基本流程,大部分操作使用了**torch**和**torchtext**兩個(gè)庫(kù)。 ## 1. 文本數(shù)據(jù)預(yù)處理
    的頭像 發(fā)表于 02-22 14:23 ?1140次閱讀

    NLP中的遷移學(xué)習(xí):利用預(yù)訓(xùn)練模型進(jìn)行文本分類

    遷移學(xué)習(xí)徹底改變了自然語(yǔ)言處理(NLP)領(lǐng)域,允許從業(yè)者利用預(yù)先訓(xùn)練的模型來(lái)完成自己的任務(wù),從而大大減少了訓(xùn)練時(shí)間和計(jì)算資源。在本文中,我們將討論遷移學(xué)習(xí)的概念,探索一些流行的預(yù)訓(xùn)練模型,并通過(guò)實(shí)際示例演示如何使用這些模型進(jìn)行文本分類
    發(fā)表于 06-14 09:30 ?461次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)在文本分類領(lǐng)域的應(yīng)用

    在自然語(yǔ)言處理(NLP)領(lǐng)域,文本分類一直是一個(gè)重要的研究方向。隨著深度學(xué)習(xí)技術(shù)的飛速發(fā)展,卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,簡(jiǎn)稱CNN)在圖像識(shí)別領(lǐng)域取得了
    的頭像 發(fā)表于 07-01 16:25 ?784次閱讀