2016-11-11 15 views
2

我正在嘗試製作一個chatbot,它使用序列對模型進行排序以響應用戶的輸入。問題是給模型的輸入序列幾乎不會是相同的。輸入序列是一個單詞列表。我創建了一個詞彙表,將每個單詞映射到自己的唯一ID,但是輸入仍然是可變的,並且不是固定的,所以我不能只用序列來排序模型。我知道有可能使用編碼器將單詞序列映射到固定的向量表示,然後將解碼器映射返回到序列。python中的序列建模序列

我的問題是我將如何去編碼單詞序列到一個固定的向量?有什麼技術可以用於這個目的嗎?

+0

我還沒有嘗試過任何東西,因爲我不知道如何完成此任務 –

回答

1

將詞序列映射到向量表示可以使用遞歸神經網絡來完成。你可以看看這個介紹:http://colah.github.io/posts/2015-08-Understanding-LSTMs/

有一個在tensorflow工具包一個教程,解決這個序列順序標建築和示例代碼:https://www.tensorflow.org/versions/r0.11/tutorials/index.html

與RNN工作之前,不過,我會建議去通過神經網絡的基礎知識:http://deeplearning.net/software/theano/tutorial/#basics

Bengio的深度學習書籍:http://www.deeplearningbook.org/涵蓋了大量有關RNN的資料,但它涉及相當多的數學。

+0

Dosent tensorflow教程只能將單詞映射到向量?通過這樣做,序列長度仍然是可變的。我需要將整個序列映射到固定向量的東西。 –

+0

嗨,在本教程中描述的簡單序列中,有一個RNN編碼器和一個RNN解碼器。 RNN編碼器將輸入序列映射爲固定長度的向量。解碼器將這個固定長度的矢量映射到一個新的序列。你正在尋找的是編碼器組件。但是,對於seq問題,這兩個組件是一起訓練的,我們不會將它們分開。 –