彙總
tokenizer
分詞器(類)
tokenizer.fit_on_texts
分詞器方法:實現分詞
tokenizer.texts_to_sequences
分詞器方法:輸出向量序列
pad_sequences
進行padding
主要的類是tokenizer,用到其中的一些方法將文字轉換為序列。需要注意的是這個類的一些預設方法
這些方法都已經實現,所以在可以不用自己寫,直接設定引數就行。另外兩個引數:
還有就是注意必須先進行fit_on_texts
方法,然後進行texts_to_sequences
。fit_on_texts
後有兩個有用的輸出:
texts_to_sequences
輸出的是根據對應關係輸出的向量序列,是不定長的,跟句子的長度有關係。
from keras.preprocessing.text importtokenizer
text1='
some thing to eat !
'text2='
some thing to drink .
'texts=[text1,text2]
(texts)
#out:['some thing to eat !', 'some thing to drink .']
tokenizer = tokenizer(num_words=100) #
num_words:none或整數,處理的最大單詞數量。少於此數的單詞丟掉
tokenizer.fit_on_texts(texts)
( tokenizer.word_counts)
#out:ordereddict([('some', 2), ('thing', 2), ('to', 2), ('eat', 1), ('drink', 1)])
( tokenizer.word_index)
#out:
sequences =tokenizer.texts_to_sequences(texts)
word_index =tokenizer.word_index
(sequences)
#out:[[1, 2, 3, 4], [1, 2, 3, 5]] 轉換為序列,注意這裡句子等長,所以輸出一樣,但是不等長句子輸出的長度是不一樣的
print('
found %s unique tokens.
' %len(word_index))
#out:found 5 unique tokens.
pad_sequences
,對上面生成的不定長序列進行補全。可以手動設定每個句子的最大長度引數,大於這個長度截斷,小於這個長度填充。注意:預設補全和截斷都是在句子前面進行填充和截斷。這裡是用0進行填充,也就是空格,這也是為什麼上面序列index起始是1的原因。
#接上面的**
seq_len = 10data = pad_sequences(sequences, maxlen=seq_len)
(data)
#out:[[0 0 0 0 0 0 1 2 3 4]
#[0 0 0 0 0 0 1 2 3 5]]
來自
文字預處理
常見預處理步驟,預處理通常包括四個步驟 讀入文字 分詞建立字典,將每個詞對映到乙個唯一的索引 index 將文字從詞的序列轉換為索引的序列,方便輸入模型 現有的工具可以很好地進行分詞,我們在這裡簡單介紹其中的兩個 spacy和nltk。text mr.chen doesn t agree with ...
文字預處理
本文章內容主要學習文字預處理的基本步驟及實現。1 讀入文字 2 分詞 3 建立詞典,將每乙個詞對映到乙個唯一的索引 4 將文字從詞的序列轉換為索引的序列,方便輸入模型 此處用一部英文 即h.g.well的time machine,作為示例,展示文字預處理的具體過程。def read time mac...
預處理詳解
預處理指令是以 號開頭的 行。號必須是該行除了任何空白字元外的第乙個字元。後是指令關鍵字,在關鍵字和 號之間允許存在任意個數的空白字元。整行語句構成了一條預處理指令,該指令將在編譯器進行編譯之前對源 做某些轉換。下面是部分預處理指令 指令 用途 空指令,無任何效果 include 包含乙個源 檔案 ...