pynnlms
1.0.0
這是一個神經網絡語言模型(NNLMS)工具包,該工具包支持饋送前向神經網絡(FNN),復發性神經網絡(RNN),長期短期內存(LSTM)RNN,雙向RNN和BIDIRECTIONALLECTICTALLAL LSTM。具有多數隱藏圖層的神經網絡語言模型也可以使用此工具包構建,並且隱藏圖層的體系結構可能不同。在此工具包中採用了一種基於類的方法,以加快神經網絡語言模型的訓練和運行。該工具包已使用C ++重寫,可以在此處找到。
NNLM的配置參數如下:
| 姓名 | 描述 | 類型 | 必需的 | 預設 |
|---|---|---|---|---|
| AC_FUN 1 | 隱藏層的激活功能 | str | Tanh | |
| 阿爾法 | 學習率 | 漂浮 | 0.01 | |
| alpha_cut | 當改進小於minimun時,按這個比率截止學習率 | 漂浮 | 0.75 | |
| beta | 正則化參數 | 漂浮 | 1E-6 | |
| en_bias | 啟用偏見條款 | 布爾 | 錯誤的 | |
| en_direct | 啟用直接連接 | 布爾 | 錯誤的 | |
| file_type | 輸入文件的類型,支持二進製文件和文本,二進製文件的“ b”和文本的“ t” | str | t | |
| gate_fun | LSTM RNN中門的激活功能 | str | 乙狀結腸 | |
| gram_order | fnn的n-gram順序 | int | 5 | |
| hidden_layers 2 | 隱藏層的名稱和大小 | 列表 | √ | |
| input_unit 3 | 輸入,支持單詞或字符的單位,“ w” for Word和字符的“ C” | str | w | |
| 迭代4 | 最大迭代次數 | int | 50 | |
| min_improve 4 | 驗證數據的熵改善率 | 漂浮 | 1.003 | |
| model_name | 指定語言模型的名稱 | str | - | |
| output_path | 保存輸出文件的路徑 | str | √ | - |
| Random_seed | 隨機發電機的種子 | int | 1 | |
| 句子_end | 標記句子的結尾 | str | < s> | |
| stone_start | 標記句子的開始 | str | ||
| test_files | 存儲測試文件的路徑 | str | √ | - |
| train_files | 存儲培訓文件的路徑 | str | √ | - |
| Unknown_word | 標記未知詞 | str | OOV | |
| 有效_Files | 存儲驗證文件的路徑 | str | √ | - |
| vector_dim | 單詞或字符的特徵向量的維度 | int | 30 | |
| vocab_size 5 | 從訓練數據中學到的詞彙大小 | int | 10000 |
注意: 1。隱藏層的激活函數可能是tanh , sigmoid , hard_sigmoid , relu和gaussian 。
2。隱藏層可以是FNN , RNN , LSTM , BiRNN和BiLSTM的一個或幾個,它們應作為包含每個層的名稱及其大小的元組列表,例如[('rnn',30),('fnn',20)]。當只有一個隱藏層時,只有一個元組還可以。隱藏層的大小應彼此重合。
3。對於語言,例如英語,法語,其單詞被空白的字符隔開,例如白空間,可以將INPUT_UNITE設置為'W'或'c'。其他語言,例如中文,僅INPUT_UNITE = 'C'確實有效。
4.培訓將終止時,當達到最大迭代次數或驗證數據的熵改進時,培訓將終止兩次。
5。如果從訓練數據中學到的單詞或字符數量超過了詞彙的指定大小,則頻率低的單詞或字符不會添加到詞彙中。相反,詞彙量的大小將重置為學習單詞的數量。
這些示例是在此工具包中給出的。有關此工具包中構建的Languagel模型的更多詳細信息,請參考我的帖子。
根據MIT許可條款,該模塊可作為開源。