Keras文字預處理詳解

2022-05-07 06:45:09 字數 1798 閱讀 1024

彙總

tokenizer分詞器(類)

tokenizer.fit_on_texts分詞器方法:實現分詞

tokenizer.texts_to_sequences分詞器方法:輸出向量序列

pad_sequences進行padding

主要的類是tokenizer,用到其中的一些方法將文字轉換為序列。需要注意的是這個類的一些預設方法

這些方法都已經實現,所以在可以不用自己寫,直接設定引數就行。另外兩個引數:

還有就是注意必須先進行fit_on_texts方法,然後進行texts_to_sequencesfit_on_texts後有兩個有用的輸出:

texts_to_sequences輸出的是根據對應關係輸出的向量序列,是不定長的,跟句子的長度有關係。

from keras.preprocessing.text import

tokenizer

text1='

some thing to eat !

'text2='

some thing to drink .

'texts=[text1,text2]

print

(texts)

#out:['some thing to eat !', 'some thing to drink .']

tokenizer = tokenizer(num_words=100) #

num_words:none或整數,處理的最大單詞數量。少於此數的單詞丟掉

tokenizer.fit_on_texts(texts)

print

( tokenizer.word_counts)

#out:ordereddict([('some', 2), ('thing', 2), ('to', 2), ('eat', 1), ('drink', 1)])

print

( tokenizer.word_index)

#out:

sequences =tokenizer.texts_to_sequences(texts)

word_index =tokenizer.word_index

print

(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)

print

(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 包含乙個源 檔案 ...