keras 的 Tokenizer 是將單字轉成數位化的好工具,相關函數及運作原理如下。
安裝套件
製作字典需安裝如下套件
pip install scikit-learn nltk gensim xlrd openpyxl pandas tensorflow==2.10.1
Tokenizer的用途
Tokenizer 把傳入的文章轉成單字,然後給予每個單字一個編號,編號由 1 開始。每個句子必需置於 list 之中。tok.fit_on_texts() 就是開始執行編號變成字典的方法,tok.word_index 則可以列印這部字典編碼的結果。
tok.texts_to_sequences() 把每單字轉成編碼格式。如果單字不在字典內,則略過,比如下面的 “hello” 及 “kevin”,不在字典內就不顯示。
keras.utils 裏的 pad_sequences() 會將每個句子的編碼擴展成 maxlen 的長度,這是為了將所有的句子變成一樣的長度,長度不足就以 0 填入。
儲存字典
當文章很龐大時,讀取的時間就會非常久,製作字典也很耗時。所以把製作好的字典儲存起來,待下次要使用時直接載入字典即可,這樣就不用重讀文章重新製作字典。
底下代碼 dictory.py 將讀入160 萬篇文章,刪除停用詞及不相關的單字後,製作成字典。最後再使用 pickle.dump() 再將字典儲成 eng_dictionary.pkl 檔。
讀入字典
讀入字典的方式,使用 pickle.load() 方法
