我学习了一个关于使用Tensorflow标记句子的教程,下面是我正在尝试的代码:
from tensorflow.keras.preprocessing.text import Tokenizer #API for tokenization
t = Tokenizer(num_words=4) #meant to catch most imp _
listofsentences=['Apples are fruits', 'An orange is a tasty fruit', 'Fruits are tasty!']
t.fit_on_texts(listofsentences) #processes words
print(t.word_index)
print(t.texts_to_sequences(listofsentences)) #arranges tokens, returns nested list
第一个打印语句显示了一个预期的字典:
{'are': 1, 'fruits': 2, 'tasty': 3, 'apples': 4, 'an': 5, 'orange': 6, 'is': 7, 'a': 8, 'fruit': 9}
但最后一行输出了一个遗漏了许多单词的列表:
[[1, 2], [3], [2, 1, 3]]
请让我知道我做错了什么,以及如何获得预期列表:
[[4,1,2],[5,6,7,8,3,9],[2,1,3]]
要指定无限数量的代币,请使用:
t = Tokenizer(num_words=None)
输出:
{'are': 1, 'fruits': 2, 'tasty': 3, 'apples': 4, 'an': 5, 'orange': 6, 'is': 7, 'a': 8, 'fruit': 9}
[[4, 1, 2], [5, 6, 7, 8, 3, 9], [2, 1, 3]]