词汇和整数(独热编码)表示是如何存储的?torchtext.vocab()中的(‘string’, int)元组是什么意思?

我正在尝试训练一个用于二元分类的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 – 一个collections.Counter对象,保存用于构建词汇表的tokens在数据中的频率。stoi – 一个collections.defaultdict实例,将token字符串映射到数值标识符。itos – 一个由数值标识符索引的token字符串列表。

我觉得这些解释不够清楚。

能有人解释一下这些是什么意思,并给出每个部分的直观理解吗

例如,如果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无关。

Related Posts

关于k折交叉验证的直观问题

我在使用交叉验证检查预测能力时遇到了一些直观问题,我认…

调整numpy数组大小以使用sklearn的train_test_split函数?

我正在尝试使用sklearn中的test_train_…

如何转换二维张量和索引张量以便用于torch.nn.utils.rnn.pack_sequence

我有一组序列,格式如下: sequences = to…

模型预测值的含义是什么?

我在网上找到一个数字识别器的CNN模型并进行了训练,当…

锯齿张量作为LSTM的输入

了解锯齿张量以及如何在TensorFlow中使用它们。…

如何告诉SciKit的LinearRegression模型预测值不能小于零?

我有以下代码,尝试根据非价格基础特征来估值股票。 pr…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注