关于IMDB 数据中decoded_review = ‘ ‘.join([reverse_word_index.get(i - 3, ‘?‘) for i in train_data[0]])的理解

这行代码是在处理一个文本数据集,train_data 是一个包含整数列表的数据集,每个整数代表一个单词。reverse_word_index 是一个字典,其键为整数,值为对应的单词。这个字典是通过将原始的单词-整数索引字典进行键值翻转得到的。i - 3 是因为前3个索引值(0,1,2)是保留给特殊符号的(如填充、词汇表开始或未知)。

假设我们有一个文本序列 A B C D,我们将其转换为整数序列,如下:

word_index = {'A': 4, 'B': 5, 'C': 6, 'D': 7}

那么文本序列 A B C D 对应的整数序列为 [4, 5, 6, 7]。
接下来,我们需要创建一个反转的字典,将整数映射回单词:

reverse_word_index = {4: 'A', 5: 'B', 6: 'C', 7: 'D'}

注意,我们需要将整数值减去3,以便排除保留的特殊符号。所以这个反转字典将变成:

reverse_word_index = {1: 'A', 2: 'B', 3: 'C', 4: 'D'}

假设 train_data[0] 是我们的整数序列 [4, 5, 6, 7],那么这行代码就是将这个整数序列转换回原始的文本序列:

' '.join([reverse_word_index.get(i - 3, '?') for i in [4, 5, 6, 7]])

这将输出原始的文本序列:A B C D。
总之,这行代码的目的是将整数序列转换回原始的文本序列。

注意

(train_data, train_labels), (test_data, test_labels) = reuters.load_data(num_words=10000)

word_index = reuters.get_word_index() 
# 是已经被处理的字典 即已经将整数值减去3了 
# 在word_index = {'A': 4, 'B': 5, 'C': 6, 'D': 7}基础上整数值减三,,以便排除保留的特殊符号
# 而train_data[0]是 文本序列对应的整数序列 即上面[4,5,6,7]
# 即word_index = {'A': 1, 'B': 2, 'C': 3, 'D': 4}
reverse_word_index = dict([(value, key) for (key, value) in word_index.items()])
# 则reverse_word_index = {1: 'A', 2: 'B', 3: 'C', 4: 'D'}
decoded_newswire = ' '.join([reverse_word_index.get(i-3, '?') for i in train_data[0]])
#将输出原始的文本序列:A B C D。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值