人工智能編程:基於LSTM網絡的自然語言領域中的詞性預測

人工智能專欄推薦


專欄

深度學習PyTorch極簡入門

作者:幻風的AI之路

26.6幣

162人已購

查看


圈子封面

人工智能學習圈

圈主:幻風的AI之路

71成員

進入圈子


專欄

每天五分鐘快速玩轉深度學習算法

作者:幻風的AI之路

26.6幣

607人已購

查看

介紹

在語言中,一個單詞是有詞性的,比如動詞、形容詞、名詞等等,我們可以使用LSTM來做詞性的判斷。做詞性判斷可以有兩種方式:

第一種是把一句話當作是一個序列數據,然後這句話中的每個詞都是一個詞向量,對應RNN的一個時間步,我們將其輸入到神經網絡中,然後每一個時間步都會有一個輸出,每個輸出表示輸入到該時間步的單詞的詞性。

還有一種方式就是將詞拆分成一個一個的字母,每個時間步輸入到RNN中一個字母向量,然後在最後一個時間步輸出這個單詞的詞性是什麼

我們可以將這兩種方式來結合起來,完成整個詞性的判斷

數據處理

人工智能編程:基於LSTM網絡的自然語言領域中的詞性預測

以上就是我們的訓練數據,DET、NN表示每個單詞的詞性,我們可以認為是對應詞的標籤

現在我們來生成字典,第一個字典是詞的字典word_to_idx,第二個字典是標籤的字典tag_to_idx

人工智能編程:基於LSTM網絡的自然語言領域中的詞性預測

然後還要生成一個包含26個字母的字典

人工智能編程:基於LSTM網絡的自然語言領域中的詞性預測

下面我們建立一個方法,這個方法就是當我們傳入這個方法中字母或者單詞的時候,就可以產生對應字典中的編號,就相當於對字符進行編碼了。我們要將這個編碼好的輸入到神經網絡中。

人工智能編程:基於LSTM網絡的自然語言領域中的詞性預測

網絡模型的搭建

現在我們建立神經網絡,第一個神經網絡是每一個時間步輸入為一個單詞的字母,我們最後要最後一個時間步的輸出

人工智能編程:基於LSTM網絡的自然語言領域中的詞性預測

x.shape為[4,1,10],其中4表示序列是4,1表示batch為1,10表示詞向量為10,out[-1]表示獲取最後一個時間步的輸出

人工智能編程:基於LSTM網絡的自然語言領域中的詞性預測

其中參數n_word表示字典中詞的數量,n_char表示字母字典中詞的數量,char_dim表示字母向量的維度,word_dim表示詞向量的維度,char_hidden表示char的LSTM的輸出維度,word_hidden表示word的LSTM的輸出維度,n_tag表示詞性的類別。

這個神經網絡的運行過程就是先進行字母預測,也就是將一句話中的每個單詞進行字母預測,然後進行單詞級別的預測,然後將這兩者的預測輸出cat組合,然後輸入到全連接神經網絡中,然後做最終的預測

人工智能編程:基於LSTM網絡的自然語言領域中的詞性預測

然後進行測試

人工智能編程:基於LSTM網絡的自然語言領域中的詞性預測


分享到:


相關文章: