Gar*_*esh 9 python nlp machine-learning keras tensorflow
鉴于这段代码:
from tensorflow.keras.preprocessing.text import Tokenizer
sentences = [
'i love my dog',
'I, love my cat',
'You love my dog!'
]
tokenizer = Tokenizer(num_words = 1)
tokenizer.fit_on_texts(sentences)
word_index = tokenizer.word_index
print(word_index)
Run Code Online (Sandbox Code Playgroud)
无论num_words=1或num_words=100,当我在 jupyter 笔记本上运行此单元时,我都会得到相同的输出,而且我似乎无法理解它在标记化方面有何不同。
{'爱': 1, '我的': 2, '我': 3, '狗': 4, '猫': 5, '你': 6}
Mar*_*ani 12
word_index 它只是整个文本语料库的单词到 id 的映射,无论 num_words 是什么
区别在用法上很明显。例如,如果我们调用texts_to_sequences
sentences = [
'i love my dog',
'I, love my cat',
'You love my dog!'
]
tokenizer = Tokenizer(num_words = 1+1)
tokenizer.fit_on_texts(sentences)
tokenizer.texts_to_sequences(sentences) # [[1], [1], [1]]
Run Code Online (Sandbox Code Playgroud)
仅返回爱情 ID,因为最常见的单词
反而
sentences = [
'i love my dog',
'I, love my cat',
'You love my dog!'
]
tokenizer = Tokenizer(num_words = 100+1)
tokenizer.fit_on_texts(sentences)
tokenizer.texts_to_sequences(sentences) # [[3, 1, 2, 4], [3, 1, 2, 5], [6, 1, 2, 4]]
Run Code Online (Sandbox Code Playgroud)
返回最常见的 100 个单词的 id