Vocab 和 Integer(一个热)表示是如何存储的以及 ('string', int) 元组在 torchtext.vocab() 中意味着什么?

How is Vocab and Integer (one hot) representation stored and what does the ('string', int) tuple means in torchtext.vocab()?

我正在尝试训练 RNN 进行二元分类。我的词汇表由 1000000 个单词组成,请找到以下输出...

text_field = torchtext.data.Field(tokenize=word_tokenize)

print(text_field.vocab.freqs.most_common(15))
>>
[('.', 516822), (',', 490533), ('the', 464796), ('to', 298670), ("''", 264416), ('of', 226307), ('I', 224927), ('and', 215722), ('a', 211773), ('is', 180965), ('you', 180359), ('``', 165889), ('that', 156425), ('in', 138038), (':', 132294)]
print(text_field.vocab.itos[:15])
>>
['<unk>', '<pad>', '.', ',', 'the', 'to', "''", 'of', 'I', 'and', 'a', 'is', 'you', '``', 'that']
text_field.vocab.stoi
>>
{'<unk>': 0,'<pad>': 1,'.': 2,',': 3,'the': 4,'to': 5,"''": 6,'of': 7,'I': 8,'and': 9,'a': 10, 'is': 11,'you': 12,'``': 13,'that': 14,'in': 15,....................

文档说:

freqs – A collections.Counter object holding the frequencies of tokens in the data used to build the Vocab.
stoi – A collections.defaultdict instance mapping token strings to numerical identifiers.
itos – A list of token strings indexed by their numerical identifiers.

我看不懂。

有人可以通过直觉来解释这些是什么吗?

比如the表示为4,那么是否表示如果一个句子中包含the

  1. 位置 4 会是 1 吗?或者
  2. 它会在位置 464796 处变成 1 还是
  3. 464796位置是4吗??

当有多个 the 时会发生什么??

如果"the"用4表示,那么就是说

  • itos[4] 是 "the"
  • stoi["the"] 是 4
  • freqs 的某处有一个元组 ('the', <count>),其中 count 是 'the' 在您的输入文本中出现的次数。该计数与其数字标识符 4 无关。